λ°μν
μ΄λ²μλ Naive Bayes (λμ΄λΈ λ² μ΄μ¦)λΌλ κ°λ μ λ°νμ¬ νλ² μμλ³΄κ² μ΅λλ€.
Naive Bayes (λμ΄λΈ λ² μ΄μ¦)
- λμ΄λΈ λ² μ΄μ¦(Naive Bayes)λ μ‘°κ±΄λΆ νλ₯ μ νμ©νμ¬ λΆλ₯λ₯Ό μννλ μ§λ νμ΅ μκ³ λ¦¬μ¦μ λλ€.
- μ΄ μκ³ λ¦¬μ¦μ λ 립 λ³μλ€μ΄ μλ‘ λ 립μ μ΄λΌκ³ κ°μ νμ¬ μλν©λλ€.
- μ΄λ¬ν κ°μ νμμ λμ΄λΈ λ² μ΄μ¦λ κ°λ¨νμ§λ§ κ°λ ₯ν λΆλ₯ λͺ¨λΈμ μ 곡ν©λλ€.
Bayes' Theorem (λ² μ΄μ¦ μ 리)
λμ΄λΈ λ² μ΄μ¦ μκ³ λ¦¬μ¦μ λ² μ΄μ¦ μ 리μ κΈ°λ°μ λκ³ μμ΅λλ€.
- λ² μ΄μ¦ μ 리λ μ‘°κ±΄λΆ νλ₯ μ μ¬μ©νμ¬ νΉμ μ¬κ±΄μ μ¬ν νλ₯ μ κ³μ°νλ μνμ μ리μ λλ€. μλλ λ² μ΄μ¦ μ 리μ μμμ λλ€.
- P(Aβ£B)P(A|B): μ¬κ±΄ Bκ° μΌμ΄λ¬μ λ μ¬κ±΄ Aκ° μΌμ΄λ νλ₯ (μ¬ν νλ₯ , Posterior Probability)
- μ: νΉμ λ¨μ΄κ° μμ λ μ΄λ©μΌμ΄ μ€νΈμΌ νλ₯
- P(Bβ£A)P(B|A): μ¬κ±΄ Aκ° μΌμ΄λ¬μ λ μ¬κ±΄ Bκ° μΌμ΄λ νλ₯ (μ°λ, Likelihood)
- μ: μ€νΈ λ©μΌμ νΉμ λ¨μ΄κ° μμ νλ₯
- P(A)P(A): μ¬κ±΄ Aκ° μΌμ΄λ νλ₯ (μ¬μ νλ₯ , Prior Probability)
- μ: μ€νΈ λ©μΌμ λΉμ¨
- P(B)P(B): μ¬κ±΄ Bκ° μΌμ΄λ νλ₯ (μ¦κ±°, Evidence)
- μ: νΉμ λ¨μ΄κ° μ‘΄μ¬ν νλ₯
μλ‘μ΄ λ°μ΄ν°κ° μ£Όμ΄μ‘μλ, ν΄λΉ λ°μ΄ν°κ° νΉμ λΆλ₯μ μν νλ₯ μ κ³μ°νλλ° μ¬μ©λ©λλ€.
Naive Bayes Algorithmμ μ₯μ
- κ°λ¨νκ³ λΉ λ¦: λμ΄λΈ λ² μ΄μ¦λ μκ³ λ¦¬μ¦μ΄ λ§€μ° λ¨μνμ¬ νμ΅κ³Ό μμΈ‘ μλκ° λΉ λ¦ λλ€.
- μμ λ°μ΄ν°μ μ μ ν©: μλμ μΌλ‘ μμ λ°μ΄ν°μ μμλ μ’μ μ±λ₯μ λ³΄μΌ μ μμ΅λλ€.
- λ€μν μμ© κ°λ₯: ν μ€νΈ λΆλ₯, μ€νΈ νν°λ§, λ¬Έμ λΆλ₯, κ°μ λΆμ λ± μ¬λ¬ λΆμΌμ λ리 μ¬μ©λ©λλ€.
- νλ₯ ν΄μ κ°λ₯: λͺ¨λΈμ μΆλ ₯μ΄ νλ₯ κ°μ΄λ―λ‘, μμΈ‘μ λΆνμ€μ±μ ν΄μν μ μμ΅λλ€.
Naive Bayes Algorithmμ λ¨μ
- λ 립 κ°μ μ νκ³: λͺ¨λ λ 립 λ³μκ° λ 립μ μ΄λΌλ κ°μ μ΄ νμ€μ μΌλ‘ λ§μ§ μμ μ μμ΅λλ€. μλ₯Ό λ€μ΄, ν μ€νΈ λ°μ΄ν°μμ λ¨μ΄λ€ μ¬μ΄μλ λ³΄ν΅ μνΈ μμ‘΄μ±μ΄ μμ΅λλ€.
- μ°μν λ°μ΄ν° μ²λ¦¬μ μ΄λ €μ: λμ΄λΈ λ² μ΄μ¦λ κΈ°λ³Έμ μΌλ‘ μ΄μ°ν λ°μ΄ν°λ₯Ό μ²λ¦¬νλλ° μ ν©ν©λλ€. μ°μν λ°μ΄ν°λ₯Ό λ€λ£¨κΈ° μν΄μλ νΉλ³ν μ²λ¦¬(μ: κ°μ°μμ λμ΄λΈ λ² μ΄μ¦)κ° νμν©λλ€.
- νλ ¨ λ°μ΄ν°μ νΈν₯μ±: νλ ¨ λ°μ΄ν°κ° νΈν₯λλ©΄, λͺ¨λΈμ μμΈ‘ μ±λ₯μ΄ μ νλ μ μμ΅λλ€. μ΄λ λͺ¨λΈμ΄ νΉμ ν΄λμ€μ λν΄ νΈν₯λ μμΈ‘μ ν μ μμμ μλ―Έν©λλ€.
Naive Bayes (λμ΄λΈ λ² μ΄μ¦)μ μ’ λ₯
- Gaussian Naive Bayes (GaussianNB): μ°μν λ°μ΄ν°λ₯Ό λ€λ£° λ μ¬μ©ν©λλ€. μ°μν λ°μ΄ν°λ₯Ό κ°μ°μμ λΆν¬λ‘ κ°μ νκ³ , ν΄λΉ λΆν¬μ νκ· κ³Ό λΆμ°μ κ³μ°νμ¬ λΆλ₯ν©λλ€.
- Bernoulli Naive Bayes (BernoulliNB): μ΄μ§ λ°μ΄ν°λ₯Ό λ€λ£° λ μ¬μ©ν©λλ€. μ΄μ§ νΉμ±(0 λλ 1)μΌλ‘ μ΄λ£¨μ΄μ§ λ°μ΄ν°μ μμ μ£Όλ‘ μ¬μ©λλ©°, ν μ€νΈ λ°μ΄ν°μ μ‘΄μ¬/λΆμ¬ μ¬λΆλ₯Ό μ²λ¦¬νλ λ° μ ν©ν©λλ€.
- Multinomial Naive Bayes (MultinomialNB): μ΄μ°μ μΉ΄μ΄νΈ λ°μ΄ν°λ₯Ό μ²λ¦¬ν©λλ€. μλ₯Ό λ€μ΄, ν μ€νΈ λΆλ₯μμ λ¬Έμ λ΄μ λ¨μ΄ λΉλλ₯Ό λ°νμΌλ‘ λΆλ₯λ₯Ό μνν λ μ¬μ©λ©λλ€.
Naive Bayes (λμ΄λΈ λ² μ΄μ¦) Example Code
κ·Έλ¬λ©΄ νλ² μ½λλ‘ μ΄λ»κ² λμ΄λΈ λ² μ΄μ¦λ₯Ό μ μ©νλμ§ νλ² μμλ³΄κ² μ΅λλ€.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.metrics import confusion_matrix, accuracy_score
# λ°μ΄ν° μμ±
from sklearn.datasets import load_iris
data = load_iris()
X = data.data
y = data.targetβ
print(f"X: {X}")
print(f"y: {y}")
# λ°μ΄ν° λΆν
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# λͺ¨λΈ νμ΅
nb = GaussianNB()
nb.fit(X_train, y_train)
# μμΈ‘
y_pred = nb.predict(X_test)
# νκ°
accuracy = accuracy_score(y_test, y_pred)
conf_matrix = confusion_matrix(y_test, y_pred)
print(f'Accuracy: {accuracy}')
print(f'Confusion Matrix:\n{conf_matrix}')
Accuracy: 1.0
Confusion Matrix:
[[10 0 0]
[ 0 9 0]
[ 0 0 11]]
- Confusion Matrix (νΌλνλ ¬) μκ°ν
# μκ°ν
sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues')
plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.title('Confusion Matrix')
plt.show()
λ°μν
'π Machine Learning' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ML] Supervised Learning (μ§λνμ΅) (0) | 2024.08.06 |
---|---|
[ML] Modelμ νμ΅κ³Ό νκ° (0) | 2024.08.02 |
[ML] Linear Regression (μ ννκ·) (0) | 2024.08.01 |
[ML] Supervised Learning (μ§λνμ΅) (0) | 2024.07.31 |
[ML] Machine Learning (λ¨Έμ λ¬λ) Intro (0) | 2024.07.28 |