scikit-learn中的数据变换方法
- StandardScaler 每个特征的平均值为0、方差为1
- RobustScaler 使用中位数和四分位数,会忽略异常值
- MinMaxScaler 所有特征位于0和1之间
- Normalizer 每个数据点进行放缩,使得特征向量的欧式长度为1
当模型返回数据的新表示时,使用transform方法
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(X_train)
X_train_scaled = scaler.transform(X_train)
print("transformed shape: {}".format(X_train_scaled.shape))
print("per-feature minimum before scaling:\n {}".format(X_train.min(axis=0)))
print("per-feature maximum before scaling:\n {}".format(X_train.max(axis=0)))
print("per-feature minimum after scaling:\n {}".format(
X_train_scaled.min(axis=0)))
print("per-feature maximum after scaling:\n {}".format(
X_train_scaled.max(axis=0)))
X_test_scaled = scaler.transform(X_test)
print("per-feature minimum after scaling:\n{}".format(X_test_scaled.min(axis=0)))
print("per-feature maximum after scaling:\n{}".format(X_test_scaled.max(axis=0)))
注:所有缩放器总是对训练集和测试集应用完全相同的变换,使得测试集的范围可能有所不同。