要对数据进行聚类/分类,往往需要经过以下几个步骤:
处理缺失值(我比较少遇到)--》数据标准化 --》降维(白化) --》训练 --》预测 --》评价模型效果
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