让我们以sklearn.preprocessing.StandardScaler转换为例。
从文档中,这将:
通过去除均值并缩放到单位方差来标准化特征
假设您正在使用如下代码。
import numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScaler# X is features, y is labelX_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33, random_state=42)
调用时
StandardScaler.fit(X_train),它的作用是根据中的值计算均值和方差
X_train。然后,调用
.transform()将通过减去均值并除以方差来变换所有特征。为了方便起见,可以使用一步来完成这两个函数的调用
fit_transform()。
您只想使用训练数据来适合缩放器的原因是,您不想使用测试数据中的信息来偏向模型。
如果
fit()要查看测试数据,则需要为每个特征计算一个 新的
均值和方差。从理论上讲,如果您的测试和训练集具有相同的分布,则这些值可能非常相似,但实际上通常并非如此。
相反,您只想使用在训练数据上计算出的参数来转换测试数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)