我将CalibratedClassifierCV与RandomForest一起使用,并使用GridSearch确定最佳参数。但是,当我使用GridSearchCV读取最佳参数时,它说GridSearchCV对象没有属性'best_params _'
from sklearn.calibration import CalibratedClassifierCV
from classifiers import SVMClassification
from sklearn.model_selection import GridSearchCV
from imblearn.pipeline import Pipeline as imbpipeline
pipeline=imbpipeline([ ('oversample', Sampling(random_state=444)),('rf', rf())])
paramgrid=[ {'rf__max_depth': [8,10], 'rf__n_estimators':[3,5]}]
grid_search_rf = GridSearchCV(pipeline, param_grid=paramgrid,cv=3)
rf_calibrated=CalibratedClassifierCV(grid_search_rf,cv=5, method="sigmoid")
rf_calibrated.fit(x_labelled,y_labelled)
print(rf_calibrated.base_estimator.best_params_)
AttributeError:“ GridSearchCV”对象没有属性“ best_params _”
答案 0 :(得分:1)
我假设您认为CalibratedClassifierCV将适合提供的估计量,然后以某种方式增强(校准)输出概率。
那是部分正确的。
会发生什么:
CalibratedClassifierCV将克隆提供的估计量,然后将数据拟合到该克隆上。所以你这样做
rf_calibrated.base_estimator`
将仅返回不具有best_params_
属性的不适合的估计量。 best_params_
仅在安装后可用。
从CalibratedClassifierCV中检查best_params_
毫无意义,因为它将把数据分为5部分(就像您完成cv=5
一样),并且每一折叠都在一个单独的克隆上进行训练,因此您可能会有多个best_params
,具体取决于数据。