Различия между перекрестной проверкой и начальной загрузкой для оценки ошибки предсказания

104

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

Работает ли лучше для небольших наборов данных или больших наборов данных?

даровать
источник

Ответы:

89

Все сводится к дисперсии и предвзятости (как обычно). CV имеет тенденцию быть менее предвзятым, но K-кратный CV имеет довольно большую дисперсию. С другой стороны, самозагрузка имеет тенденцию резко уменьшить дисперсию, но дает более предвзятые результаты (они, как правило, пессимистичны). Другие методы начальной загрузки были адаптированы для устранения предвзятости начальной загрузки (например, правила 632 и 632+).

Два других подхода - это «Монте-Карло CV» или «CV из группы покидания», который выполняет много случайных разбивок данных (вроде мини-тренинга и разбивки теста). Дисперсия очень низкая для этого метода, и смещение не так уж плохо, если процент данных в удержании низкий. Кроме того, повторное CV делает K-кратное несколько раз и усредняет результаты, аналогичные обычному K-кратному. Я наиболее неравнодушен к этому, поскольку он сохраняет низкий уклон и уменьшает дисперсию.

редактировать

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

Некоторые соответствующие исследования приведены ниже (особенно Ким и Молинаро).

Рекомендации

Bengio Y. & Grandvalet Y. (2005). Смещение в оценке дисперсии k-кратной перекрестной проверки. Статистическое моделирование и анализ для сложных проблем данных, 75–95.

Брага-Нето, UM (2004). Является ли перекрестная проверка допустимой для классификации микрочипов малых выборок Bioinformatics, 20 (3), 374–380. DOI: 10,1093 / биоинформатики / btg419

Эфрон Б. (1983). Оценка частоты ошибок правила прогнозирования: улучшение перекрестной проверки. Журнал Американской статистической ассоциации, 316–331.

Efron B. & Tibshirani R. (1997). Улучшения в перекрестной проверке. 632+ метод начальной загрузки. Журнал Американской статистической ассоциации, 548–560.

Furlanello C., Merler S., Chemini C. & Rizzoli A. (1997). Применение правила начальной загрузки 632+ к экологическим данным. WIRN 97.

Jiang W. & Simon R. (2007). Сравнение методов начальной загрузки и скорректированного подхода начальной загрузки для оценки ошибки прогнозирования в классификации микрочипов. Статистика в медицине, 26 (29), 5320–5334.

Джонатан П., Кржановски В. и Маккарти В. (2000). Об использовании перекрестной проверки для оценки эффективности в многомерном прогнозировании. Статистика и вычисления, 10 (3), 209–229.

Ким, Ж.-Х. (2009). Оценка частоты ошибок классификации: повторная перекрестная проверка, повторное удержание и начальная загрузка. Вычислительная статистика и анализ данных, 53 (11), 3735–3745. DOI: 10.1016 / j.csda.2009.04.009

Кохави Р. (1995). Исследование перекрестной проверки и начальной загрузки для оценки точности и выбора модели. Международная совместная конференция по искусственному интеллекту, 14, 1137–1145.

Martin, J. & Hirschberg, D. (1996). Небольшая выборочная статистика для классификации ошибок I: Измерение частоты ошибок.

Молинаро, AM (2005). Оценка ошибки прогноза: сравнение методов передискретизации. Биоинформатика, 21 (15), 3301–3307. DOI: 10,1093 / биоинформатики / bti499

Sauerbrei, W. & Schumacher1, M. (2000). Начальная загрузка и перекрестная проверка для оценки сложности управляемых данными регрессионных моделей. Анализ медицинских данных, 26–28.

Tibshirani, RJ, & Tibshirani, R. (2009). Поправка смещения для минимальной частоты ошибок при перекрестной проверке. Препринт Arxiv arXiv: 0908.2904.

topepo
источник
2
Смещение Bootstrap не пессимистично, а оптимистично (Simple Bootstrap не .0632). Это связано с тем, что Bootstrap использует множество обучающих элементов для проверки модели, что приводит к значительному увеличению погрешности выборки.
D1X
33

@Frank Harrell проделал большую работу по этому вопросу. Я не знаю конкретных ссылок.

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

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

Введение в эти концепции (плюс тесты перестановки) с использованием R на http://www.burns-stat.com/pages/Tutor/bootstrap_resampling.html

Патрик Бернс
источник
2
Имеет ли смысл сначала использовать CV для выбора модели, а после этого использовать начальную загрузку тех же данных для оценки ошибок ваших оценок? В частности, я хочу сделать линейную регрессию, используя ML на данных с неизвестным негауссовским шумом.
Себхофер
9

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

лощина
источник
Большое спасибо за ответы. Я думал, что самозагрузка была лучше, когда у вас небольшой набор данных (<30 единиц). Нет?
грант
Я бы так подумал. Перекрестная проверка может быть нецелесообразной, если у вас небольшой размер выборки. Вы могли бы пропустить одну перекрестную проверку, но это имеет тенденцию быть чрезмерно оптимистичным.
Глен
Также обратите внимание, что выполнение начальной загрузки с небольшой выборкой приведет к некоторым предвзятым оценкам, как отмечено в оригинальной статье Эфрона.
Глен
Разве измерение точности прогноза не является способом количественной оценки неопределенности? Я понимаю, что CV чаще используется для выбора модели, но, скажем, я хочу оценить AUC для LASSO, лучше ли CV или начальная загрузка?
Макс Генис
9

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

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

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

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

Нил Макгиган
источник
2
Нил, кажется, по крайней мере 2 из 4 твоих утверждений неверны. 1. Несмотря на то, что каждый конкретный образец Boostrap покрывает ~ 63% исходных точек данных, если мы собираем много (например, 10 КБ) образцов начальной загрузки, как мы обычно это делаем, вероятность того, что каждая точка будет покрыта хотя бы в одной из них, составляет, по существу, 100%. 2. Я только что провел быструю числовую проверку - среднее число выборок при начальной загрузке и вне начальной загрузки очень близко к общему среднему значению данных. Вы можете проверить себя
Кочеде
Вот код (нажмите «Изменить», чтобы увидеть его в формате): импортируйте numpy как np, pandas как pd n = 1000 B = 1000 y = np.random.randn (n) означает b, означает, чтоoob = [], [] для b в range (B): ib = np.random.choice (n, n, replace = True) meanb = y [ib] .mean () означает b.append (meanb) indoob = np.ones (n, dtype = bool) indoob [ib] = False meanoob = y [indoob] .mean () meansoob.append (meanoob) pd.Series (meansb) .hist (histtype = 'step') pd.Series (meansoob) .hist (histtype = 'step' ) print np.mean (означает b), np.mean (означает, что), pd.Series (y) .mean ()
Кочеде,
@ Кочеде "по сути 100%" - это не 100%. «Очень близко к среднему» - это не то же самое, что среднее. Вы используете ласка слова. Я не ошибаюсь
Нил Макгиган
Таким образом, вы не только даете неправильные ответы, но и настаиваете на них с помощью демагогии, хорошо. Ожидаемый охват данных загрузочными образцами быстро приближается к 100% с увеличением количества выборок. В приведенном выше эксперименте после менее чем 10 выборок начальной загрузки все точки данных подвергаются начальной загрузке. Точно так же ожидание среднего числа образцов начальной загрузки равно среднему значению выборки. И в вышеописанном эксперименте после 1000 загрузочных разниц разница составляет менее 0,1% (используйте np.random.rand вместо randn, потому что для randn среднее значение равно 0)
Кочеде
Вот обновленный код для вашей справки: импортируйте numpy как np, pandas как pd; п = 1000; В = 1000; y = np.random.rand (n); значит б = []; closed = np.zeros (n, dtype = bool); охват = []; # начать цикл для b в диапазоне (B): ib = np.random.choice (n, n, replace = True); прикрыто [ib] = Истина; cover.append (closed.sum () * 1.0 / n); meanb = y [ib] .mean (); означает b.append (значит); # конец печати цикла печати [: 10]; напечатать np.mean (означает b), pd.Series (y) .mean (); print (np.mean (означает b) - pd.Series (y) .mean ()) / pd.Series (y) .mean ();
Кочеде
2

Это две техники передискретизации:

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

https://lagunita.stanford.edu/c4x/HumanitiesScience/StatLearning/asset/cv_boot.pdf

Reeves
источник