要对数据进行聚类/分类,往往需要经过以下几个步骤:
处理缺失值(我比较少遇到)--》数据标准化 --》降维(白化) --》训练 --》预测 --》评价模型效果
0. 缺失值的处理一般是填充缺省值或者平均值等方法,我一般直接补0
1. 对数据进行标准化。常用的方法有z-score和maxmin。其中,z-socre是(x-mean)/std,也就是去中心化。注意:标准化方法(以及降维)只能在训练集上训练,不能加入验证集或是测试集(防止“偷看”),然后再将训练好的模型用到验证集和测试集上。
from sklearn.preprocessing import MinMaxScaler, StandardScaler, RobustScaler
# maxmin
min_max_scaler = MinMaxScaler()
train_data_scale = min_max_scaler.fit_transform(train_data)
# z-score
# 1. (x-mean)/std - the standard way
std_scaler = StandardScaler()
train_data_scale = std_scaler.fit_transform(train_data)
# 2. removes the median and scales the data according to the quantile range (25%-75%) - the robust way, suitable for data contain outliers.
rob_scaler = RobustScaler()
train_data_scale = rob_scaler.fit_transform(train_data)
有时候还会遇到nominal(标称)类型的字段,这时候需要首先将这些字段拿出来,然后进行one-hot编码。经过one-hot编码,一个有n种取值的特征变成n位二进制,比如:male,female --》(1,

5487

被折叠的 条评论
为什么被折叠?



