Как выбрать тренировочные данные для наивного байесовского классификатора - PullRequest
5 голосов
/ 05 июля 2011

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

Интуитивно я думал о первом, но думал, что вероятности предшествующего класса были бы тогда равны и не были бы действительно полезны?

Ответы [ 3 ]

7 голосов
/ 05 июля 2011

Это зависит от распределения ваших классов, и определение может быть сделано только со знанием предметной области под рукой. Вы можете задать следующие вопросы:

  • Существуют ли какие-либо два класса, которые очень похожи, и достаточно ли у ученика информации, чтобы различать их?
  • Есть большая разница в априорных вероятностях каждого класса?

Если это так, вы, вероятно, должны распространять классы.

По моему опыту, нет никакого вреда в перераспределении классов, но это не всегда необходимо.

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

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

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

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

1 голос
/ 12 мая 2014

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

Поскольку я вычислял вероятность NSFW на основе этих слов, я обнаружил, что балансировка классов на основе их реального размера (в МБ) работает. Я попробовал 10-кратную валидацию для обоих подходов (балансирование по количеству примеров и размеру классов) и обнаружил, что балансировка по размеру данных работает хорошо.

1 голос
/ 05 июля 2011

Предпочтительным подходом является использование проверки K-Fold Cross для сбора данных обучения и тестирования.

Цитата из википедии:

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

В перекрестной проверке K-кратной Исходный образец случайно разбит на K подвыборок. Из K подвыборок, один подвыбор сохраняется в качестве данных проверки для тестирование модели, а остальные K - 1 подвыборка используется в качестве обучения данные. Процесс перекрестной проверки затем повторили К раз (складки), с каждым из использованных подвыборок K ровно один раз в качестве данных проверки. К результат из складок затем может быть усреднены (или иным образом объединены) в произвести единую оценку. Преимущество этого метода перед повторным случайная подвыборка заключается в том, что все наблюдения используются как для обучение и проверка, и каждый наблюдение используется для проверки ровно один раз 10-кратная перекрестная проверка обычно используется.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...