機械学習における単純ベイズ アルゴリズム
⚡ スマートサマリー
ナイーブベイズは、ベイズの定理に基づいて構築された教師あり確率分類アルゴリズムであり、すべての特徴が独立して寄与すると仮定しています。その理論は、実践的な作業場です。ping 例えば、3つのモデルバリエーション、その利点、制限事項、および実際の応用例については、以下で説明します。
単純ベイズ分類器アルゴリズム
分類器とは、データを一連の「クラス」のうちの1つ以上に分類する機械学習アルゴリズムのことです。メール分類器はよく知られた例の一つで、受信したすべてのメッセージをスキャンし、「スパム」または「スパムではない」というクラスラベルを付与します。
機械学習におけるナイーブベイズ分類器は 教師あり学習 分類タスクに使用されるアルゴリズム。
下の図はその流れを示しています。
Naive Bayes は分類問題を解決するために使用されます。 オブジェクトの確率に基づいて予測します。 Naive Bayes はベイズの定理に基づいており、主にテキスト分類に使用されます。 Naive Bayes は、実装が簡単で、トレーニングが速い確率的分類アルゴリズムです。
ナイーブベイズ分類器はベイズの定理に基づいているため、確率分類器とも呼ばれます。これは、ある項目の確率に基づいて予測を行います。
なぜナイーブベイズと呼ばれるのか?
ナイーブベイズという名前は、ナイーブ(Naive)とベイズ(Bayes)の2つの部分から成り立っています。なぜナイーブ(naive)なのでしょうか?このアルゴリズムは特徴が現れる順序を無視するため、「You are」と「Are you」は同じように見えます。また、どの特徴も他の特徴に影響を与えないと仮定しています。リンゴという果物を認識するために、色は赤、形は球形、味は甘いという特徴を用いますが、このアルゴリズムはこれらの手がかりをそれぞれ独立した証拠として扱います。
- ナイーブベイズ分類器は、特徴量が互いに独立していると仮定します。しかし、実際のデータではこのような仮定はめったに成り立たないため、この分類器は「ナイーブ」と呼ばれます。
- この分類アルゴリズムはベイズの定理に基づいているため、ナイーブベイズ分類器として知られています。
ナイーブベイズの定理
ベイズの定理は、事前知識に依存する条件付き確率を用いて仮説の確率を求めるために用いられます。この定理はトーマス・ベイズにちなんで名付けられました。ナイーブベイズ分類器は、ベイズの定理で示される条件付き確率の原理に基づいて動作します。
ベイズの定理を理解するために、2枚のコインを投げるという単純なナイーブベイズ分類器の例を見てみましょう。2枚のコインを投げると、{HH, HT, TH, TT} という標本空間が得られます。したがって、これらの事象の確率は次のようになります。
- 頭が 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)は事象Aの事後確率、つまり証拠Bを見た後のAの確率です。
ナイーブベイズ分類器の動作例
その数式が正しく機能するかどうかを確認する最も手っ取り早い方法は、手計算で実行してみることです。
お店を例にとってみましょうping ベイズナイーブ分類器の動作を理解するため。このデータセットには、この例のために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 %
2つのスコアを合計すると1ではなく1.013になります。これは、独立性の仮定により各推定値が近似値となるため、合計で割ることでパーセンテージに再スケーリングされるためです。
97.33% は 2.67% より大きいことに注意してください。 平均的な顧客は休日に割引と無料配送を利用して購入すると結論付けることができます。
ナイーブベイズモデルの種類
単純ベイズ分類器には多くの種類があります。 ここでは、多項式、ベルヌーイ、ガウス単純ベイズの分類器について説明しました。
| バリアント | 機能タイプ | 典型的な使用 |
|---|---|---|
| 多項式 | 単語数 | トピックと文書の分類 |
| ベルヌーイ | バイナリ形式の存在/不在フラグ | 短いテキストとスパムフィルタリング |
| ガウシアン | 連続数値 | センサーの読み取り値と測定値 |
1.多項単純ベイズ
このタイプの単純ベイズ モデルは、文書分類問題に使用されます。 これは、文書内の単語の頻度を表す特徴と連携します。 分類子は単語の出現と数を考慮して、ドキュメントがスポーツ、政治、テクノロジーなどの特定のカテゴリに属する確率を決定します。
2. ベルヌーイ単純ベイズ
これは、多項単純ベイズに似ています。 Bernoulli Naive Bayes 分類器は、ドキュメント分類タスクに使用されます。 ただし、ブール予測子を使用します。 これは単語が存在するかどうかを表し、Yes または No の値のみを受け取ります。分類子は、単語がテキスト内に出現するかどうかに基づいて確率を計算します。
3.ガウス単純ベイズ
この分類子は連続値の場合に使用されますが、離散値の場合には使用されません。この分類子は、 ガウシアン 分布、つまり平均と分散。
条件付き確率の式は次のように変わります。
その scikit-学ぶ ライブラリに、不均衡なテキストデータに対応する補完型ナイーブベイズと、離散的なカテゴリに対応するカテゴリカルナイーブベイズの2つのバリアントが追加されました。
単純ベイズ分類器の利点と制限
機械学習におけるナイーブ ベイズ アルゴリズムにはさまざまな利点と欠点があります。
単純ベイズ分類器の利点
- シンプルさと効率性: Naive Bayes はシンプルで、トレーニングと実装が簡単です。 計算コストが低いため効率的です。 大規模なデータセットを効率的に処理できます。
- 高速トレーニングと予測: ナイーブベイズは、特徴量間の独立性があるため、それほど多くの学習データを必要としません。モデルが学習されれば、高速な予測が可能になります。
- スケーラビリティ: Naive Bayes は、多数の特徴を持つ高次元データセットを処理できます。 特徴の数がトレーニング サンプルの数よりも多い場合でも、パフォーマンスは良好です。 データポイントと予測子の数に応じてスケールされます。 連続データと離散データの両方を処理します。
- 無関係な機能に対する堅牢性: 無関係な機能には敏感ではありません。
- 小規模なトレーニング セットとうまく連携します。 ナイーブベイズは、限られた訓練データでも妥当な結果を提供できます。訓練データの数が少ない状況にも対応可能です。
単純ベイズ分類器の限界
ナイーブベイズ 機械学習 すべての機能が互いに独立していることを前提としています。 したがって、データ内の異なる特徴間の関係を学習することはできません。 各機能は他の機能と無関係であるかのように処理されます。
2つ目の注意点:報告されるクラス確率は精度が低いため、予測に付随する信頼度は信頼できる確率ではありません。
この問題を解決するには、次を使用できます。 決定木ランダムフォレスト、サポートベクターマシン(SVM)、 ニューラルネットワーク など。これらのアルゴリズムは、データ内の特徴間の複雑な関係性や依存関係を学習する能力を持っています。そのため、より正確な結果を予測することができます。
単純ベイズ分類器の応用
このアルゴリズムは高速かつ効率的であるため、リアルタイムの予測に使用できます。
スパム検出
メールサービス (といった Gmailこのアルゴリズムを使用して、メールがスパムかどうかを判断します。このアルゴリズムはスパムフィルタリングに最適です。
感情分析
単語の選択、文の構造、文脈などの特徴に基づいて、テキストを肯定的、否定的、中立的に分類できます。 ソーシャル メディアの監視、顧客レビュー、市場調査などに応用できます。
文書分類
文書内の特定の単語や特徴の頻度や存在に基づいて、文書をスポーツ、政治、テクノロジー、金融などのカテゴリに分類できます。
推奨システム
ユーザーの好み、履歴データ、アイテムの特徴を分析して、製品、映画、記事を推奨する際のユーザーの興味や好みを予測できます。
この分類アルゴリズムは、顔認識、天気予報、医療診断、ショップなどでも使用されています。pingニュース分類など。ナイーブベイズを実装できます。 Pythonここで、sklearn.naive_bayes モジュールは、上記で説明したすべてのバリアントを提供します。








