问题标签 [one-hot-encoding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
702 浏览

encoding - 二进制相关性和一种热编码之间的区别?

二元相关性是一种众所周知的处理多标签分类问题的技术,我们为特征的每个可能值训练一个二元分类器:

http://link.springer.com/article/10.1007%2Fs10994-011-5256-5

另一方面,一个热编码器 (OHE) 常用于自然语言处理中,用于对将多个值作为二进制向量的分类特征进行编码:

http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf

我们可以认为这两个概念是同一个概念吗?还是有技术差异?

0 投票
1 回答
4893 浏览

scikit-learn - OneHotEncoding 映射

为了离散化分类特征,我使用了 LabelEncoder 和 OneHotEncoder。我知道 LabelEncoder 按字母顺序映射数据,但是 OneHotEncoder 是如何映射数据的呢?

我有一个 pandas 数据框,dataFeat有 5 个不同的列和 4 个可能的标签,如上所示。 dataFeat = data[['Feat1', 'Feat2', 'Feat3', 'Feat4', 'Feat5']]

我申请一个labelencoder这样的,

这就是 LabelEncoder 对标签进行编码的方式

然后我像这样应用 OneHotEncoder

intIndexed.shape = 94,5dataFeatY.shape=94,20

我对形状有点困惑dataFeatY- 它不应该也是 95,5 吗?

按照下面的 MhFarahani 回答,我这样做是为了查看标签是如何映射的

这是否意味着标签是这样映射的,还是每列都不同?(这将解释形状为 94,20)

0 投票
2 回答
612 浏览

python - scikit learn 中的 OneHotEncoder 混淆

在 Python 2.7(miniconda 解释器)中使用。对下面的例子感到困惑OneHotEncoder,困惑为什么enc.n_values_输出是[2, 3, 4]?如果有人可以帮助澄清,那就太好了。

http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html

问候,林

0 投票
1 回答
1160 浏览

python - 将 pandas 数据框的字符串列转换为 0 1 个向量

LabelEncoder并且OneHotEncoder适用于 numpy 数组,它将字符串转换为0,1基于向量的向量。

我的问题是,是否有一个简洁的 API 可以将 pandas 数据框的一列转换为0, 1向量?我展示了我的代码和熊猫数据框的原始内容123.csv,假设我想0, 1对列进行二进制处理c_ac_b, c_c, 3 列中的每一列都是独立的,我想对0, 1单独独立的列进行二进制处理。

代码,

123.csv 内容,

numpy 的标签编码器和 OneHotEncoder 示例,

编辑 1,试过get_dummies了,结果似乎是0.01.0(似乎float),有没有办法直接转换成整数?

0 投票
0 回答
735 浏览

python - 为什么 LabelEncoder 不读取值?

我试图使用 sklearn 中的 LabelEncoder 和 OneHotEncoder 对数据集进行 1-hot-encoding,方法是首先对每列进行 LabelEncoding,然后在列上执行 OneHotEncoding。注意:我故意将两列的数据帧的第 1 行设为 nan,这样 LabelEncoder 就不会丢失。

这是代码:

这是代码的输出(请注意,在标签编码器的打印类中,有 nan):

0 投票
1 回答
562 浏览

python-2.7 - Pandas:如何对分类特征进行热编码

我有一个数据框X,它有两个分类特征和 41 个数字特征。所以X总共有 43 个功能。

现在,我想将分类特征转换为数值级别,以便它们可以在RandomForest分类器中使用。

我已经完成了以下操作,其中01指出了分类特征的位置:

然后,我连接这两个数据帧:

现在,Xnew有 63 个特征(F1有 18 个和F24 个特征,其余 41 个来自X

这个对吗?有没有更好的方法来做同样的事情?我是否需要删除第一列以避免共线性F1F2

0 投票
1 回答
476 浏览

python-2.7 - 机器学习:如何在具有分类和数字特征的 pandas 数据帧上应用一种热编码?

一些特征是数字的,例如“毕业率”,而其他特征是分类的,例如学校的名称。我在分类特征上使用标签编码器将它们转换为整数。

我现在有一个带有浮点数和整数的数据框,分别表示数字特征和分类特征(用标签编码器转换)。

我不确定如何继续学习,我需要使用一种热编码吗?如果是这样,我该怎么做?根据我目前的理解,我不能简单地将数据帧传递给 sklearn OneHotEncoder,因为有浮点数。我是否只是将标签编码器应用于所有功能来解决问题?

我的数据框中的示例数据。OPEID 和 opeid6 使用标签编码器进行转换

非常感谢!

0 投票
1 回答
788 浏览

python - get_dummies 拆分字符

我有标记的数据,我需要应用单热编码:'786.2', 'ICD-9-CM|786.2', 'ICD-9-CM', '786.2b|V13.02', 'V13.02', '279.12','ICD-9-CM|V42.81'是标签。|意味着文档同时有 2 个标签。所以我写了这样的代码:

结果:

但是,现在我只希望每个文档有 1 个标签:

'ICD-9-CM|786.2''ICD-9-CM'

'ICD-9-CM|V42.81|''ICD-9-CM'

我怎么能这样分开get_dummies

0 投票
1 回答
3724 浏览

python - Python Pandas get_dummies() 限制。不转换所有列

我的数据框中有 6 列。其中 2 个有大约 3K 的唯一值。当我get_dummies()在整个数据框或仅在其中一个 2 列上使用时,返回的是具有 3k 值的完全相同的列。get_dummies无法模拟更大的列。有些列确实会进行一次热编码,但大的则不会。

我想知道 get_dummies 是否仅适用于基数较小的集合。

我相信这也在这里讨论过: Need help with python(pandas) script

0 投票
1 回答
4774 浏览

apache-spark - 为什么 Spark 的 OneHotEncoder 默认会丢弃最后一个类别?

我想了解 Spark 的 OneHotEncoder 默认删除最后一个类别的原因。

例如:

默认情况下,OneHotEncoder 将丢弃最后一个类别:

当然,这种行为是可以改变的:

问题::

  • 在什么情况下需要默认行为?
  • 盲目调用可能会忽略哪些问题setDropLast(False)
  • 作者在文档中的以下陈述是什么意思?

默认情况下不包括最后一个类别(可通过 dropLast 配置),因为它使向量条目总和为 1,因此线性相关。