请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么用gridsearch搜索得到的模型精度,比直接用模型差很多呢?

bobo老师,你好
我试图用线性回归模型对波士顿房价数据进行预测,我试了两种方法建立模型,
第一种:

pip_clf = Pipeline([
    ("scaler", StandardScaler()),
    ("lin_reg", LinearRegression())
])

#精度为:0.8111288663608667
第二种:

gridsearch = GridSearchCV(pip_clf, param_grid={},cv=5)

#精度为:0.3532759243958822

为什么网格搜索的结果要差这么多呢?网格搜索准确度不是应该高一些吗
完整代码如下:

在这里输入代码
import numpy as np
from sklearn import datasets
from sklearn.linear_model import Ridge
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import Pipeline
from sklearn.model_selection import train_test_split
boston = datasets.load_boston()

x = boston.data
y = boston.target

X_train, X_test, y_train, y_test = train_test_split(x, y, random_state=66, test_size = 0.2)

pip_clf = Pipeline([
    ("scaler", StandardScaler()),
    ("lin_reg", LinearRegression())
])

#方法一
pip_clf.fit(X_train, y_train)
pip_clf.score(X_test, y_test)
#0.8111288663608667
#方法一

gridsearch = GridSearchCV(pip_clf, param_grid={},cv=5)
gridsearch.fit(x, y)
gridsearch.best_score_
#0.3532759243958822

正在回答

1回答

best_score_ 得到的是一个平均值。目测数据中有极度倾斜的数据,拉低了平均值。


可以尝试一下,如果把 gridsearch 得到的最佳模型拿出来,用他预测 X_test,得到的分数是同一数量级。

gridsearch.best_estimator_.score(X_test, y_test)


继续加油!:)

2 回复 有任何疑惑可以回复我~
  • 提问者 宝慕林4453330 #1
    试了一遍,的确如此,谢谢bobo老师
    回复 有任何疑惑可以回复我~ 2020-06-24 10:31:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信