使用Python进行数据预处理

1) 均值移除

保证特征均值为0,对数据进行标准化处理


from sklearn import preprocessing
data_std = preprocessing.scale(data)
print data_std.mean(axis=0)
#偏差
data_std.std(axis=0)

2)范围缩放至合理大小


data_scaler = preprocessing.MinMaxScaler(feature_range=(0, 1))
data_scaled = data_scaler.fit_transform(data)

3)归一化(将特征向量调整为L1范数)


data_normalized = preprocessing.normalize(data, norm='L1')

确保数据处于统一数量级,提高不同类别数据的可比性。

4)二值化(BInarization)

将数值特征向量转化为布尔向量


data_binarized = preprocessing.Binarizer(threshold=1.4).transform(data)

5)独热编码

用于稀疏的·散乱的分布的数据(One-Hot Encoding).


encoder = preprocessing.OneHotEncoder()
encoder.fit([0,1,2,12],[1,3,5,3],[2,3,2,12],[1,2,4,3])
encoded_vector = encoder.transform([[2,3,5,3]]).toarray()

6)标记编码方法,将文字标记转化为数值的形式


from sklearn import preprocessing
label_encoder = preprocessing.LabelEncoder()
calsses = ['apple', 'banana', 'pear']
label_encoder.fit(classes)#通过以上的操作完成编码
encoded_labels = [2,1,0,2]
decoded_labels = label_encoder.inverse_transform(encoded_lables)
#通过以上的操作将数字解码为文字

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐