首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分类与连续特征选择/工程

分类与连续特征选择/工程
EN

Data Science用户
提问于 2019-04-12 10:17:40
回答 4查看 4.5K关注 0票数 6

我正在处理一个具有许多潜在预测器的数据集,如:

年龄:连续

儿童人数:离散和数字

婚姻状况:绝对(已婚/单身/离婚)。)

Id_User :绝对的(对这个人进行第一次采访的用户身份)

我要说的是四个潜在的预测因素,还有更多,但为了简短起见,这些都足以问我的问题了。

问题:连续特性很容易处理,规范化,并将其提供给模型,那么分类和独立的特性呢?

注意:我知道遵循某种模式的分类特征可以被编码为整数并提供给模型,但如果这些分类特征作为整数没有任何意义(1表示单数,2表示已婚,3表示离婚;对于将其作为定量预测器的模型,将其作为定量预测器的模型没有意义)。

有处理这些不同类型的特性的方法吗?

EN

回答 4

Data Science用户

回答已采纳

发布于 2019-04-12 12:19:16

您正在寻找的是所谓的虚拟变量,它们将您的分类数据转换为一个矩阵,如果该列属于某个类别,则列为1,否则为0。

变量ID是不可转换的,因为您不希望您的模型过度适应您的ID数据(意思是:您不希望您的模型记住每个ID的结果,您希望您的模型是通用的)。

代码语言:javascript
复制
import pandas as pd
dataset2 = pd.get_dummies(dataset)
票数 4
EN

Data Science用户

发布于 2019-04-12 11:29:07

对于分类特性的编码,有两种常见的方法:

序数编码器

这就是你提到的“编码为整数”的方式。在此方法中,从0开始的整数分配给每个类别。这种方法的问题是,它随机排序类别。因此,在类别之间没有优先级的情况下,正如您提到的那样,这种编码是毫无意义的。唯一有效的情况是将较大的整数分配给某些类别是有意义的。

单热编码器

该方法为每个分类特征生成一个特征向量(一个热向量),其大小与类别数相同。该方法将向量的每个分量分配给其中一个类别。对于每个数据样本,它将1分配给在该样本中存在其对应类别的组件,并将0分配给其他组件。这种方法的好处是,与序数编码器不同,它不对任何类别进行排序。

所以在你的情况下,我强烈建议你使用一个热编码器。

票数 4
EN

Data Science用户

发布于 2019-04-12 15:36:47

正如其他人所说,虚拟变量是一种方法。另一种方法是从拥有这种属性的人群中获取数量统计数据。例如,您可以创建一个“婚姻状况平均值”列,并在与该主题具有相同婚姻状况的人之间填充目标变量的平均值。

如果您使用的是树方法,那么简单地将整数赋值到每个类别将近似于虚拟变量,特别是在只有几个类别的情况下。例如,如果婚姻状况的唯一类别是已婚、单身、离婚和丧偶,并且分别将其分配为0、1、2、3,那么唯一可能的分裂是结婚与其他一切,丧偶与其他一切,或已婚/单身与离婚/丧偶。因此,三分之二的分裂实际上是虚拟变量,当你再次分裂这个变量时,最后一个就会变成一个虚拟变量。

票数 3
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/49185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档