1.均值移除(Mean removal)
通常我们把每个特征值移除,以保证特征值均为0(即标准化处理),这样可以消除特征值之间的偏差(bias).将下面几行代码加入之前打开的Python文件中
data_standized = preprocessing.scale(data) print "
Mean =",data_standardized.mean(axis=0) print "Std deviation =", data_standardized.std(axis=0)
2.范围缩放
数据点中的每个数据范围可能变化很大,因此,有时将数据的特征范围缩放到合理的大小是非常重要的。在Python 文件中加入下面几行代码
data_scaler = preprocessing.MinmaxScaler(feature_range=(0,1))
data_scaled = data_scaler.fit_transform(data)
print "
Min max scaled data =",data_scaled
3.归-化(Normalization)
数据归化用于需要对特征向量的值进行调整时,以保证每个特征向量的值都缩放到相同的数值范围。机器学习中最常用的归一化形式就是将特征向量调整为L1范数,使特征向量的数值之和为1.
data_normalized = preprocessing.normalized(data,norm='1,1')
print "
L1 normalized data =",data_normalized
4.二值化(Binarization)
二值化用于将数值特征向量转换为布尔类型向量。
data_binarization = preprocessing.Binarization(threshold=1.4).transform(data)
print "
Binarized data =",data_binarized
5.独热编码
通常,需要处理的数据都是稀疏地,算乱地分布在空间中,然而,我们并不需要存储这些大数值,这时就需要使用独热编码(One-Hot Encoding). 可以把独热编码看作是一种收紧(tighten)特征向量的工具。他把每个特征向量的每个特征与特征的非重复总数相对应,通过one-of-k的形式对每个值进行编码。特征向量的每个特征值都按照这种方式进行编码,这样可以更加有效的表示空间。例如我们需要处理4维向量空间,当给一个特征向量的第n个特征进行编码时,编码器会遍历每个特征向量的第n个特征,然后进行非重复计数。如果非重复计数的值是K,那么九八这个特征转换为只有一个值是1其他值都是0的K维向量。增加下面几行代码到前面的Python文件中:
encoder = preprocessing.OneHotEncoder()
encoder.fit([[0,2,1,12],[1,3,5,3],[2,3,2,12],[1,2,4,3]])
encoded_vector = encoder.transform([[2,3,5,3]]).toarray()
print "
Encoded vector =",encoded_vector