check_scoring#

sklearn.metrics.check_scoring(estimator=None, оценка=None, *, allow_none=False, raise_exc=True)[источник]#

Определить оценщик из пользовательских опций.

Будет выброшено TypeError, если оценщик не может быть оценен.

Параметры:
estimatorобъект оценщика, реализующий 'fit' или None, по умолчанию=None

Объект, используемый для обучения модели на данных. Если None, тогда эта функция может выдать ошибку в зависимости от allow_none.

оценкаstr, callable, list, tuple, set или dict, default=None

Оценщик для использования. Если scoring представляет собой единичную оценку, можно использовать:

Если scoring представляет несколько оценок, можно использовать:

  • список, кортеж или множество уникальных строк;

  • вызываемый объект, возвращающий словарь, где ключи - это имена метрик, а значения - скореры метрик;

  • словарь с именами метрик в качестве ключей и вызываемыми объектами в качестве значений. Вызываемые объекты должны иметь сигнатуру callable(estimator, X, y).

allow_nonebool, по умолчанию=False

Возвращать ли None или вызывать ошибку, если нет scoring указан, а оценщик не имеет score метод.

raise_excbool, по умолчанию=True

Следует ли вызывать исключение (если подмножество оценщиков в многометрической оценке не срабатывает) или возвращать код ошибки.

  • Если установлено в True, вызывает исключение неудачного скорера.

  • Если установлено в False, форматированная строка с деталями исключения передается как результат неудачного скорера(ов).

Это применяется, если scoring является list, tuple, set или dict. Игнорируется, если scoring является строкой или вызываемым объектом.

Добавлено в версии 1.6.

Возвращает:
оценкаcallable

Оценивающий вызываемый объект / функция с сигнатурой 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 ...'}