データマイニング分野における 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を取得します。

運用結果

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

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

ブログ    

推薦する

...

機械学習の決定木とランダムフォレストモデル

[[206785]]決定木導入決定木は機械学習において非常に一般的な分類方法です。すべてのアルゴリズ...

2024年のAIに関する5つの予測

2023 年には、AI、ML、特に GenAI があらゆるところに存在しますが、内容よりもパフォーマ...

人工知能とコンピュータービジョンの違いは何ですか?

人工知能 (AI) アプリケーションは、テクノロジーとの関わり方を変え始めており、私たちの生活をより...

韓国の常温超伝導チームは重要な技術を隠蔽したのか?アニーリングの詳細がネットユーザーによって暴露され、6つの中国チームが攻撃を開始

昨今、室温超伝導を再現する実験が注目を集めています。 3日間の期限が過ぎ、多くの再現実験で結果が得ら...

...

...

スマートビジョンが AI アプリケーションに及ぼす 5 つの影響

インテリジェントビジョンは人工知能への扉です。この扉が開かれなければ、人工知能に関する詳細な研究を行...

AI は DevOps をどのように変えるのでしょうか?

DevOps は、コードの品質を損なうことなく、ソフトウェア開発プロセスを加速し、顧客に価値をより...

デジタルマーケティング: AI はどのようにして人間の行動パターンを「見抜く」のでしょうか?

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

...

phind: 開発者に特化したAI検索エンジンの誕生!

みなさんこんにちは、三元です。前回の記事では、AIを使いこなせない人は本当に将来淘汰されていくのか?...

AI革命:大人になったら仕事がないかもしれない

2050 年の雇用市場がどうなるかは全く分かりません。 [[412422]]わずか10年から20年の...

人工知能研究における大きな進歩は人類に大きな変化をもたらすだろう

アメリカのテクノロジーの天才イーロン・マスク氏は、彼の研究チームが脳と機械の相互接続を可能にする脳・...

Java プログラミング スキル - データ構造とアルゴリズム「スレッド バイナリ ツリー」

[[388829]]まず質問を見てみましょうシーケンス{1,3,6,8,10,14}を二分木に構築...