Выбор функции для «окончательной» модели при выполнении перекрестной проверки в машинном обучении


76

Я немного запутался в выборе функций и машинном обучении, и мне было интересно, можете ли вы помочь мне. У меня есть набор данных микрочипов, который классифицируется на две группы и имеет 1000 функций. Моя цель - получить небольшое количество генов (мои особенности) (10-20) в сигнатуре, которую я теоретически смогу применить к другим наборам данных для оптимальной классификации этих образцов. Поскольку у меня не так много образцов (<100), я не использую тестовый и обучающий наборы, а использую перекрестную проверку по принципу Leave-one-out для определения устойчивости. Я прочитал, что нужно выбирать функции для каждого разделения образцов, т.е.

  1. Выберите один образец в качестве тестового набора
  2. На оставшихся образцах выполните выбор функции
  3. Применить алгоритм машинного обучения к оставшимся образцам, используя выбранные функции
  4. Проверьте, правильно ли классифицирован набор тестов
  5. Перейти к 1.

Если вы сделаете это, вы можете получать разные гены каждый раз, так как вы получите свой «окончательный» оптимальный классификатор генов? т.е. что такое шаг 6.

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


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

Пожалуйста, суммируйте результаты биокондуктора здесь?
Шейн

Ответы:


39

Это очень хороший вопрос, с которым я столкнулся при работе с данными SNP ... И я не нашел очевидного ответа в литературе.

Независимо от того, используете ли вы LOO или K-fold CV, вы получите разные функции, поскольку, как вы сказали, итерация кросс-проверки должна быть самой внешней петлей. Вы можете подумать о какой-то схеме голосования, которая бы оценивала n-векторы функций, которые вы получили из своего LOO-CV (не помню статьи, но стоит проверить работу Харальда Биндера или Антуана Корнуйолса ). В отсутствие нового тестового образца обычно делается повторное применение алгоритма ML ко всей выборке после того, как вы нашли его оптимальные параметры перекрестной проверки. Но, действуя таким образом, вы не можете гарантировать, что нет переоснащения (так как образец уже использовался для оптимизации модели).

Или, в качестве альтернативы, вы можете использовать встроенные методы, которые предоставляют вам функции ранжирования по показателю переменной важности, например, как в случайных лесах (RF). Поскольку перекрестная проверка включена в RF, вам не нужно беспокоиться о случае или проклятии размерности. Вот хорошие документы их приложений в исследованиях экспрессии генов:np

  1. Катлер А., Катлер Д.Р. и Стивенс Дж.Р. (2009). Древовидные методы, в анализе многомерных данных в исследованиях рака , Li, X. и Xu, R. (eds.), С. 83-101, Springer.
  2. Saeys Y., Inza I. и Larrañaga P. (2007). Обзор методов выбора признаков в биоинформатике. Биоинформатика , 23 (19) : 2507-2517.
  3. Диас-Уриарте Р., Альварес де Андрес С. (2006). Выбор генов и классификация данных микрочипов с использованием случайного леса. BMC Биоинформатика , 7 : 3.
  4. Диас-Уриарте, Р. (2007). GeneSrF и varSelRF: веб-инструмент и пакет R для выбора и классификации генов с использованием случайного леса. BMC Биоинформатика , 8 : 328

Так как вы говорите о SVM, вы можете искать штрафные SVM .


Спасибо за это. Я не особенно продан на SVM, просто использую это в качестве примера. Итак, если вы использовали случайные деревья, вам не нужно выполнять перекрестную проверку? Это правильно.
Danielsbrewer

7
да, RF включают случайную выборку переменных (обычно ) при выращивании дерева, и каждое дерево основано на расширенной выборке отдельных лиц; значение переменной вычисляется на так называемых выборках вне пакета (тех, которые не используются для построения дерева решений) с использованием метода перестановки. Алгоритм повторяется для m деревьев (по умолчанию m = 500), и результаты усредняются, чтобы компенсировать неопределенность на уровне деревьев (повышение). p
ЧЛ

3
Важно, чтобы он назывался Случайный лес, а не Случайные деревья; у вас могут быть проблемы с Google.

1
+1, хороший ответ и случайный для меня - большое спасибо за бумажные ссылки, особенно обзор.
АРС

Имея достаточно данных, не лучше ли провести тестовый набор, выполнить loocv на тренировочном наборе, чтобы оптимизировать параметры модели, подогнать весь набор поездов (и назовите его «окончательным» классификатором), а затем оценить окончательную модель на тестовом наборе?
user0

40

В общем:

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

Чтобы понять, почему это происходит, рассмотрим проблему двоичной классификации с 1000 двоичными признаками, но только с 100 случаями, когда все случаи и признаки являются чисто случайными, поэтому между признаками и случаями нет никакой статистической связи. Если мы обучаем первичную модель полному набору данных, мы всегда можем достичь нулевой ошибки в обучающем наборе, поскольку имеется больше возможностей, чем случаев. Мы даже можем найти подмножество «информативных» функций (случайно оказавшихся коррелированными). Если мы затем проведем перекрестную проверку с использованием только этих функций, мы получим оценку производительности, которая лучше, чем случайное предположение. Причина в том, что в каждом из этапов процедуры перекрестной проверки есть некоторая информация о задержанных случаях, использованных для тестирования, поскольку функции были выбраны, потому что они были хороши для прогнозирования, все они, в том числе те, которые продержались. Конечно, истинная частота ошибок будет 0,5.

Если мы примем правильную процедуру и выполним выбор функций в каждом сгибе, то больше не будет никакой информации о задержанных случаях в выборе функций, используемых в этом сгибе. Если вы используете правильную процедуру, в этом случае вы получите ошибку около 0,5 (хотя она будет немного отличаться для разных реализаций набора данных).

Хорошие документы для чтения:

Кристоф Амбруаз, Джеффри Дж. МакЛахлан, «Смещение отбора при экстракции генов на основе данных по экспрессии генов микрочипов», PNAS http://www.pnas.org/content/99/10/6562.abstract

что очень важно для ОП и

Гэвин К. Коули, Никола Л.К. Тэлбот, «О переоснащении при выборе модели и смещении последующего выбора при оценке производительности», JMLR 11 (июль): 2079-2107, 2010 http://jmlr.csail.mit.edu/papers /v11/cawley10a.html

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

На практике:

Я бы порекомендовал использовать Bagging и использовать ошибку «из пакета» для оценки производительности. Вы получите модель комитета, использующую много функций, но это на самом деле хорошо. Если вы используете только одну модель, вполне вероятно, что вы переопределите критерий выбора объекта и в итоге получите модель, которая дает более плохие прогнозы, чем модель, которая использует большее количество объектов.

Книга Алана Миллерса о выборе подмножества в регрессии (монографии Чепмена и Холла по статистике и прикладной вероятности, том 95) дает хороший совет (стр. 221), что, если прогнозирующая эффективность является наиболее важной вещью, то не делайте никакого выбора функций , просто используйте вместо этого регрессию гребня. И это в книге о выборе подмножества !!! ; О)


17

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

Оригинальная публикация : Zou and Hastie (2005): Регуляризация и выбор переменных с помощью эластичной сети. JRStatist.Soc. Б, 67-2, стр.301-320

Эластичная сеть для SVM : Zhu & Zou (2007): Выбор переменных для машины опорных векторов: Тенденции в нейронных вычислениях, глава 2 (редакторы: Чен и Ван)

Улучшения в эластичной сети Jun-Tao и Ying-Min (2010): Улучшенная эластичная сеть для классификации рака и выбора генов: Acta Automatica Sinica, 36-7, pp.976-981


9

В качестве шага 6 (или 0) вы запускаете алгоритм обнаружения признаков для всего набора данных.

Логика заключается в следующем: вы должны думать о перекрестной проверке как о способе определения свойств процедуры, которую вы используете для выбора функций. Он отвечает на вопрос: «Если у меня есть какие-либо данные и я выполняю эту процедуру, то какова частота ошибок при классификации нового образца?». Как только вы знаете ответ, вы можете использовать процедуру (выбор функции + разработка правила классификации) для всего набора данных. Людям нравится оставлять один, потому что прогнозирующие свойства обычно зависят от размера выборки, а обычно достаточно близко к чтобы не иметь большого значения.nn1n


Я думаю, что по-прежнему существует проблема обобщения при использовании той же выборки (1) для оценки эффективности классификации / прогнозирования классификатора при настройке его параметров (в конечном итоге с выбором признаков) и (2) поочередно используют его прогнозы для всего набора данных. Фактически, вы нарушаете контроль над переоснащением, который был разработан с использованием перекрестной проверки. Hastie et al. предоставьте хорошую иллюстрацию CV-ловушек, особенно WRT. выбор функции, в своей книге ESL, § 7.10.2 во 2-м издании.
ЧЛ

@chl: кто сказал что-нибудь о настройке параметров? Если выполняются дополнительные действия, они должны повторяться и во время перекрестной проверки. Ясно, что изменение вашего алгоритма до тех пор, пока вы не получите хорошую перекрестную проверку ошибок, является «обманом». Кстати, я согласен, что перекрестная проверка, особенно одноразовая, не так уж велика.
Анико

не это не обман, так как CV показывает вам приблизительное, как алгоритм будет работать с новыми данными. Вам нужно только быть уверенным, что вы не остановились на чем-то, основанном на всем наборе (это утечка информации о структуре полного набора, поэтому он может сразу сместить все детали поезда).

@mbq - Анкино прав, настройка вашей модели для минимизации статистики CV - это «обман», и статистика CV окончательной модели будет иметь существенный оптимистический уклон. Причина этого заключается в том, что статистика CV имеет незначительную дисперсию (так как она оценивается на конечном наборе данных), и, таким образом, если вы непосредственно оптимизируете статистику CV, вы можете переопределить ее, и вы можете получить модель это обобщает менее хорошо, чем тот, с которого вы начали. Для демонстрации этого в контексте машинного обучения см. Jmlr.csail.mit.edu/papers/v11/cawley10a.html Решение: используйте вложенный XVAL
Marsupial

1

Вот как я выбираю функции. Предположим, исходя из определенных знаний, есть 2 модели для сравнения. Модель А использует функции от № 1 до №. 10. Модель B использует № 11 для №. 20. Я буду применять LOO CV к модели A, чтобы получить ее производительность вне образца. Сделайте то же самое с моделью B, а затем сравните их.


-1

Я не уверен в проблемах классификации, но в случае выбора признаков для проблем регрессии, Джун Шао показал, что CV из Leave-One-Out асимптотически несовместимо , т.е. вероятность выбора правильного подмножества функций не сходится к 1, так как количество образцов увеличивается. С практической точки зрения, Шао рекомендует провести перекрестную проверку по методу Монте-Карло или процедуру «пропустить много раз».


О боже, еще раз; Вы читали заголовок этой статьи?

2
Хорошо, чтобы быть ясным - я не говорю, что LOOCV - хорошая идея для большого количества объектов; очевидно, это не так, но Шао здесь не применим. Действительно, в большинстве случаев правила для LM не выполняются для ML.

2
Также сомнительно, что результаты асимптотики имеют практическое применение при рассмотрении наборов данных с большим количеством признаков и сравнительно небольшим количеством шаблонов. В этом случае дисперсия процедуры, вероятно, будет иметь большее практическое значение, чем систематическая ошибка или последовательность. Основное значение LOOCV заключается в том, что для многих моделей он может быть реализован с незначительными вычислительными затратами, поэтому, хотя он имеет более высокую дисперсию, чем, скажем, самозагрузка, он может быть единственным возможным подходом в рамках доступного вычислительного бюджета. Вот почему я использую это, но я использую что-то еще для оценки производительности!
Дикран Сумчатый
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.