【发布时间】:2022-12-05 05:18:33
【问题描述】:
上下文:我正在尝试使用带有如下参数的字典来使用 catboost 分类器:
from catboost import CatBoostClassifier
model_params_grid_search = {
naive_bayes.MultinomialNB(): {
'param_grid': {
'alpha': [0.01, 0.1, 0.5, 1.0, 10.0], }
},
linear_model.LogisticRegression(): {
'param_grid': {
'C': [0.01, 0.1, 0.5, 1.0],
'penalty': ['l1', 'l2'],
'solver': ['liblinear', 'lbfgs', 'saga'],
}
},
CatBoostClassifier(): {
'param_grid':{...}
},
svm.SVC(): {
'param_grid': {
'C': [0.01, 0.1, 0.5, 1.0],
'kernel': ['linear', 'rbf'],
'gamma': ['auto']
}
},...
然后应用模型类并进行一些超参数网格搜索。但是,在为 CatBoostClassifier() 运行它时,我不断收到错误 TypeError: unhashable type: 'CatBoostClassifier'。所有其他模型都可以通过这种方式正常工作,不确定为什么 CatBoost 会出现此错误。我只是想遍历所有模型以找到最好的模型。
谢谢!
【问题讨论】: