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

来源:8-8 模型泛化与岭回归

宝慕林4453330

2020-06-22

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回答

liuyubobobo

2020-06-23

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


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

gridsearch.best_estimator_.score(X_test, y_test)


继续加油!:)

2
1
宝慕林4453330
试了一遍,的确如此,谢谢bobo老师
2020-06-24
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5893 学习 · 2454 问题

查看课程