【精通特征工程】学习笔记(四)

本文详细介绍了分类变量的编码方法,包括one-hot编码、虚拟编码和效果编码,讨论了它们的优缺点。在大型分类变量处理中提到了特征散列化和分箱计数,强调了在不同场景下选择合适编码的重要性。
摘要由CSDN通过智能技术生成

5、分类变量:自动化时代的数据计数

  • 分类变量是用来表示类别或标记的,又称为无序变量
  • 大型分类变量,分箱计数
5.1 分类变量的编码

分类变量中的类别通常不是数值型的。例如,眼睛的颜色可以是“黑色”“蓝色”和“褐 色”,等等。因此,需要一种编码方法来将非数值型的类别转换为数值。如果简单地为 k 个可能类别中的每个类别分配一个整数,如从 1 到 k,但这样做的结果是 使类别彼此之间有了顺序,这在分类变量中是不允许的。

  • 三个不同城市的公寓价格数据集
5.1.1 one-hot 编码

使用一组比特位,每个比特位表示一种可能的类别。如果变量不能同时属于 多个类别,那么这组值中就只有一个比特位是“开”的。这就是 one-hot 编码,它可以通 过scikit-learn中 的 sklearn.preprocessing.OneHotEncoder实 现。 每 个 比 特 位 表 示 一 个 特 征,因此,一个可能有 k 个类别的分类变量就可以编码为一个长度为 k 的特征向量。

  • 对3个城市的类别进行独热编码
5.1.2 虚拟编码

one-hot 编码的问题是它允许有 k 个自由度,而变量本身只需要 k-1 个自由度。虚拟编码在进行表示时只使用 k-1 个特征,除去了额外的自由度。没有被使用的那个特征通过一个全零向量来表示,它称为参照类。虚拟编码和 one-hot 编码都可以通过 Pandas 包中的pandas.get_dummies来实现。

  • 对3个城市的类别进行dummy编码

  • eg:在独热编码上的线性回归

>>> import pandas
>>> from sklearn import linear_model

# 定义一个模拟数据集,表示纽约、旧金山和西雅图的公寓租金
>>> df 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值