データマイニング分野における 10 の古典的なアルゴリズム - ナイーブ ベイズ アルゴリズム (コード付き)

データマイニング分野における 10 の古典的なアルゴリズム - ナイーブ ベイズ アルゴリズム (コード付き)

導入

ナイーブ ベイズ アルゴリズム (ナイーブ ベイズ アルゴリズムとも呼ばれます)。ナイーブ: 条件付き独立性を備えています。ベイズ: ベイズの定理に基づいています。これは、実装が簡単で、反復がなく、堅実な数学理論 (ベイズの定理など) によってサポートされている、教師あり学習の生成モデルです。サンプル数が多いほどパフォーマンスは向上しますが、入力ベクトルの特徴条件が関連しているシナリオには適していません。

基本的な考え方

(1)患者分類の例

次の表に示すように、ある病院では午前中に 6 人の外来患者を受け入れました。

今は7人目の患者、くしゃみをする建設作業員がいる。彼が風邪をひく確率はどれくらいですか?

ベイズの定理によれば:

したがって、くしゃみをした建設作業員が風邪をひいている確率は 66% です。同様に、患者がアレルギーや脳震盪を起こす確率も計算できます。これらの確率を比較することで、彼がどの病気にかかっている可能性が高いかを知ることができます。

これはベイズ分類器の基本的な方法です。統計データに基づいて、特定の特徴に従って各カテゴリの確率を計算し、分類を行います。

(2)ナイーブベイズ分類器の式

個体が n 個の特徴、つまり F1、F2、…、Fn を持っているとします。カテゴリは C1、C2、...、Cm の m 個あります。ベイズ分類器は、最高の確率、つまり次の式の最高値を計算するものです。

P(F1F2…Fn)はすべてのカテゴリで同じであり省略できるので、問題は

*** 価値。

ナイーブベイズ分類器はさらに一歩進んで、すべての特徴が互いに独立していると仮定します。

上記の式の等号の右側の各項は統計データから取得でき、そこから各カテゴリに対応する確率を計算して、最も確率の高いカテゴリを見つけることができます。

「すべての特徴は互いに独立している」という仮定は実際には当てはまらない可能性が高いですが、計算を大幅に簡素化することができ、分類結果の精度にほとんど影響を与えないことが研究で示されています。

(3)ラプラス平滑化

つまり、ベイズ推定のパラメータが 1 の場合、あるコンポーネントが全サンプル(観測サンプルライブラリ/トレーニングセット)の特定のカテゴリに一度も出現したことがなければ、インスタンス全体の計算結果は 0 になります。この問題を解決するために、ラプラス平滑化/add-1平滑化が使用されます。

考え方は非常にシンプルで、事前確率の分子(分割数)に 1 を加算し、分母にカテゴリの数を加算します。また、条件付き確率の分子に 1 を加算し、分母に対応する特徴の可能な値の数を加算します。これにより、ゼロ確率の問題が解決されるだけでなく、確率の合計が 1 のままになることも保証されます。

たとえば、テキスト分類に C1、C2、C3 の 3 つのクラスがあるとします。指定されたトレーニング サンプルでは、​​特定の単語 F1 は各クラスで観測数が 0、990、10 であり、つまり確率は P(F1/C1)=0、P(F1/C2)=0.99、P(F1/C3)=0.01 です。ラプラス平滑化を使用したこれら 3 つの量の計算方法は次のとおりです。

  1. 1/1003 = 0.001、991/1003 = 0.988、11/1003 = 0.011

実際の応用シナリオ

  • テキスト分類
  • スパムフィルタリング
  • 患者の分類
  • スペルチェック

ナイーブベイズモデル

一般的に使用される Naive Bayes モデルは次の 3 つです。

  • ガウスモデル: 特徴が連続変数である場合の処理
  • 多項式モデル: 最も一般的で、特徴が離散データであることを必要とする
  • ベルヌーイモデル: 特徴は離散的かつブール型、つまり真と偽、または1と0である必要があります。

コードの実装

多項式モデルに基づくナイーブベイズアルゴリズム(github から入手)

テストデータセットはMNISTデータセットです。アドレスtrain.csvを取得します。

運用結果

<<:  無人タクシーが登場します。準備はできていますか?

>>:  【受賞討論会】「スマート運用・保守」がトレンドに。運用・保守エンジニアは人工知能に置き換えられるのか?

ブログ    

推薦する

TPU v4 チップの計算能力が新たな高みに到達しました。 Googleが世界最大の機械学習センターを建設

最近、Google の I/O 開発者会議で、Google は魅力的な新しい携帯電話、AR グラス、...

ハイパーコンバージド インフラストラクチャで AI をエッジに押し上げる

ストレージ技術の破壊的変化は進行中であり、ハイパーコンバージド インフラストラクチャ (HCI) 市...

...

機械学習のアルゴリズム(2) - サポートベクターマシン(SVM)の基礎

SVM に関する論文や書籍は数多くあります。Qiang 兄弟の言葉を引用すると、「SVM は応用数学...

...

インタビュアー: 負荷分散アルゴリズムを理解していますか?

前回の記事では、ポーリング、ランダム、最小接続の 3 つの負荷分散アルゴリズムについて説明しました。...

DrivingDiffusion: 最初のサラウンドワールド モデル: BEV データとシミュレーションの新しいアイデア!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

...

ニューヨーク大学のチームは、自然言語を使ってチャットボットChatGPTを使ってマイクロプロセッサをゼロから設計した。

6月19日、生成型人工知能がハードウェア設計などの分野に参入し始めました。最近、ニューヨーク大学の...

2019年自然言語処理フロンティアフォーラム: 機械による「読む、書く、話す、翻訳する」に焦点を当て、自然言語処理の未来を探る

人工知能の本質は、機械が人間のように世界を認識し理解できるようにすることです。言語と知識を研究する自...

ブースティングとバギング: 堅牢な機械学習アルゴリズムを開発する方法

導入機械学習とデータ サイエンスでは、単にデータを Python ライブラリに投入してその結果を活用...

...

機械学習の理論的基礎はどの程度しっかりしているのでしょうか?

機械学習の分野では、いくつかのモデルが非常に効果的ですが、その理由は完全にはわかっていません。逆に、...

超大型モデルの登場でAIはゲームオーバーになるのか?ゲイリー・マーカス:道は狭くなっている

最近、人工知能技術は大規模モデルにおいて飛躍的な進歩を遂げています。昨日、Google が提案した ...