наївний Баєсів класифікатор
Наївний Баєсів класифікатор - це простий, але ефективний алгоритм машинного навчання для задач класифікації. Він ґрунтується на Теоремі Баєса і припущенні про незалежність ознак.
У наївному Баєсовому класифікаторі вхідні ознаки розглядаються як незалежні між собою, незалежно від наявності цього припущення у реальних даних. Незалежність ознак спрощує обчислення імовірностей, необхідних для класифікації.
Ось приклад, як використовувати наївний Баєсів класифікатор для визначення, чи є електронний лист спамом чи не спамом:
python
У цьому прикладі
import numpy as np
class NaiveBayesClassifier:
def __init__(self):
self.classes = None
self.class_priors = None
self.feature_probs = None
def fit(self, X, y):
self.classes, class_counts = np.unique(y, return_counts=True)
self.class_priors = class_counts / y.size
self.feature_probs = []
for c in self.classes:
X_c = X[y == c]
feature_probs_c = np.mean(X_c, axis=0)
self.feature_probs.append(feature_probs_c)
def predict(self, X):
posteriors = []
for i, c in enumerate(self.classes):
class_prior = np.log(self.class_priors[i])
feature_probs_c = self.feature_probs[i]
log_likelihoods = np.log(feature_probs_c)
log_likelihoods_complement = np.log(1 - feature_probs_c)
log_posteriors = np.sum(X * log_likelihoods + (1 - X) * log_likelihoods_complement, axis=1) + class_prior
posteriors.append(log_posteriors)
posteriors = np.array(posteriors).T
predictions = np.argmax(posteriors, axis=1)
return self.classes[predictions]
# Приклад використання
# Згенеруємо випадкові дані
X = np.random.randint(2, size=(1000, 10)) # Ознаки (0 або 1)
y = np.random.randint(2, size=1000) # Мітки (0 або 1)
# Ініціалізуємо і навчаємо класифікатор
classifier = NaiveBayesClassifier()
classifier.fit(X, y)
# Передбачення на нових даних
new_data = np.random.randint(2, size=(5, 10))
predictions = classifier.predict(new_data)
print(predictions)
Теорема Баєса - це теорема з теорії ймовірностей, яка дозволяє оновлювати апріорні імовірності після отримання нових доказів. Вона названа на честь Томаса Баєса, британського математика, який сформулював цю теорему.
Формально, Теорема Баєса виглядає наступним чином:
P(A∣B)=P(B∣A)⋅P(A)/P(B)
де:
P(A∣B) - умовна імовірність події A за умови події B,
P(B∣A) - умовна імовірність події B за умови події A,
P(A) - апріорна (початкова) імовірність події A,
P(B) - імовірність події B.
Теорема Баєса використовується для оновлення апріорних імовірностей, коли маємо нові докази або інформацію. Вона дозволяє обчислити умовну імовірність події A за умови події B, враховуючи апріорні імовірності та відношення імовірностей B до A.
Теорема Баєса має широке застосування в багатьох галузях, включаючи статистику, машинне навчання, обробку природної мови, комп'ютерний зір та інші галузі, де необхідно вирішувати проблеми на основі доказів та імовірностей.