首页 » 技术分享 » 特征工程之分类变量的处理

特征工程之分类变量的处理

 

分类变量是表示类别或标记的。与数值型变量不同,分类变量的值是不能被排序的,故而又称为无序变量。

one-hot编码

独热编码(one-hot encoding)通常用于处理类别间不具有大小关系的特征。独热编码使用一组比特位表示不同的类别,每个比特位表示一个特征。因此,一个可能有k个类别的分类变脸就可以编码成为一个长度为k的特征向量。若变量不能同时属于多个类别,那这组值就只有一个比特位是‘开’的。

独热编码的优缺点:

  1. 独热编码解决了分类器不好处理属性数据的问题,在一定程度上也起到了扩充特征的作用。它的值只有0和1,不同的类型存储在垂直的空间。
  2. 当类别的数量很多时,特征空间会变得非常大。在这种情况下,一般可以用PCA来减少维度。而且one hot encoding+PCA这种组合在实际中也非常有用。使用稀疏向量节省空间配合特征选择降低维度
import pandas as pd
from sklearn import linear_model
df = pd.DataFrame({'city':['SF','SF','SF','NYC','NYC','NYC','Seattle','Seattle','Seattle'],
                  'Rent':[3999, 4000, 4001, 3499, 3500, 3501, 2499, 2500, 2501]})
df['Rent'].mean()
3333.3333333333335
#将分类变量转换为one-hot编码并拟合一个线性回归模型
one_hot_df = pd.get_dummies(df, prefix=['city'])
one_hot_df

转载自原文链接, 如需删除请联系管理员。

原文链接:特征工程之分类变量的处理,转载请注明来源!

0