变量转换(字符转化为数字)
变量转换的目的是将数据转换为适用于模型使用的数据,不同模型接受不同类型的数据,Scikit-learn要求数据都是数字型numeric,所以我们要将一些非数字型的原始数据转换为数字型numeric。
Dummy Variables(会生成多个特征)
当字符类别比较少的时候,比较适合。就是类别变量或者二元变量,当qualitative variable是一些频繁出现的几个独立变量时,Dummy Variables比较适用。
API为:get_dummies()
Factoring(不会生成多个特征)
当字符类别比较多的时候,比较适合。它可以创建一些数字,来表示类别变量,对每一个类别映射一个ID,这种映射最后只生成一个特征,不像dummy那样生成多个特征。
API为:pd.factorize()
定量转换
Scaling(归一化)
Scaling可以将一个很大范围的数值映射到一个很小范围(通常是 -1到1,或者是0到1),很多情况下我们需要将数值做Scaling使其范围大小一样,否则大范围数特征将会有更高的权重。使用的一般的方法是:标准化、最大-最小值归一化。
scaler = preprocessing.StandardScaler()##标准化对象
scaler.fit_transform(train_data['Age'].values.reshape(-1,1))##标准化方法
Binning(离散化)
Binning通过观察“邻居”(即周围的值)将连续数据离散化。存储的值被分布到一些“桶”或“箱”中,就像直方图的bin将数据划分成几块一样。
train_data['Fare_bin'] = pd.qcut(train_data['Fare'],5) ##离散化
在将数据Binning化后,要么将数据factorize化,要么dummies化。
版权声明:本文为qq_46549136原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。