Незнание может дорого обойтись

Введение

Перекрестная проверка - важный аспект этапа предварительной обработки данных, который обычно игнорируется специалистами по данным. Это одна из тех областей, которые никогда не основываются на прикосновении, и в конечном итоге заинтересованные стороны теряют уверенность в качестве модели, поскольку производительность довольно низкая, если перекрестная проверка не применяется к моделям. Это этап, который появляется в картине, когда мы применяем разделение обучения и тестирования к доступным данным для подготовки моделей обучения и тестирования. Мы устанавливаем параметр случайного состояния в данной модели разделения поезд-тест, которая обычно пытается распределить случайный набор данных на два набора данных, то есть обучение и тестирование. В тот момент, когда мы меняем значение случайной переменной состояния, точность модели резко меняется. В результате мы никогда не получаем убедительных доказательств точности модели. Таким образом, это становится вероятной темой обсуждения во время взаимодействия с клиентом, которое в конечном итоге влияет на деловые отношения в организации. В результате была представлена ​​концепция перекрестной проверки. Существует множество типов перекрестной проверки, которые последовательно обсуждаются в статье.

Исключить одну перекрестную проверку (LOOCV)

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

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

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

Рассмотрим данный набор данных, содержащий 1000 записей, и зафиксируем значение k. Значение k определяет общее количество итераций, которые мы будем выполнять с общим заданным набором данных, а деление значения общего количества записей на k дает нам общее количество записей, которые мы собираемся включить в тестовый набор данных. Например, в данном наборе данных у нас есть 1000 выборок, и мы фиксируем значение k как 5. Затем мы будем выполнять 5 итераций перекрестной проверки. Каждая из итераций будет иметь (1000/5 = 200 записей), которые определяют тестовые данные. Как показано на рисунке, каждая итерация будет иметь новый набор из 200 записей, передаваемых в модель как часть тестовых данных. Таким образом, в конце итерации 5 каждая из записей в какой-то момент будет частью тестового или обучающего набора данных. Следовательно, модель точности, полученная на каждой из итераций, может быть полностью усреднена, а значение, полученное на ее основе, может быть определено как производительность модели средней точности. Следовательно, мы можем сообщить заинтересованным сторонам, что производительность модели может варьироваться от 83 до 87 (как показано на рис.), Или мы можем взять среднее значение 85 (как показано на рис.) И передать то же самое заинтересованным сторонам.

Основным недостатком такого подхода является случай, когда у нас несбалансированный набор данных. Что, если я скажу, что из 1000 записей 900 относятся к классу A и только 100 относятся к классу B. В этом случае модель будет каждый раз подвергаться только типу данных класса A, и это приведет к тому, что модель станет менее открытой в класс B. В конце концов, когда неизвестный набор данных состоит из класса B, тогда модель может быть не в состоянии правильно предсказать данные большую часть времени, поскольку ее этап обучения обычно предоставляется для данных типа класса A. Следовательно, мы можем увидеть тенденцию к снижению точности модели, когда она подвергается воздействию неизвестного набора данных класса B. Следовательно, несбалансированный набор данных может быть действительно проблематичным в случае перекрестной проверки k кратностей.

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

Чтобы преодолеть недостаток перекрестной проверки k кратностей, была введена концепция стратифицированной перекрестной проверки. В Stratified CV мы следим за тем, чтобы на каждой итерации мы поддерживали баланс каждого типа записей класса как в обучающем, так и в тестовом наборе данных при разделении. Например, в приведенном выше примере мы разделяем набор данных на 200 записей в тестовом наборе данных и 800 записей в качестве обучающего набора данных на каждой итерации. Теперь для каждого из обучающих и тестовых наборов данных мы разделим их таким образом, чтобы записи, присутствующие в них, имели отношение 60% к классу A и 40% к классу B. Таким образом, в конце концов, на каждой итерации, для моделей будет получена здоровая точность, и, в конце концов, когда модель будет представлена ​​неизвестному набору данных, она сможет по крайней мере правильно классифицировать записи по типам классов.

Это было краткое введение в перекрестную проверку.

Надеюсь, статья вам понравилась !!

Вы можете связаться со мной через LinkedIn