machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Объяснение перекрестной проверки: оценка эффективности оценщика.

Дата публикации Nov 26, 2018

Конечная цель инженера по машинному обучению или ученого в области данных состоит в том, чтобы разработать модель для прогнозирования новых данных или прогнозирования некоторых событий на будущее на невидимых данных. Хорошая модель - это не та, которая дает точные прогнозы на известных или обучающих данных, а та, которая дает хорошие прогнозы на новых данных и избегает переоснащения и недостаточной подгонки.

После завершения этого урока вы узнаете:

  • Вот почему использовать перекрестную проверку - это процедура, используемая для оценки мастерства модели на новых данных.
  • Есть обычная тактика, которую вы можете использовать, чтобы выбрать значение k для вашего набора данных.
  • Существуют широко используемые варианты перекрестной проверки, такие как стратификация и LOOCV, которые доступны в scikit-learn.
  • Практическая реализация перекрестной проверки k-Fold в Python

Чтобы найти решение, мы должны сначала понять проблему. Прежде чем мы перейдем к Пониманию перекрестной проверки, давайте сначала разберемся в переоснащении и недостаточной комплектации

Понимание подгонки и переоснащения:

Верхняя модель:Переоснащение происходит, когда статистическая модель или алгоритм машинного обучения улавливает шум данных. Интуитивно понятно, что переопределение происходит, когда модель или алгоритм слишком хорошо соответствуют данным.

Переоснащение модели приводит к хорошей точности набора обучающих данных, но плохим результатам для новых наборов данных. Такая модель бесполезна в реальном мире, так как она не способна предсказать результаты для новых случаев.

Модель нижнего белья:Недооценка происходит, когда статистическая модель или алгоритм машинного обучения не могут уловить основной тренд данных. Интуитивно понятно, что подгонка происходит, когда модель или алгоритм недостаточно хорошо вписываются в данные. Недостаточное оснащение часто является результатом чрезмерно простой модели. Под простым пониманием мы подразумеваем, что пропущенные данные не обрабатываются должным образом, отсутствует выделение, удаление ненужных признаков или признаков, которые не вносят большой вклад в переменную предиктора.

Как решить проблему переоснащения:

Ответ - перекрестная проверка

Основная проблема, связанная с переоснащением и с машинным обучением в целом, заключается в том, что мы не можем знать, насколько хорошо наша модель будет работать с новыми данными, пока мы на самом деле не протестируем их.

Чтобы решить эту проблему, мы можем разделить наш начальный набор данных на отдельныеподготовкаа такжетестподмножества.

Существуют различные типы методов перекрестной проверки, но общая концепция остается неизменной,

Разделить данные на несколько подмножеств

Продержите набор за один раз и тренируйте модель на оставшемся наборе.

Тестовая модель на стойке

Повторите процесс для каждого подмножества набора данных

процесс перекрестной проверки в целом

Типы перекрестной проверки:

• K-Fold Cross Validation

• Стратифицированная K-кратная перекрестная проверка

• Оставьте одну перекрестную проверку

Давайте разберемся каждый тип по одному

K-Fold Cross Validation:

Процедура имеет единственный параметр, называемый k, который относится к числу групп, на которые следует разбить данную выборку данных. Таким образом, процедуру часто называют перекрестной проверкой в ​​k-кратном порядке. Когда выбрано определенное значение для k, оно может использоваться вместо k в ссылке на модель, например, k = 10 становится 10-кратной перекрестной проверкой.

Если k = 5, набор данных будет разделен на 5 равных частей, и описанный ниже процесс будет выполняться 5 раз, каждый раз с другим набором задержек.

1. Возьмите группу в качестве удерживающего или тестового набора данных.

2. Возьмите оставшиеся группы в качестве набора обучающих данных.

3. Установите модель на тренировочном наборе и оцените ее на тестовом наборе.

4. Сохраните оценку и откажитесь от модели.

В конце описанного выше процесса суммируйте навыки модели, используя выборку оценки модели.

Как определить значение k?

Значение для k выбирается таким образом, чтобы каждая группа поездов / тестовая выборка данных была достаточно большой, чтобы статистически представлять более широкий набор данных.

Значение k = 10 очень распространено в области прикладного машинного обучения и рекомендуется, если вы пытаетесь выбрать значение для своего набора данных.

Если выбрано значение для k, которое неравномерно не разделяет выборку данных, то одна группа будет содержать оставшуюся часть примеров. Предпочтительно разбивать выборку данных на k групп с одинаковым количеством выборок, чтобы выборка всех баллов модели была эквивалентной.

Стратифицированная перекрестная проверка K-Fold:

То же, что K-Fold Cross Validation, только небольшая разница

Разделение данных на сгибы может регулироваться такими критериями, как обеспечение того, чтобы каждый сгиб имел одинаковую пропорцию наблюдений с данным категориальным значением, таким как значение результата класса. Это называется многослойной перекрестной проверкой

На изображении ниже, стратифицированная k-кратная валидация установлена ​​на основе пола, M или F

стратифицированная перекрестная проверка по K-кратному критерию

Оставьте одну перекрестную проверку (LOOCV):

Этот подход оставляет одну точку данных вне обучающих данных, т.е. если в исходной выборке имеется n точек данных, то для обучения модели используются n-1 выборок, а в качестве набора проверки используются p точек. Это повторяется для всех комбинаций, в которых исходный образец может быть разделен таким образом, а затем ошибка усредняется для всех испытаний, чтобы дать общую эффективность.

Количество возможных комбинаций равно количеству точек данных в исходной выборке или n.

представление разрешения на выезд

Перекрестная проверка - очень полезный метод оценки эффективности вашей модели, особенно в тех случаях, когда вам необходимо смягчить чрезмерную подгонку.

Реализация перекрестной проверки в Python:

Нам не нужно вызывать метод fit отдельно при использовании перекрестной проверки, метод cross_val_score подгоняет сами данные при реализации перекрестной проверки данных. Ниже приведен пример использования перекрестной проверки в k-кратном порядке.

import pandas as pd
import numpy as np
from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.ensemble import RandomForestClassifier
from sklearn import svm
from sklearn.model_selection import cross_val_score
#read csv file
data = pd.read_csv("D://RAhil//Kaggle//Data//Iris.csv")#Create Dependent and Independent Datasets based on our Dependent #and Independent featuresX = data[['SepalLengthCm','SepalWidthCm','PetalLengthCm']]
y= data['Species']
model = svm.SVC()accuracy = cross_val_score(model, X, y, scoring='accuracy', cv = 10)
print(accuracy)
#get the mean of each fold
print("Accuracy of Model with Cross Validation is:",accuracy.mean() * 100)

Выход:

Точность модели - это среднее значение точности каждого сгиба.

В этом учебном пособии вы узнали, почему нам нужно использовать перекрестную проверку, подробное введение в различные методы перекрестной проверки и практический пример процедуры перекрестной проверки в k-кратном порядке для оценки навыков моделей машинного обучения.

В частности, вы узнали:

  • Эта перекрестная проверка является процедурой, используемой во избежание переобучения и оценки мастерства модели на новых данных.
  • Есть обычная тактика, которую вы можете использовать, чтобы выбрать значение k для вашего набора данных.
  • Существуют широко используемые варианты перекрестной проверки, такие как многоуровневая и повторная, которые доступны в scikit-learn.

Если вам понравился этот блог, дайте ему немногохлопкиа такжеДОЛЯэто с друзьями, вы можете найти более интересные статьиВотОставайтесь с нами для более интересных методов и концепций машинного обучения.

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map