Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >非训练数据值模型的一次热编码问题

非训练数据值模型的一次热编码问题
EN

Stack Overflow用户
提问于 2022-01-01 06:41:51
回答 1查看 430关注 0票数 1

我想使用一个热编码为我的简单模型。然而,无论我如何设置它,它似乎都会触发一个错误。首先,即使我有1.0.2版本的sklearn,但热编码并不是将字符串转换为浮动。现在的问题是,因为我的培训数据中的值与测试数据中的值长度不同。训练只有两个价值,测试有三个。我该怎么解决这个问题?准确的误差是一个系列的真值含糊不清。另一种想法的错误是重塑数据。

代码语言:javascript
代码运行次数:0
复制
import lightgbm as lgbm 
import pandas as pd
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV
X = [[ 'apple',5],['banana',1],['apple',6],['banana',2]]
X=pd.DataFrame(X).to_numpy()
test = [[ 'pineapple',0],['banana',1],['apple',7],['banana,2']]
y = [1,0,1,0]
y=pd.DataFrame(y).to_numpy()
    
labels = ['apples','bananas','pineapple']
ohc = OneHotEncoder(categories=labels)
pp = ColumnTransformer(
                        transformers=[('ohc', ohc, [0])]
                        ,remainder = 'passthrough')
model=lgbm.LGBMClassifier()
mymodel = Pipeline(steps = [('preprocessor', pp),
                                ('model', model)
                                ])

params = {'model__learning_rate':[0.1]
          ,'model__n_estimators':[2]}
lgbm_gs=GridSearchCV(
    estimator = mymodel, param_grid=params, n_jobs = -1,
    cv=2, scoring='accuracy'
    ,verbose=-1)
lgbm_gs.fit(X,y)
EN

回答 1

Stack Overflow用户

发布于 2022-01-01 11:19:30

这个问题应该与这样一个事实有关:您将categories作为列表传递,而不是文档状态下的类似数组的列表(例如列表)。因此,下面的调整应该修复它。

代码语言:javascript
代码运行次数:0
复制
import lightgbm as lgbm 
import pandas as pd
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV

X = [['apple',5],['banana',1],['apple',6],['banana',2]]
X = pd.DataFrame(X).to_numpy()
test = [['pineapple',0],['banana',1],['apple',7],['banana',2]]
y = [1,0,1,0]
y = pd.DataFrame(y).to_numpy()
labels = [['apple', 'banana', 'pineapple']]   # observe you were also mispelling categories ('apples' --> 'apple'; 'bananas' --> 'banana')
ohc = OneHotEncoder(categories=labels)
pp = ColumnTransformer(transformers=[('ohc', ohc, [0])], remainder='passthrough')
model=lgbm.LGBMClassifier()
mymodel = Pipeline(steps = [('preprocessor', pp),
                            ('model', model)])

params = {'model__learning_rate':[0.1], 'model__n_estimators':[2]}
lgbm_gs=GridSearchCV(
    estimator = mymodel, param_grid=params, n_jobs = -1,
    cv=2, scoring='accuracy', verbose=-1)
lgbm_gs.fit(X, y.ravel())

作为进一步的说明,在处理测试数据有在培训集中找不到的类别的情况时,请注意指南的建议。

如果培训数据可能缺少分类功能,那么通常最好指定have _ignore=‘ignore’,而不是像上面那样手动设置类别。如果指定了句柄_ignore=‘ignore’,并且在转换过程中遇到未知类别,则不会引发任何错误,但是该特性产生的一个热编码列将为所有零(句柄_未知=“忽略”仅支持一个热编码):

最后,您可以看到属性categories_ (它指定了在拟合过程中确定的每个特性的类别)也是一个数组列表(这里的单个数组,因为您只对一个列进行热编码)。使用categories='auto'的示例

代码语言:javascript
代码运行次数:0
复制
ohc = OneHotEncoder(handle_unknown='ignore')
ohc.fit(X[:, 0].reshape(-1, 1)).categories_
# Output: [array(['apple', 'banana'], dtype=object)]

使用自定义categories的示例

代码语言:javascript
代码运行次数:0
复制
ohc = OneHotEncoder(categories=labels)
ohc.fit(X[:, 0].reshape(-1, 1)).categories_
# Output: [array(['apple', 'banana', 'pineapple'], dtype=object)]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70549571

复制
相关文章
(转载非原创)无监督数据预训练短文本编码模型
本博文本应写之前立的Flag:基于加密技术编译一个自己的Python解释器,经过半个多月尝试已经成功,但考虑到安全性问题就不公开了,有兴趣的朋友私聊讨论吧。 从本篇博客开始,本人将转化写作模式,由话痨模式转为极简模式,力求三言两语让各位看的明白。
xlj
2021/07/31
7170
利用bert系列预训练模型在非结构化数据抽取数据
本文代码来源苏剑林老师bert4keras example中的例子。 https://github.com/bojone/bert4keras 中文数据中有一个数据是从非结构化文本中找到演艺圈相关实
用户1750490
2020/01/03
2.2K0
【组合数学】非降路径问题 ( 非降路径问题概要说明 | 非降路径问题基本模型 | 非降路径问题拓展模型 1 非原点起点 | 非降路径问题拓展模型 2 有途经点 )
非降路径问题 是组合计数模型 , 利用该组合计数模型 , 可以处理一些常见的组合计数问题 ;
韩曙亮
2023/03/28
8520
【组合数学】非降路径问题 ( 非降路径问题概要说明 | 非降路径问题基本模型 | 非降路径问题拓展模型 1 非原点起点 | 非降路径问题拓展模型 2 有途经点 )
独热编码
独热编码(One-Hot Encoding),又称为一位有效编码,主要是采用位状态寄存器来对每个状态进行编码,每个状态都有他独立的寄存器位,并且在任意时候只有一位有效。
水煮麥楽雞
2022/11/20
1.3K0
RNAcentral:非编码RNA数据库
RNAcentral是由EBI开发的一个非编码RNA数据库,整合了Ensembl,GENCODE,LNCipedia, miRbase, Rfam等多个数据库中的非编码RNA信息,旨在为ncRNA的研究提供一个统一的参照,网址如下
生信修炼手册
2020/05/08
1.5K0
RNAcentral:非编码RNA数据库
房产估值模型训练及预测结果
本文房产估值模型源数据为厦门市房价数据,文件下载链接: https://pan.baidu.com/s/1vOact6MsyZZlTSxjmMqTbw 密码: 8zg6 下载文件打开后如下图所示:
潇洒坤
2018/09/10
1.2K0
房产估值模型训练及预测结果
干货 | 基于在线监控数据的非现场监管问题识别模型研究
我们汇报的题目是基于在线监控数据的非现场监管问题识别模型研究,我们的汇报将从五个部分展开。首先是项目背景说明,该项目是为了遏制企业逃避监管行为的发生,快速识别企业可能存在的数据篡改和数据造假的行为,提高识别企业这些行为的效率和准确度。
数据派THU
2023/09/25
3780
干货 | 基于在线监控数据的非现场监管问题识别模型研究
双向功能(编码和非编码)RNA数据库介绍
我们都知道,RNA根据其蛋白质编码能力与否分为mRNA和ncRNA,字面意思,mRNA会翻译为蛋白质来发挥作用,而ncRNA则作为调控因子在RNA水平发挥功能。然而越来越多的研究发现,许多先前注释的ncRNA可以编码小肽来发挥功能,比如lncRNA HOXB-AS3编码的小肽抑制结直肠癌的增殖。另一方面,一些mRNA也被证明具有非编码功能,而与它们编码的蛋白质无关,例如p53的mRNA可以与MDM2相互作用,阻断E3连接酶的活性,刺激p53 mRNA的翻译。说明在某些情况下,某些mRNA能够发挥与ncRNAs类似的调控功能。我们把这种既能以RNA形式发挥功能,又能以蛋白形式发挥功能的RNA称为cncRNA (coding and non-coding RNAs), 也叫双功能RNA。
医学数据库百科
2021/07/28
9740
Huggingface 预训练模型权重下载的问题
Hugging face是一个专注于NLP的公司,拥有一个开源的预训练模型库Transformers ,里面囊括了非常多的模型例如 BERT GPT 等
mathor
2020/11/09
9.1K0
Huggingface 预训练模型权重下载的问题
房产估值模型训练及预测结果2
用于进行回归预测的源数据文件下载链接: https://pan.baidu.com/s/16-JGI-JnksC9I7I_ghvrug 密码: ey46
潇洒坤
2018/09/10
5720
4.训练模型之准备训练数据
终于要开始训练识别熊猫的模型了, 第一步是准备好训练数据,这里有三件事情要做: 收集一定数量的熊猫图片。 将图片中的熊猫用矩形框标注出来。 将原始图片和标注文件转换为TFRecord格式的文件。 数据标注 收集熊猫的图片和标注熊猫位置的工作称之为“Data Labeling”,这可能是整个机器学习领域内最低级、最机械枯燥的工作了,有时候大量的 Data Labeling 工作会外包给专门的 Data Labeling 公司做, 以加快速度和降低成本。 当然我们不会把这个工作外包给别人,要从最底层的工作开始!
刘盼
2018/03/16
2K0
4.训练模型之准备训练数据
第一次深度学习模型是如何训练的
计算机视觉学着学着,就自然而然的歪到机器学习,深度学习这一块儿了,因为单纯的图片处理是不能满足一些要求的,没学深度学习时,有时觉的它简单,因为不就按着套路来嘛。但它又不简单,因为里面涉及的知识真不是一下就可以说清楚的。
小白学视觉
2020/02/26
1.7K0
植物长链非编码RNA(lncRNA)数据的处理流程
对应的github主页是 https://github.com/Dukunbioinfo/pipeline-for-lncRNAs
用户7010445
2021/03/26
7633
植物长链非编码RNA(lncRNA)数据的处理流程
纯数据挖掘之仔猪的长非编码RNA的鉴定
文章链接:https://doi.org/10.3389/fgene.2019.00196
生信技能树
2021/07/06
4800
[EMNLP 2022 | 论文简读] CyCoSeg:基于掩码自编码器的检索预训练语言模型
RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder
智能生信
2022/12/29
4470
[EMNLP 2022 | 论文简读] CyCoSeg:基于掩码自编码器的检索预训练语言模型
LabelEncoder(标签编码)与One—Hot(独热编码)
在做Kaggle项目的时候,碰到的问题,通常拿到一个比赛项目,将特征分为数字型特征和文字性特征,分别进行处理,而对于文字型特征如何处理,这时就需要用LabelEncoder(标签编码)和One—Hot(独热编码)将其转换为相应的数字型特征,再进行相应的处理。 首先了解机器学习中的特征类别:连续型特征和离散型特征
用户5745385
2019/07/04
9.9K0
LabelEncoder(标签编码)与One—Hot(独热编码)
Transformer模型训练数据准备详解
数据准备是模型训练的基础,本教程将详细介绍Transformer在自然语言处理任务中的数据准备过程。我们将以文本分类任务为例,手把手教你如何获取质量好的语料,进行数据清洗与预处理,制作符合Transformer输入要求的训练集、验证集和测试集。
Paulette
2023/07/12
1.4K0
【学术】独热编码如何在Python中排列数据?
机器学习算法不能直接处理分类数据,分类数据必须转换为数字。这适用于当你处理一个序列分类类型的问题,并计划使用深度学习方法,比如长短期循环神经网络(RNN)时。 在本教程中,你将了解如何将您的输入或输出序列数据转换为一个独热编码(one-hot code),以便在Python中深度学习的序列分类问题中使用。 教程概述 本教程分为四个部分: 1. 独热编码是什么? 2. 手动独热编码 3. 独热编码和scikit-learn 4. 独热编码与Keras 独热编码是什么? 独热编码是将分类变量表示为二进制向量。这
AiTechYun
2018/03/06
1.9K0
非编码RNA预测:tRNA
在上期文章中介绍了rRNA的预测,今天继续介绍tRNA的预测。tRNA是具有结合并转运氨基酸功能的RNA,由一条长70~90nt并折叠成三叶草形状的短链组成的。一种tRNA只能携带一种氨基酸,如丙氨酸tRNA只携带丙氨酸,但一种氨基酸可被不止一种tRNA携带。
SYSU星空
2022/05/05
1K0
非编码RNA预测:tRNA
点击加载更多

相似问题

训练中一次热编码后用回归模型预测数据点的正确形状

12

一次热编码多维数据

12

通过对一个热编码数据进行训练的模型来预测新值

10

一次热编码多级列数据

30

我在一次热编码上有问题

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文