Python:Ridge 回归 - ''Ridge' 对象在使用 GridSearchCV 后没有属性 'coef_'
Posted
技术标签:
【中文标题】Python:Ridge 回归 - \'\'Ridge\' 对象在使用 GridSearchCV 后没有属性 \'coef_\'【英文标题】:Python: Ridge regression - ''Ridge' object has no attribute 'coef_' after using GridSearchCVPython:Ridge 回归 - ''Ridge' 对象在使用 GridSearchCV 后没有属性 'coef_' 【发布时间】:2021-01-17 19:03:07 【问题描述】:我正在使用 Python 3.6.5 和 scikit-learn 0.23.2
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV, cross_val_score
ridge = Ridge()
r_parameters = 'alpha':[1e-15, 1e-10, 1e-8, 1e-4, 1e-3, 1e-2, 1, 5, 10, 20] # this is the Ridge regressor penalty, across different values
ridge_regressor = GridSearchCV(ridge, r_parameters, scoring = 'neg_mean_squared_error', cv = 5)
ridge_regressor.fit(X,y)
ridge_best_params_ = ridge_regressor.best_params_
ridge_best_score_ = -ridge_regressor.best_score_
这成功地为我提供了 best_params_ 和 best_score_ 值。意思是.fit
已经跑了。
refit 没有调整,所以应该是默认的refit = True
但是,在尝试返回我的岭回归模型的系数时:
for coef, col in enumerate(X.columns):
print(f"col: ridge.coef_[coef]")
它导致我出现以下错误:
AttributeError Traceback (most recent call last)
<ipython-input-7-e59d1af522dc> in <module>
2
3 for coef, col in enumerate(X.columns):
----> 4 print(f"col: ridge.coef_[coef]")
AttributeError: 'Ridge' object has no attribute 'coef_
感谢任何帮助。
【问题讨论】:
ridge_regressor
已安装,因此它应该具有 coef_
属性
@FBruzzesi 你的意思是如果我使用for coef, col in enumerate(X.columns): print(f"col: ridge_regressor.coef_[coef]")
那么我应该得到系数吗?
试试for coef, col in enumerate(X.columns): print(f"col: ridge_regressor.best_estimator_.coef_[coef]")
@FBruzzesi 从使用ridge.coef_
更改为ridge_regressor.coef_
后,我得到了一个新的错误代码,而不是TypeError: 'Ridge' object is not subscriptable
【参考方案1】:
ridge
(Ridge
实例)在拟合 ridge_regressor
(GridSearchCV
实例)时实际上并没有拟合;相反,安装了ridge
的克隆,并将其中的一个另存为ridge.best_estimator_
。所以ridge.best_estimator_.coef_
将包含改装模型的系数。
注意GridSearchCV
确实提供了一些方便的功能来访问best_estimator_
;例如ridge.score
只是 ridge.best_estimator_.score
的简写,predict
及其变体也类似。但它并没有为best_estimator_
的所有方法/属性提供这种直通,而coef_
是不可用的方法/属性之一。
【讨论】:
以上是关于Python:Ridge 回归 - ''Ridge' 对象在使用 GridSearchCV 后没有属性 'coef_'的主要内容,如果未能解决你的问题,请参考以下文章