当前位置: 首页 > 知识库问答 >
问题:

顺序编码还是一个热编码

闻人嘉颖
2023-03-14

如果我们不确定分类特征的性质,比如它们是名词性的还是序数的,我们应该使用哪种编码?顺序编码还是一个热编码?关于这个话题有没有明确的规定?

我看到很多人对没有方向的分类数据使用顺序编码。假设一个频率表:

some_data[some_col].value_counts()
[OUTPUT]
color_white    11413
color_green     4544
color_black     1419
color_orang        3
Name: shirt_colors, dtype: int64

有很多人更喜欢在这个专栏上做顺序编码。我非常想用一热编码。我对此的看法是,做序数编码会给这些颜色分配一些有序的数字,这意味着一个排名。而且没有排名第一。换句话说,我的模型不应该认为color_white是4,color_orang是0或1或2。请记住,数据描述中也没有任何排名或顺序的提示。

我对这个话题有如下理解:

既没有方向也没有大小的数字是标称变量。例如,水果列表=[‘苹果’、‘橘子’、‘香蕉’]。除非有特定的上下文,否则此集合将被称为标称集合。对于这些变量,我们应该执行get_dummie或一个热编码

而序数变量有一个方向。例如,衬衫尺寸列表=[大、中、小]。这些变量称为序数变量。如果同一个水果列表背后有一个上下文,比如价格或营养价值,可以给水果列表中的水果排序,我们称之为顺序变量。对于顺序变量,我们执行顺序编码

我的理解正确吗?请提供您的反馈这个话题已经变成了一场噩梦谢谢!

共有1个答案

慕乐语
2023-03-14

你说得对。选择<代码> OrdinalEncoder < /COD>或<html" target="_blank">代码> OneHotEncoder < /代码>只有一件事:数据顺序是否重要?

大多数ML算法都假设两个相邻的值比两个遥远的值更相似。在某些情况下,这可能很好,例如,对于有序类别,例如:

  • 质量=[“差”、“一般”、“好”、“优秀”]

但显然情况并非如此:

  • 颜色=[白色,橙色,黑色,绿色]

列(除了需要考虑频谱的情况),例如从白色到黑色。注意,在这种情况下,<代码>白色< /代码>类别应被编码为<代码> 0 < /代码>,<代码>黑色< /代码>应被编码为类别中最高的数字),或者如果您有一些情况,例如,类别0和类别4可能比类别0和类别1更相似。要解决此问题,常见的解决方案是为每个类别创建一个二进制属性(一个热编码)

 类似资料:
  • 我试图在Iris数据集中的目标列(“物种”)上使用一个热编码器。 但我得到了以下错误: ValueError:预期的2D数组,得到1D数组代替: 使用数组或数组重塑数据的形状。如果数据具有单个要素或阵列,则重塑(-1,1)。如果(1,-1)包含单个样本,则重塑其形状。 我在谷歌上搜索了这个问题,发现大多数scikit学习估计器都需要2D数组,而不是一维数组。 同时,我还发现,我们可以尝试传递带有索

  • 问题内容: 张量流是否具有类似于scikit Learn的一种用于处理分类数据的热编码器?使用tf.string的占位符会表现为分类数据吗? 我意识到我可以在将数据发送到tensorflow之前对其进行手动预处理,但是将其内置非常方便。 问题答案: 从TensorFlow 0.8开始,现在有一个原生的一站式操作,可以将一组稀疏标签转换为密集的一站式表示形式。这是的补充,在某些情况下,您可以使您直接

  • 我有一次性编码的标签。我想用它们来训练和预测一个catBooked分类器。然而,当我拟合时,它给我一个错误,说标签每行不允许多个整数值。那么,猫推不允许标签的一次性编码吗?如果没有,我怎样才能让猫助推工作?

  • 我在列表中有一个列名称,我想对列表中的列中的值进行热编码。我想从数据集中对分类变量进行编码。我尝试了几个过程,但它给我带来了一个错误 它抛出的错误 回溯(最后一次调用):文件“preprocessing.py”,第83行,trainig_set_ed[col]=clfs[col].fit_transform(trainig_set_ed[col])文件“/root/.local/lib/pytho

  • 问题内容: 如果输入为零,我想制作一个看起来像这样的数组: 如果输入为5: 对于以上内容,我写道: 但它没有用。 有什么方法可以在一线实现? 问题答案: 通常,当您想在机器学习中使用单编码进行分类时,就会有一组索引。 在现在 使用可以确保您使用正确的标签格式(也可能使用)。该值是一个特殊值,表示“将所有剩余的物料放入此维”。因为只有一个,所以它使阵列变平。 复制粘贴解决方案 包 您可以使用mpu.

  • 我的最终目标是对熊猫专栏进行热编码。在本例中,我想对一列“b”进行热编码,如下所示:保存苹果、香蕉和桔子,并将任何其他水果编码为“其他”。 示例:在下面的代码中,“葡萄柚”将被改写为“其他”,如果“猕猴桃”和“鳄梨”出现在我的数据中,它们也将被改写为“其他”。 以下代码有效: 我的问题是:有没有一种更短的方法来做业务?我尝试了