原文链接原文链接
在数据挖掘建模之前的特征处理中,往往需要给不同值域的特征做标准化缩放。即,
缩放后的特征 = (原特征值 - 特征的均值)/特征的标准差
很多情况下,我们都需要做交叉验证,把样本拆分为train和test样本,train和test样本在各自标准化的过程里,均值和标准差是如何取用,是各自用各自的,还是用同一套呢?在原文博客中,作者列举了三种情形,用伪代码形式表述:
1.
scaled_dataset = (dataset - dataset_mean) / dataset_std_deviation
train, test = split(scaled_dataset)
2.
train, test = split(dataset)
scaled_train = (train - train_mean) / train_std_deviation
scaled_test = (test - test_mean) / test_std_deviation
3.
train, test = split(dataset)
scaled_train = (train - train_mean) / train_std_deviation
scaled_test = (test - train_mean) / train_std_deviation
正确方法是第三个,train、test都使用train集合中的mean均值,deviation标准差。
具体的逻辑思路过程,作者也举了很简单的例子说明。