機械学習における単純ベイズ アルゴリズム
単純ベイズ分類器アルゴリズム
分類器は、データを 1 つ以上の「クラス」セットに分類する機械学習アルゴリズムです。電子メール分類器は、電子メールをスキャンしてクラス ラベル (スパムか非スパムか) でフィルター処理する分類器の一例です。
機械学習における単純ベイズ分類器は、分類タスク用の教師あり機械学習です。
Naive Bayes は分類問題を解決するために使用されます。 オブジェクトの確率に基づいて予測します。 Naive Bayes はベイズの定理に基づいており、主にテキスト分類に使用されます。 Naive Bayes は、実装が簡単で、トレーニングが速い確率的分類アルゴリズムです。
ナイーブ ベイズ分類器はベイズの定理に基づいているため、確率分類器として知られています。 アイテムの確率に基づいて予測します。
ナイーブ・ベイズと呼ばれる理由?
ナイーブ ベイズ分類器には、Naive と Bayes という XNUMX つの単語があります。 なぜナビィ? このアルゴリズムはすべての単語文を同じものとして扱います。 たとえば、このアルゴリズムでは、「あなたは」と「あなたは」は同じです。 特徴や特徴の発生には依存しません。 果物であるリンゴを識別したい場合は、色が赤、形が球形、味が甘い必要があります。 これは、これらの機能が互いに独立していることを意味します。
- 単純ベイズ分類器は、特徴が互いに独立していることを前提としています。 これは実際のデータではほとんど不可能であるため、この分類器はナイーブと呼ばれます。
- この分類アルゴリズムは、単純ベイズ分類器として知られるベイズの定理に基づいています。
ナイーブ ベイズの定理
ベイズの定理は、事前知識に依存する条件付き確率で仮説の確率を見つけるために使用されます。 この定理はトーマス ベイズにちなんで名付けられました。 ナイーブ ベイズ分類器は、ベイズの定理によって与えられる条件付き確率の原理に基づいて機能します。
ベイズの定理を理解するために、2 枚のコインを投げる単純な単純ベイズ分類器の例を見てみましょう。これらのサンプル空間は、{HH、HT、TH、TT} の 2 枚のコインを投げることによって取得できます。したがって、これらのイベントの確率は次のようになります。
- 頭が 1 つになる = 4/XNUMX
- 少なくとも 3 つの尾 = 4/XNUMX
- 最初のコインが裏である場合、1 番目のコインは表 = 2/XNUMX
- 最初のコインが表である場合、表が 1 つ得られる = 2/XNUMX
ベイズの定理は、すでに発生した別のイベントの確率に基づいて、あるイベントが発生する確率を計算します。 ベイズの定理の公式は次のように与えられます。
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) B さえもすでに発生している場合に、A さえも発生する確率。 確率 P(B) はゼロであってはなりません。
- イベント B (証拠) が真である場合に与えられるイベント A の確率を見つける必要があります。
- P(A) は、A のアプリオリ (先験的、つまり証明前に観察されたイベントの確率) です。ここで、イベント B は未知のインスタンスの値です。
- P(A|B) はイベント B の事後確率、つまり証拠を見た後のイベントの確率です。
Naïve Bayes 分類器の実例
ベイズ単純分類器の働きを理解するために、ショッピングの例を見てみましょう。 このデータセットには、この例の 30 行の小さなサンプル データセットがあります。
データセット
問題は、単純ベイズ定理を使用して、日、割引、無料配達の特定の組み合わせで人が製品を購入するかどうかを予測することです。
ステップ1) データセットに記載されている入力タイプ (日数、割引、無料配送など) を使用して、属性ごとに度数表を作成します。
イベント「購入」を「A」、独立変数、つまり「割引」、「無料配送」、および「日」を「B」とします。 これらのイベントと変数を使用してベイズの定理を適用します。
ステップ2) 次に、尤度テーブルを XNUMX つずつ計算してみましょう。
例1:
この尤度テーブルに基づいて、以下のように条件付き確率を計算します。
P(A) = P(No Buy) = 6/30 = 0.2 P(B) = P(Weekday) = 11/30 = 0.37 P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33
そして、ベイズの定理を使って P(A/B) を求めます。
P(A/B) = P(No Buy / Weekday) = P(Weekday / No Buy) * P(No Buy) / P(Weekday) = (2/6 * 6/30) / (11/30) = 0.1818
同様に、A が購入の場合、
= P(Buy / Weekday) = P(Weekday / Buy) * P(Buy) / P(Weekday) = (9/24 * 24/30) / (11/30) = 0.8181
ご注意: P(購入 | 平日) が P(購入なし | 平日) より大きいため、顧客は平日に製品を購入する可能性が高いと結論付けることができます。
ステップ3) 同様に、XNUMX つの変数すべてに基づいてイベントの発生の可能性を計算できます。 次に、上記の度数表を使用して、XNUMX つの変数すべての尤度表を計算します。
例2:
ここで、これら XNUMX つの尤度テーブルを使用して、「日」、「割引」、「無料配送」の特定の組み合わせに基づいて顧客が購入する可能性があるかどうかを計算します。
ここでは、次の要素を組み合わせて考えてみましょう。
- 日=休日
- 割引 = はい
- 無料配送 = はい
いつ、A = 購入する
次の曜日、割引、無料配送の組み合わせでの購入の条件付き確率を計算します。
ここで、B は次のとおりです。
- 日=休日
- 割引 = はい
- 無料配送 = はい
そしてA = 購入
したがって、
= P(A/B) = P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30) = 0.986
いつ、A = 購入しない
同様に、次の曜日、割引、無料配送の組み合わせでの購入の条件付き確率を計算します。
ここで、B は次のとおりです。
- 日=休日
- 割引 = はい
- 無料配送 = はい
そして A = 購入しない
したがって、
= P(A/B) = P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30) = 0.027
ステップ4) したがって、
購入確率 = 0.986
購入されない確率 = 0.027
最後に、この日に購入する条件付き確率があります。 これらの確率を一般化して、イベントの尤度を取得しましょう。
- 確率の合計 = 0.986 + 0.027 = 1.013
- 購入の可能性 = 0.986 / 1.013 = 97.33 %
- 購入されない可能性 = 0.027 / 1.013 = 2.67 %
97.33% は 2.67% より大きいことに注意してください。 平均的な顧客は休日に割引と無料配送を利用して購入すると結論付けることができます。
単純ベイズモデルの種類
単純ベイズ分類器には多くの種類があります。 ここでは、多項式、ベルヌーイ、ガウス単純ベイズの分類器について説明しました。
1.多項単純ベイズ
このタイプの単純ベイズ モデルは、文書分類問題に使用されます。 これは、文書内の単語の頻度を表す特徴と連携します。 分類子は単語の出現と数を考慮して、ドキュメントがスポーツ、政治、テクノロジーなどの特定のカテゴリに属する確率を決定します。
2. ベルヌーイ単純ベイズ
これは、多項単純ベイズに似ています。 Bernoulli Naive Bayes 分類器は、ドキュメント分類タスクに使用されます。 ただし、ブール予測子を使用します。 これは単語が存在するかどうかを表し、Yes または No の値のみを受け取ります。分類子は、単語がテキスト内に出現するかどうかに基づいて確率を計算します。
3.ガウス単純ベイズ
この分類子は連続値の場合に使用されますが、離散値の場合には使用されません。この分類子は、 ガウシアン 分布、つまり平均と分散。
条件付き確率の式は次のように変わります。
単純ベイズ分類器の利点と制限
機械学習におけるナイーブ ベイズ アルゴリズムにはさまざまな利点と欠点があります。
単純ベイズ分類器の利点
- シンプルさと効率性: Naive Bayes はシンプルで、トレーニングと実装が簡単です。 計算コストが低いため効率的です。 大規模なデータセットを効率的に処理できます。
- 高速トレーニングと予測: Naive Bayes は、特徴間の独立性により、それほど多くのトレーニング データを必要としません。 モデルがトレーニングされると、迅速に予測できます。
- スケーラビリティ: Naive Bayes は、多数の特徴を持つ高次元データセットを処理できます。 特徴の数がトレーニング サンプルの数よりも多い場合でも、パフォーマンスは良好です。 データポイントと予測子の数に応じてスケールされます。 連続データと離散データの両方を処理します。
- 無関係な機能に対する堅牢性: 無関係な機能には敏感ではありません。
- 小規模なトレーニング セットとうまく連携します。 Naive Bayes は、トレーニング データが限られている場合でも、妥当な結果を提供できます。 トレーニング インスタンスの数が少ない状況にも対応できます。 それほど多くのトレーニング データは必要ありません。
単純ベイズ分類器の限界
ナイーブベイズ 機械学習 すべての機能が互いに独立していることを前提としています。 したがって、データ内の異なる特徴間の関係を学習することはできません。 各機能は他の機能と無関係であるかのように処理されます。
この問題を解決するには、次を使用できます。 決定木、ランダムフォレスト、サポートベクターマシン (SVM)、ニューラルネットワークなど。これらのアルゴリズムは、データ内の特徴間の複雑な関係や依存関係を学習する機能を備えています。そのため、より正確な結果を予測できます。
単純ベイズ分類器の応用
このアルゴリズムは高速かつ効率的であるため、リアルタイムの予測に使用できます。
スパム検出
メールサービス (Gmail など) は、このアルゴリズムを使用して電子メールがスパムかどうかを判断します。このアルゴリズムは、スパム フィルタリングに最適です。
感情分析
単語の選択、文の構造、文脈などの特徴に基づいて、テキストを肯定的、否定的、中立的に分類できます。 ソーシャル メディアの監視、顧客レビュー、市場調査などに応用できます。
文書分類
文書内の特定の単語や特徴の頻度や存在に基づいて、文書をスポーツ、政治、テクノロジー、金融などのカテゴリに分類できます。
推奨システム
ユーザーの好み、履歴データ、アイテムの特徴を分析して、製品、映画、記事を推奨する際のユーザーの興味や好みを予測できます。
この分類子アルゴリズムは、顔認識、天気予報、医療診断、ショッピング、ニュース分類などでも使用されます。Naive Bayes は次のように実装できます。 Python。 単純ベイズ分類器 sklearn、つまり sklearn.naive_bayes があります。 このアルゴリズムを実装したモジュールです。
まとめ
機械学習におけるナイーブベイズアルゴリズムは、スパム検出、ニュース分類、感情分析、天気予報、ショッピングなどで主に使われる分類器です。ナイーブベイズアルゴリズムはベイズの定理に基づいています。 アルゴリズム シンプルで実装が簡単です。 高速なので、リアルタイム アプリケーションで使用できます。 その最大の欠点は、独立した特徴を前提としているということです (独立した特徴は現実にはほとんど不可能であるため、Naive として知られています)。 各機能を同等に扱います。 この欠点を克服するには、デシジョン ツリー、ランダム フォレスト、サポート ベクター マシン (SVM) などの他の分類子を使用できます。