特征工程:类别型特征编码方法


前言

类别型特征(Categorical Feature)主要是指性别(男、女)、血型(A、B、
AB、O)等只在有限选项内取值的特征。类别型特征原始输入通常是字符串形
式,除了决策树等少数模型能直接处理字符串形式的输入,对于逻辑回归、支持
向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正确工作。


一、常见的类别特征转换方法

1.序号编码(Ordinal Encoding)
2.独热编码(One-hot Encoding)
3.二进制编码(Binary Encoding)

常见方法哪里都能查到,这里略过。

二、其他方法

1.赫尔默特对比(Helmert contrasts)

scikit-learn中函数介绍:
https://contrib.scikit-learn.org/category_encoders/helmert.html

该方法是一种正交对比方法
正交对比指在单个方差分析模型中的一组对比,而且对于单个对比来说:各处理效应的系数之和为零。(对比系数向量与截距向量正交)。对于任意两个对比来说,处理效应系数点积为零。(对比系数向量两两正交)。

levelH2H3
1(Dutch)-1/2-1/3
2(German)1/2-1/3
3(Italian)02/3

第一个对比H3比较了种族级别 3 的因变量的平均值与前面所有种族级别(级别 1、2 )的平均值,第二个对比H2比较了级别 2 的因变量的平均值与前面所有种族级别(级别 1)的平均值.

然后在矩阵前面添加一列1

level新增H2H3
1(Dutch)1-1/2-1/3
2(German)11/2-1/3
3(Italian)102/3

求逆

[,1][,2][,3]
[,1]1/31/31/3
[,2]-110
[,3]-1/2-1/21

赫尔默特对比一般用于对类别变量的量级进行对比,比如当你想知道剂量反应研究中的最小有效剂量时,Helmert 对比可能有用的一个例子。

假设我们有一种新药,我们想知道需要多少药物才能治好头痛。我们将头痛患者分为四组。 A组服用安慰剂,B组服用1片新药,C组服用3片,D组服用4片。在数据分析中,我们首先要确定与安慰剂相比,1 片是否会导致显着减少。如果不是这样,我们可以测试 3 片(C 组)是否比 1 片或没有片(A 组和 B 组组合)效果更好。如果这也没有显示出显着的改善,我们可能想要比较 6 片(D 组)与更少的片(A、B 和 C 组相结合)。

2.Sum Contrast(Sum (Deviation) Coding)

scikit-learn中函数介绍:
https://contrib.scikit-learn.org/category_encoders/sum.html

level of EducationEductaion_0(PhD vs. mean)Eductaion_1(HighSchool vs. mean)Eductaion_2(Bachelor vs. mean)
PhD100
HighSchool010
Bachelor001
Master-1-1-1

第一个Education_0将 PhD与所有教育水平进行比较,第二个Education_1将 HighSchool与所有教育水平进行比较,第三个Eductaion_2将 Bachelor与所有教育水平进行比较。编码是通过将 1 分配给类别PhD进行第一次比较(因为类别PhD是要与所有其他类别进行比较的类别),将 1 分配给类别HighSchool进行第二次比较(因为类别 HighSchool 将与所有其他类别进行比较),1 分配给类别Bachelor进行第三次比较(因为 Bachelor将与所有其他类别进行比较)。 请注意,所有三个比较都将 -1 分配给类别Master(因为它是从未与其他类别进行比较的类别),并且所有其他值都分配给 0。

3.Forward Difference Coding

Level of racerace.f1race.f2race.f3
Level 1 v. Level 2Level 2 v. Level 3Level 3 v. Level 4
1 (Hispanic)3/41/21/4
2 (Asian)-1/41/21/4
3 (African American)-1/4-1/21/4
4 (Caucasian)-1/4-1/2-3/4

表格里的数字遵循以下公式,k为level的个数。

Level of racerace.f1race.f2race.f3
Level 1 v. Level 2Level 2 v. Level 3Level 3 v. Level 4
1 (Hispanic)(k-1)/k(k-2)/k(k-3)/k
2 (Asian)-1/k(k-2)/k(k-3)/k
3 (African American)-1/k-2/k(k-3)/k
4 (Caucasian)-1/k-2/k-3/k

4.Backward Difference Coding

Level of racerace.f1race.f2race.f3
Level 1 v. Level 2Level 2 v. Level 3Level 3 v. Level 4
1 (Hispanic)-3/4-1/2-1/4
2 (Asian)1/4-1/2-1/4
3 (African American)1/41/2-1/4
4 (Caucasian)1/41/23/4

表格里的数字遵循以下公式,k为level的个数。

Level of racerace.f1race.f2race.f3
Level 1 v. Level 2Level 2 v. Level 3Level 3 v. Level 4
1 (Hispanic)-(k-1)/k-(k-2)/k-(k-3)/k
2 (Asian)1/k-(k-2)/k-(k-3)/k
3 (African American)1/k2/k-(k-3)/k
4 (Caucasian)1/k2/k3/k

5.Polynomial Contrast

https://online.stat.psu.edu/stat502_fa21/lesson/10/10.2


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值