Контролируемое обучение с несколькими источниками данных обучения - PullRequest
5 голосов
/ 03 сентября 2011

Я не уверен, что это правильный сайт обмена для вопросов машинного обучения, но раньше я уже видел вопросы по ML, поэтому я стараюсь (также размещено по адресу http://math.stackexchange.com).

.из разных источников, поэтому построение одной модели не работает хорошо. Есть ли известный метод для использования в таких случаях?

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

* все экземпляры обучения / тестирования имеют одинаковый набор функций, независимо от популяции, из которой они пришли.

Ответы [ 4 ]

2 голосов
/ 03 сентября 2011

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

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

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

1 голос
/ 03 сентября 2011

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

Если вы используете такие модели, как SVM, нейронные сети или логистическая регрессия, это может помочь добавить еще одну функцию, указывающую, к какой популяции относится выборка.Как только вы получите невидимый семпл, установите для этой функции нейтральное значение (например, используйте -1 для поп-1, +1 для поп-2, 0 для невидимых семплов).

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

1 голос
/ 03 сентября 2011

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

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

Больший вопрос в том, будут ли ваши будущие (тестовые) данные поступать из одной из этих выборочных групп или из другой группы.

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

0 голосов
/ 03 сентября 2011

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

Можете ли вы создать отдельный классификатор, чтобы предсказать, к какой популяции относится экземпляр? Если да, вы можете использовать его в качестве предварительной классификации и выполнять последующие действия.

...