python数据转化(字符-->数字)

变量转换(字符转化为数字)

变量转换的目的是将数据转换为适用于模型使用的数据,不同模型接受不同类型的数据,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版权协议,转载请附上原文出处链接和本声明。