如何编码类别变量

本文介绍了处理机器学习中类别变量的三种方法:扔掉变量、标签编码和One-Hot编码,并通过实例详细解释了每种方法的适用场景和操作过程。还探讨了其他编码技术,如Feature hashing、数据统计量编码、周期特征编码和Target编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq2279055353)

什么是类别变量?

一个类别变量,是仅取几个值的变量,其中的每个值描述某一属性。例如,

  • 考虑一项关于吃早餐频率的调查。提供四个选项:Never, Rarely, Most days, Every day.

  • 调查私家车的品牌:Honda, Toyota, and Ford.

当你建立一个机器学习模型的时候,如果没有经过预处理而直接使用类别变量,将是错误的。下面,我们介绍处理类别变量的三种常用方法。

处理类别变量

方法一:扔掉类别变量

处理类别变量的最简单的方法,莫过于直接从数据集里删除它。当然,这种简单的删除仅适用于那种没有有价值信息的变量。

方法二:标签编码

标签编码法,是给每个类别一个唯一的整数值。该方法通常假设类别是有序的,例如,
“Never” (0) < “Rarely” (1) < “Most days” (2) < “Every day” (3).
这种编码方式对基于树的模型,像决策树、随机森林,效果比较理想。

方法三:One-Hot 编码

One-Hot编码法,对每个可能的类别,产生一个新列(变量),表示该值在具体的某次观测里是否存在。
例如,类别变量"Color"取3个可能值:“Red”, “Yellow”, and “Green”. 为每个值增加一个列变量,如果原始值是"Red", 那么"Red"列设置为1, 其它列为0;以此类推。

对比标签编码,One-Hot编码并不假设类别有序,我们把这种变量称为名义变量(nominal variables).
当类别变量取很多值时,例如,超过15个类别,One-Hot编码效果不理想。

例子

在这个例子里,我们对不同的算法尝试不同的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值