首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AttributeError 'GridSearchCV‘对象没有属性'cv_results_’

AttributeError 'GridSearchCV‘对象没有属性'cv_results_’
EN

Stack Overflow用户
提问于 2022-06-25 17:33:38
回答 1查看 201关注 0票数 1

我正在为一个科学学习教程研究load_boston()数据。我遇到了这个属性错误:

代码语言:javascript
运行
复制
AttributeError 'GridSearchCV' object has no attribute 'cv_results_'

有没有人知道是否有窃听器?我正在使用1.1.1版本的科学知识-学习。

代码语言:javascript
运行
复制
import sklearn
from sklearn.datasets import load_boston
from sklearn.neighbors import KNeighborsRegressor
from sklearn.preprocessing import StandardScaler   
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV    
from sklearn.linear_model import LinearRegression
import matplotlib.pylab as plt 
import pandas as pd 
from sklearn.model_selection import cross_val_score

print(sklearn.__version__)

X, y = load_boston(return_X_y=True)      

mod = KNeighborsRegressor().fit(X, y)     

pipe = Pipeline([
    ("scale", StandardScaler()),
    ("model", KNeighborsRegressor(n_neighbors=3))  
    ])
print(pipe.get_params())  

mod1 = GridSearchCV(estimator=pipe, param_grid={'model__n_neighbors': [1,2,3,4,5,6,7,8,9,10]},cv = 3)

pipe.fit(X, y)    
pred = pipe.predict(X)  
df = pd.DataFrame(mod1.cv_results_)   

plt.scatter(pred, y)  #pred instead of X
plt.title("Boston Housing Market")
plt.show()
EN

回答 1

Stack Overflow用户

发布于 2022-06-25 20:58:57

要点是,cv_results_是已安装的GridSearchCV实例的属性,而您只安装了管道(其基本估计器)。因此,您应该安装mod1以使其工作。

代码语言:javascript
运行
复制
import sklearn
from sklearn.datasets import load_boston
from sklearn.neighbors import KNeighborsRegressor
from sklearn.preprocessing import StandardScaler   
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV    
from sklearn.linear_model import LinearRegression
import matplotlib.pylab as plt 
import pandas as pd 
from sklearn.model_selection import cross_val_score

X, y = load_boston(return_X_y=True)      

mod = KNeighborsRegressor().fit(X,y)     

pipe = Pipeline([
    ("scale", StandardScaler()),
    ("model", KNeighborsRegressor(n_neighbors=3))  
])
print(pipe.get_params())   
mod1 = GridSearchCV(estimator=pipe,param_grid={'model__n_neighbors': 
    [1,2,3,4,5,6,7,8,9,10]},cv = 3)
mod1.fit(X, y)

df = pd.DataFrame(mod1.cv_results_)

但是,请注意,.fit() of GridSearchCV方法并不返回拟合的基本估计量(当然,尽管进行了拟合)。因此,如果您只是通过pipe.predict(X)替代pipe.fit(X, y),您将无法调用mod1.fit(X, y)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72755994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档