
统计机器学习
|
201
sklearn.preprocessing.StandardScaler
方法先使用预测变量进行训练,然后在训练
KNN
模型之前转换数据集:
newloan = loan_data.loc[0:0, predictors]
X = loan_data.loc[1:, predictors]
y = loan_data.loc[1:, outcome]
scaler = preprocessing.StandardScaler()
scaler.fit(X * 1.0)
X_std = scaler.transform(X * 1.0)
newloan_std = scaler.transform(newloan * 1.0)
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_std, y)
nbrs = knn.kneighbors(newloan_std)
X.iloc[nbrs[1][0], :]
5
个最近邻在所有变量上都更加相似,这是一个更有意义的结果。请注意,展示结果时使
用的是初始数据,但在应用
KNN
方法时,使用的是缩放后的数据和要预测的新贷款数据。
使用
z
分数只是对变量进行重缩放的方法之一。除了均值,还可以使用更加
健壮的位置估计,比如中位数。类似地,也可以使用不同的范围估计来替代
标准差,比如四分位距。有时候,变量要被“挤压”到
0
和
1
之
间。还需要
注意的是,将所有变量都缩放到单位方差有时候过于武断,因为这意味着我
们认为每个变量在预测效能方面的重要性是一样的 ...