机器学习中对变量的处理

机器学习-分类变量

有哪些分类变量

  • Nominal variables:没有顺序的分类变量
  • Ordinal variables:有顺序的分类变量。比如高、中、低
  • Binary variables:二分类
  • Cyclic variables:循环分类。例如周一到周日

如何处理分类变量

由于对计算机来说,它只能理解总共有多少类别,类别之间不同名称并没有什么区别,因此我们往往需要将类别转换成数字再后续操作。这种编码操作的常见操作有如下。

label encoding

创建一个字典将已有类别分别转换成0、1、2、3…这样的数字。在实际操作中还可以直接调用scikit-learn中的函数直接进行编码操作,不过调用函数之前需要先对数据中的NAN值进行处理,。

dense to sparse

由于许多模型并不支持十进制数的输入,所以将类别编码成数字之后还需要转换成二进制。这些数字编码往往是由矩阵的形式存储的,取值为0或1,为了节省空间,可以采用键值对的形式记录1的位置和值。

one hot encoding

将类别用一个向量表示,向量的长度等于类别总数N,向量中N-1个位置都为0,剩下一个为1,而1所在位置与向量表示的类别相对应。在实际操作中也可以条用scikit-learn中的函数直接进行独热编码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习,对于因子变量处理是非常重要的一步,因为因子变量包含了有限个可取值的离散变量。在R语言,有几种常用的处理因子变量的方法。 首先,最简单的方法是使用独热编码(one-hot encoding),将因子变量转化为二进制的若干个变量。例如,对于一个性别因子变量,原来有两个取值“男”和“女”,则可以转化为两个新的二进制变量“性别_男”和“性别_女”,其“性别_男”取值为1表示该样本为男性,取值为0表示为女性,“性别_女”则相反。这样可以避免用一个单一的数值来表示多个离散的取值,使得模型能够更好地处理因子变量。 其次,对于有序的因子变量,可以使用label encoding的方法。即通过为每个因子赋予一个数值,将其转化为有序的数值变量。例如,对于一个学历因子变量,包含“高”、“本科”、“硕士”等取值,可以分别赋予1、2、3等数值表示,这样可以保留因子变量的顺序关系。 另外,还可以使用频率编码(frequency encoding)方法,将每个因子的取值用其在数据集出现的频率来替代。例如,对于一个地区因子变量,可以用该地区在整个数据集出现的频率来表示。这样可以在模型保留因子变量的信息,并且降低因子变量取值过多导致的维度灾难问题。 总之,对于因子变量处理,在R语言有多种方法可供选择,根据不同的数据和模型要求进行选择合适的处理方法,能够提高机器学习模型的准确性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值