首页 > 解决方案 > GridSearchCV 评分

问题描述

clf = GridSearchCV(estimator=BernoulliRBM(),param_grid=parameters,verbose=3,n_jobs=-1,refit=True)

我收到以下错误-

TypeError: If no scoring is specified, the estimator passed should have a 'score' method. The estimator BernoulliRBM() does not.

BernoulliRBM 确实有一个方法score_samples(X),但是如何将它传递给 gridsearchcv 的评分参数?我可以根据https://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter传递 F1 分数等一般评分指标。但是我如何通过那个方法呢?

标签: pythonscikit-learngridsearchcv

解决方案


评分时,GridSearchCV字面上调用score模型的方法。正如您在此处看到的,BernoulliRBM没有完全匹配的方法.score()

您可以将一个字符串传递给它以从该列表中调用另一个预定义的评分指标(就像您提到的那样),或者您可以定义自己的评分方法并将其作为可调用对象传递。第二个选项的文档在这里

您的分类器的评分方法返回 的伪似然X。不幸的是,没有预先定义的评分,因此您必须自己定义。

最快的方法是定义一个self.score(X, y)传递X给的方法,score_samples并使用该输出与y.


推荐阅读