在标准化时,在无数的教科书上常见如下代码:
from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)
先看一些方法的作用:
fit(): Method calculates the parameters μ and σ and saves them as internal objects.
transform(): Method using these calculated parameters apply the transformation to a particular dataset.Transform(): Method using these calculated parameters apply the transformation to a particular dataset.
而fit_transform()相当于先fit()再transform(),fit_transform(trainData)对部分数据先拟合fit,找到该部分数据的整体指标,如均值、方差、最大值、最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化等等。
问题1:最后一行代码为什么不能写成:X_test = ss.fit_transform(X_test)?
生活中我们经常看到某些例子,比如学校运动会100米冠军的成绩拿到奥运会决赛场上极有可能是最后1名。一次统考,某所学校某班学习成绩第1名的同学可能到另外一所学校的某个班,或许连前30名