check_scoring#
- sklearn.metrics.check_scoring(estimator=None, scoring=None, *, allow_none=False, raise_exc=True)[source]#
根据用户选项确定评分器。
如果估计器无法评分,将抛出 TypeError。
- 参数:
- estimator实现 'fit' 的估计器对象或 None,默认为 None
用于拟合数据的对象。如果为
None,则此函数可能会根据allow_none报错。- scoringstr、可调用对象、list、tuple、set 或 dict,默认为 None
要使用的评分器。如果
scoring表示单个分数,可以使用如果
scoring代表多个分数,可以使用包含唯一字符串的列表、元组或集合;
返回字典的可调用对象,其中键是度量名称,值是度量评分器;
键为度量名称,值为可调用对象的字典。可调用对象需要具有签名
callable(estimator, X, y)。
- allow_nonebool,默认为 False
如果未指定
scoring且估计器没有score方法,是返回 None 还是抛出错误。- raise_excbool,默认为 True
是否抛出异常(如果多度量评分中的一部分评分器失败)或返回错误代码。
如果设置为
True,则抛出失败评分器的异常。如果设置为
False,则将失败评分器的异常详细信息格式化为字符串作为结果传递。
这适用于
scoring是 list、tuple、set 或 dict 的情况。如果scoring是 str 或可调用对象,则忽略。版本 1.6 中新增。
- 返回:
- scoring可调用对象
具有签名
scorer(estimator, X, y)的评分器可调用对象/函数。
示例
>>> from sklearn.datasets import load_iris >>> from sklearn.metrics import check_scoring >>> from sklearn.tree import DecisionTreeClassifier >>> X, y = load_iris(return_X_y=True) >>> classifier = DecisionTreeClassifier(max_depth=2).fit(X, y) >>> scorer = check_scoring(classifier, scoring='accuracy') >>> scorer(classifier, X, y) 0.96...
>>> from sklearn.metrics import make_scorer, accuracy_score, mean_squared_log_error >>> X, y = load_iris(return_X_y=True) >>> y *= -1 >>> clf = DecisionTreeClassifier().fit(X, y) >>> scoring = { ... "accuracy": make_scorer(accuracy_score), ... "mean_squared_log_error": make_scorer(mean_squared_log_error), ... } >>> scoring_call = check_scoring(estimator=clf, scoring=scoring, raise_exc=False) >>> scores = scoring_call(clf, X, y) >>> scores {'accuracy': 1.0, 'mean_squared_log_error': 'Traceback ...'}