Курильщики реже умирают от болезней, связанных с возрастом

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

  • название фрукта,
  • если он желтый или нет,
  • если он длинный или нет, и,
  • сладкое оно или нет.

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

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

Итак, скажем, когда вы пытаетесь идентифицировать фрукт из корзины, вы берете фрукт и замечаете, что он желтый, длинный и не сладкий. Теперь, как вы можете использовать данную таблицу, чтобы идентифицировать этот фрукт?? Что, если вы можете каким-то образом вычислить вероятность того, что фрукт является манго/бананом/другим, используя данные. На самом деле вы можете вычислить вероятность того, что фрукт будет желтым, длинным и не сладким X (манго/банан/другие), используя Теорему Байеса следующим образом:

P(X, Y, L, S’) = P(Y, L, S’, X) = P(Y|L, S’, X) * P(L|S’, X) * P(S’|X) * P(X)

Здесь P(Y|L, S', X) означает вероятность того, что цвет будет желтым при условии, что плод длинный, не сладкий и равен X. P(L|S', X), P(S'|X) имеют подобные значения.

Но поскольку мы пытаемся использовать наивный байесовский классификатор, мы будем считать, что все атрибуты условно независимы, поэтому мы можем записать приведенное выше как:

P(X, Y, L, S’) = P(Y|X) * P(L|X) * P(S’|X) * P(X)

Здесь,

  • P(X) = вероятность того, что фрукт будет X,
  • P(Y|X) = вероятность того, что цвет будет желтым, если это фрукт X,
  • P (L | X) = вероятность того, что длина будет длинной, если это фрукт X,
  • P(S’|X) = вероятность того, что тип сладости будет (сладким)’ при условии, что это фрукт X

Разница между обоими уравнениями заключается в том, что мы предполагаем, что P(Y|L, S’, X) = P(Y|X), поскольку все атрибуты независимы. Мы делаем то же самое для других компонентов в уравнении.

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

Теперь из этой таблицы вы можете создать таблицу правдоподобия (таблицу, которая представляет вероятность того, что событие произойдет) следующим образом:

Теперь у вас есть все необходимые вероятности для вычисления P(X, Y, L, S’).

P(M, Y, L, S’) = 200/300 * 0/300 * 250/300 * 300/1000 = 0
P(B, Y, L, S’) = 350/400 * 350/400 * 200/400 * 400/1000 = 0.153125
P(O, Y, L, S’) = 150/300 * 100/300 * 150/300 * 300/1000 = 0.025

Следовательно, их индивидуальные вероятности, учитывая, что плод желтый, длинный и не сладкий, составляют:

P(M | Y, L, S’) = 0/(0+0.153125+0.025) = 0
P(B | Y, L, S’) = 0.153125/(0+0.153125+0.025) = 0.86
P(O | Y, L, S’) = 0.025/(0+0.153125+0.025) = 0.14

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

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

Наивный байесовский классификатор доступен в scikit-learn как GaussianNB, MultinomialNB, BernoulliNBв sklearn.naive_bayes.