Шаг 134.
Введение в машинное обучение с использованием Python. Оценка и улучшение качества модели. Перекрестная проверка. Перекрестная проверка в scikit-learn

    На этом шаге мы рассмотрим, как в этой библиотеке реализована перекрестная проверка.

    В scikit-learn перекрестная проверка реализована с помощью функции cross_val_score() модуля model_selection. Аргументами функции cross_val_score() являются оцениваемая модель, обучающие данные и фактические метки. Давайте оценим качество модели LogisticRegression на наборе данных iris:

[In 3]:
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
iris = load_iris()
logreg = LogisticRegression()
scores = cross_val_score(logreg, iris.data, iris.target)
print("Значения правильности перекрестной проверки: {}".format(scores))

Значения правильности перекрестной проверки: [0.96666667 1. 0.93333333 0.96666667 1. ]

    По умолчанию cross_val_score() выполняет пятиблочную перекрестную проверку, возвращая пять значений правильности. Мы можем изменить количество блоков, задав другое значение параметра cv:

[In 4]:
scores = cross_val_score(logreg, iris.data, iris.target, cv=3)
print("Значения правильности перекрестной проверки: {}".format(scores))

Значения правильности перекрестной проверки: [0.98 0.96 0.98]

    Наиболее распространенный способ подытожить правильность, вычисленную в ходе перекрестной проверки, - это вычисление среднего значения:

[In 5]:
print("Средняя правильность перекрестной проверки: {:.2f}".format(scores.mean()))

Средняя правильность перекрестной проверки: 0.97

    Используя усредненное значение правильности для перекрестной проверки, мы можем сделать вывод, что средняя правильность модели составит примерно 97%. Взглянув на все пять значений правильности, полученных в ходе пятиблочной перекрестной проверки, можно еще сделать вывод о том, что существует относительно высокий разброс значений правильности, вычисленных для блоков, от 100% до 93%. Подобный результат может означать, что модель сильно зависит от конкретных блоков, использованных для обучения, а также это может быть обусловлено небольшим размером набора данных.

    На следующем шаге мы рассмотрим преимущества перекрестной проверки.




Предыдущий шаг Содержание Следующий шаг