如何对新数据使用相同的比例?- scikit 学习 - scikit 学习

数据挖掘 Python scikit-学习 预处理 特征缩放
2022-02-18 23:24:58

如何使用与新数据预处理相同的比例。

实际代码:

x = df.values #returns a numpy array
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(x)
df_scaled = pd.DataFrame(x_scaled)

clf = tree.DecisionTreeClassifier()
clf.fit(X_train, y_train)
pred = clf.predict(X_test)

如果我理解正确,我应该在 StandardScaler 中包含一个缩放器变量。

https://stackoverflow.com/questions/38780302/predicting-new-data-using-sklearn-after-standardizing-the-training-data

就像是:

clf = tree.DecisionTreeClassifier()
clf.fit(X_train, y_train)
scaler = preprocessing.StandardScaler().fit(X_train)
pred = clf.predict(X_test)

我应该使用哪些缩放器参数来进行未来的数据处理?

谢谢!

1个回答

IMO,如果您的分类器基于决策树,则无需使用缩放。此外,在您的最后一段代码中,scaler从未使用过该变量,因此我完全不确定为什么要定义它。尽管如此,如果您坚持使用缩放器,您应该使用Pipeline它,以便它自动应用于测试数据,它通过拟合训练数据而学习到相同的缩放:

pipeline = Pipeline([('scaler', StandardScaler()), ('classifier', DecisionTreeClassifier())])
pipeline.fit(X_train, y_train)
predictions = pipeline.predict(X_test)

请注意,您显然需要import必要的模块(我懒得在这里写它们!)。