【发布时间】:2019-12-05 08:33:22
【问题描述】:
下面使用 minmaxscaler、polyl 特征和线性回归分类器的简单示例。
通过管道进行:
pipeLine = make_pipeline(MinMaxScaler(),PolynomialFeatures(), LinearRegression())
pipeLine.fit(X_train,Y_train)
print(pipeLine.score(X_test,Y_test))
print(pipeLine.steps[2][1].intercept_)
print(pipeLine.steps[2][1].coef_)
0.4433729905419167
3.4067909278765605
[ 0. -7.60868833 5.87162697]
手动操作:
X_trainScaled = MinMaxScaler().fit_transform(X_train)
X_trainScaledandPoly = PolynomialFeatures().fit_transform(X_trainScaled)
X_testScaled = MinMaxScaler().fit_transform(X_test)
X_testScaledandPoly = PolynomialFeatures().fit_transform(X_testScaled)
reg = LinearRegression()
reg.fit(X_trainScaledandPoly,Y_train)
print(reg.score(X_testScaledandPoly,Y_test))
print(reg.intercept_)
print(reg.coef_)
print(reg.intercept_ == pipeLine.steps[2][1].intercept_)
print(reg.coef_ == pipeLine.steps[2][1].coef_)
0.44099256691782807
3.4067909278765605
[ 0. -7.60868833 5.87162697]
True
[ True True True]
【问题讨论】:
-
X_test和X_train有可能有不同的最小值/最大值吗?您可以使用定义的数据集尝试它并将其添加到您的问题中吗? -
你不应该
fit_transform两次。你应该fit使用训练数据,然后只调用transform来获取测试数据。 -
谢谢大家 :) 我现在可以看到我的方法的错误了 :)
标签: python scikit-learn pipeline