Naive Bayes(ナイーブベイズ)は、機械学習における確率的分類器の一つで、ベイズの定理に基づいています。以下にナイーブベイズの主要な特徴と概念をまとめます:

基本概念

  1. ベイズの定理:
    ナイーブベイズの基礎となる数式です。 $$P(A|B) = \frac{P(B|A)P(A)}{P(B)}$$ ここで、A はクラス、B は特徴を表します。 ここで:
  • $P(A|B)$ は、Bが与えられた時のAの条件付き確率(事後確率)
  • $P(B|A)$ は、Aが与えられた時のBの条件付き確率(尤度)
  • $P(A)$ はAの事前確率
  • $P(B)$ はBの確率(証拠)

ナイーブベイズの文脈では:

  • A はクラス(分類したいカテゴリ)
  • B は特徴(観測されたデータ)

を表します。この公式を使用して、与えられた特徴Bに対して、最も確率の高いクラスAを予測します。ナイーブベイズの「ナイーブ」な仮定は、各特徴が互いに独立していると仮定することです。これにより、複数の特徴がある場合の計算が簡略化されます。

  1. 「ナイーブ」の意味:
    特徴間の独立性を仮定しています。この仮定により計算が簡略化されますが、現実世界では必ずしも成り立たない場合があります。
  2. 確率的モデル:
    各クラスの確率を計算し、最も確率の高いクラスを予測結果とします。

主な種類

  1. ガウシアンナイーブベイズ:
    連続値の特徴に対して使用され、正規分布を仮定します。
  2. 多項式ナイーブベイズ:
    離散値の特徴に対して使用され、多項分布を仮定します。テキスト分類でよく使われます。
  3. ベルヌーイナイーブベイズ:
    二値特徴(0または1)に対して使用され、ベルヌーイ分布を仮定します。

利点

  1. 実装が簡単で計算効率が良い
  2. 少量のトレーニングデータでも良好な性能を発揮する
  3. 高次元の入力に対しても効果的

欠点

  1. 特徴間の独立性の仮定が現実世界では成り立たないことが多い
  2. 数値予測には不向き

応用例

  1. スパムメール分類
  2. 感情分析
  3. 文書カテゴリ分類
  4. 医療診断

実装例 (Python/scikit-learn)

from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# データの準備
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# モデルの作成と学習
nb_model = GaussianNB()
nb_model.fit(X_train, y_train)

# 予測
y_pred = nb_model.predict(X_test)

# 精度の評価
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

ナイーブベイズは、その単純さと効率性から、特にテキスト分類タスクにおいて広く使用されている手法です。