前言: 想要给一组特征集进行标准化处理的时候,发现以下两者都可以。
import sklearn.preprocessing
preprocessing.scale(X) # X是特征集合
from sklearn.processing import StandardScaler
StandardScaler().fit_transform(X)
看了某篇文章知道:
两者都是标准化特征处理的方法,都是使特征集合每一个元素=(自己-该列的均值)/该列的标准差
也就是下面手算的代码:
X_mean = np.mean(X,axis= 0)
X_std = np.std(X,axis= 0)
result = (X-X_mean)/X_std
但是: 在进行数据标准化时,我们通常有两种方法
- 将测试集和训练集的特征集放在一起,用整体的均值和标准差来进行标准化处理
- 先算训练集的均值和标准差,然后用它们来分别对训练集和测试集进行标准化处理
在实际应用场景中,第二种情况比较常见,所以要先得到训练集的均值和标准差
故,可以先通过:
Scaler = StandardScaler().fit(X_train)
得到训练集的均值和标准差
再通过:
Scaler.transform(X_train)
Scaler.transform(X_test)
来分别对训练集和测试集进行标准化处理。