На этом шаге мы рассмотрим, как в этой библиотеке реализована перекрестная проверка.
В 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%. Подобный результат может означать, что модель сильно зависит от конкретных блоков, использованных для обучения, а также это может быть обусловлено небольшим размером набора данных.
На следующем шаге мы рассмотрим преимущества перекрестной проверки.