Я немного запутался в выборе функций и машинном обучении, и мне было интересно, можете ли вы помочь мне. У меня есть набор данных микрочипов, который классифицируется на две группы и имеет 1000 функций. Моя цель - получить небольшое количество генов (мои особенности) (10-20) в сигнатуре, которую я теоретически смогу применить к другим наборам данных для оптимальной классификации этих образцов. Поскольку у меня не так много образцов (<100), я не использую тестовый и обучающий наборы, а использую перекрестную проверку по принципу Leave-one-out для определения устойчивости. Я прочитал, что нужно выбирать функции для каждого разделения образцов, т.е.
- Выберите один образец в качестве тестового набора
- На оставшихся образцах выполните выбор функции
- Применить алгоритм машинного обучения к оставшимся образцам, используя выбранные функции
- Проверьте, правильно ли классифицирован набор тестов
- Перейти к 1.
Если вы сделаете это, вы можете получать разные гены каждый раз, так как вы получите свой «окончательный» оптимальный классификатор генов? т.е. что такое шаг 6.
Под оптимальным я подразумеваю коллекцию генов, которую следует использовать в любых дальнейших исследованиях. Например, скажем, у меня есть набор данных о раке / нормальном состоянии, и я хочу найти топ-10 генов, которые будут классифицировать тип опухоли в соответствии с SVM. Я хотел бы знать набор генов плюс параметры SVM, которые можно было бы использовать в дальнейших экспериментах, чтобы увидеть, можно ли его использовать в качестве диагностического теста.
Ответы:
Это очень хороший вопрос, с которым я столкнулся при работе с данными SNP ... И я не нашел очевидного ответа в литературе.
Независимо от того, используете ли вы LOO или K-fold CV, вы получите разные функции, поскольку, как вы сказали, итерация кросс-проверки должна быть самой внешней петлей. Вы можете подумать о какой-то схеме голосования, которая бы оценивала n-векторы функций, которые вы получили из своего LOO-CV (не помню статьи, но стоит проверить работу Харальда Биндера или Антуана Корнуйолса ). В отсутствие нового тестового образца обычно делается повторное применение алгоритма ML ко всей выборке после того, как вы нашли его оптимальные параметры перекрестной проверки. Но, действуя таким образом, вы не можете гарантировать, что нет переоснащения (так как образец уже использовался для оптимизации модели).
Или, в качестве альтернативы, вы можете использовать встроенные методы, которые предоставляют вам функции ранжирования по показателю переменной важности, например, как в случайных лесах (RF). Поскольку перекрестная проверка включена в RF, вам не нужно беспокоиться о случае или проклятии размерности. Вот хорошие документы их приложений в исследованиях экспрессии генов:n≪p
Так как вы говорите о SVM, вы можете искать штрафные SVM .
источник
В общем:
Делайте свои прогнозы, используя одну модель, обученную на всем наборе данных (так что есть только один набор функций). Перекрестная проверка используется только для оценки прогностической эффективности отдельной модели, обученной для всего набора данных. Жизненно важно при использовании перекрестной проверки, что в каждом сгибе вы повторяете всю процедуру, используемую для подгонки к основной модели, так как в противном случае вы можете получить существенный оптимистический уклон в производительности.
Чтобы понять, почему это происходит, рассмотрим проблему двоичной классификации с 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), что, если прогнозирующая эффективность является наиболее важной вещью, то не делайте никакого выбора функций , просто используйте вместо этого регрессию гребня. И это в книге о выборе подмножества !!! ; О)
источник
Чтобы добавить к 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
источник
В качестве шага 6 (или 0) вы запускаете алгоритм обнаружения признаков для всего набора данных.
Логика заключается в следующем: вы должны думать о перекрестной проверке как о способе определения свойств процедуры, которую вы используете для выбора функций. Он отвечает на вопрос: «Если у меня есть какие-либо данные и я выполняю эту процедуру, то какова частота ошибок при классификации нового образца?». Как только вы знаете ответ, вы можете использовать процедуру (выбор функции + разработка правила классификации) для всего набора данных. Людям нравится оставлять один, потому что прогнозирующие свойства обычно зависят от размера выборки, а обычно достаточно близко к чтобы не иметь большого значения.nn−1 n
источник
Вот как я выбираю функции. Предположим, исходя из определенных знаний, есть 2 модели для сравнения. Модель А использует функции от № 1 до №. 10. Модель B использует № 11 для №. 20. Я буду применять LOO CV к модели A, чтобы получить ее производительность вне образца. Сделайте то же самое с моделью B, а затем сравните их.
источник
Я не уверен в проблемах классификации, но в случае выбора признаков для проблем регрессии, Джун Шао показал, что CV из Leave-One-Out асимптотически несовместимо , т.е. вероятность выбора правильного подмножества функций не сходится к 1, так как количество образцов увеличивается. С практической точки зрения, Шао рекомендует провести перекрестную проверку по методу Монте-Карло или процедуру «пропустить много раз».
источник