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

Я расскажу о некоторых наиболее распространенных типах методов проверки, а затем упомяну, какой метод я выбрал в итоге.

Метод удержания

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

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

Здесь мы делим данные на k частей. И повторите описанный выше метод Holdout k раз. Каждый раз набор 1 используется для проверки, а остальные k-1 используются для обучения. Ошибка рассчитывается путем усреднения ошибок, полученных во всех проверках.

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

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

Перекрестная проверка

Он включает в себя некоторые перестановки и комбинации. Для n точек данных вы используете n-p для обучения и p для проверки. Это повторяется для всех возможных случаев выбора этого количества элементов. И, как и в предыдущих двух методах, наконец, вы усредняете все полученные ошибки. Когда p=1, это становится особым случаем и называется Пропустить перекрестную проверку.

Что я в итоге сделал для оценки модели?

В конце концов я продолжил проверку K-Fold и использовал k=14. Это казалось уместным, учитывая ограниченный объем набора данных, который у меня был. Хотя я приземлился, получив лишь приличную точность в 70% в силу наличия меньшего нет. подобных диалогов. То есть, скажем, для обучения модели диалога у меня было два совершенно разных диалога, сопоставленных с одним и тем же намерением. Итак, когда один был в проверочном наборе, а другой в обучающем наборе, модель, естественно, дала неверный прогноз!

Это было с этого времени. Я вернусь на следующей неделе и расскажу, какие еще интересные вещи я делаю на этом GSoC. Быть в курсе.

Ссылки:

  1. https://en.wikipedia.org/wiki/Перекрестная проверка_(статистика)
  2. https://www.kaggle.com/dansbecker/cross-validation