ホーム Topics ナイーブベイズ ナイーブ・ベイズ分類器とは
watsonx.aiによるナイーブ・ベイズの適用 AI関連の最新情報を購読する
雲、円グラフ、グラフのピクトグラムをコラージュしたイラスト
ナイーブ・ベイズ分類器とは

ナイーブ・ベイズ分類器は、テキスト分類などの分類タスクに使用される教師あり機械学習アルゴリズムです。これらは、確率の原則を使用して分類タスクを実行します。

ナイーブ・ベイズは生成学習アルゴリズムのファミリーの一部であり、特定のクラスまたはカテゴリの入力の分布をモデル化することを意味します。ロジスティック回帰などの判別分類器とは異なり、クラス間を区別するためにどの特徴が最も重要であるかを学習しません。

AIのためのデータ・ストア

データレイクハウス戦略をデータ・アーキテクチャーに統合することで、AIの拡張やコスト最適化の機会など、そのパワーを実感してください。

関連コンテンツ

生成AIに関する電子ブックに登録する

Pythonを使用してこの分類器を適用する方法については、チュートリアルをご覧ください。
ベイズ統計の簡単な説明

ナイーブ・ベイズはベイズの定理に基づいているため、確率的分類器としても知られています。ベイズ統計の基本を説明せずにこのアルゴリズムを説明することは困難です。 ベイズの法則としても知られるこの定理により、条件付き確率を「反転」することができます。 条件付き確率は、他のイベントが発生した場合のイベントの確率を表し、次の式で表されます。

ベイズの定理は、後から取得される追加情報が初期確率に影響を与える一連のイベントの使用によって区別されます。 これらの確率は、事前確率と事後確率として表されます。事前確率は、特定の条件下で文脈化される前のイベントの初期確率、または限界確率です。事後確率は、データの一部を観察した後の事象の確率です。

 

この概念を示す統計学と機械学習の文献(ibm.com外部リンク)でよく使われる例は、医療検査です。たとえば、糖尿病かどうかを確認するために検査を受けるJaneさんという人がいると想像してください。糖尿病になる全体的な確率は5%だとしましょう。これが事前確率になります。ただし、検査で彼女に陽性の結果が出た場合、この追加情報を考慮して事前確率が更新され、それが事後確率になります。この例は、ベイズの定理を使用すると次の方程式で表すことができます。

しかし、食事、年齢、家族歴などの他の変数を考慮すると、事前確率の知識は正確ではない可能性が高いため、通常はランダムサンプルからの確率分布を活用し、方程式をP(Y|X) = P(X|Y)P(Y) / P(X)と簡略化します。

 

ナイーブ・ベイズへの回帰

ナイーブ・ベイズ分類器は、いくつかの重要な仮定の下で動作するという点で異なる動作をするため「ナイーブ(単純)」という名前が付けられています。ナイーブ・ベイズモデルの予測子は条件付きで独立している、つまりモデル内の他の特徴とは無関係であると仮定します。また、すべての特徴が結果に等しく寄与すると仮定します。 これらの前提は、現実のシナリオでは成り立たないことがよくあります(たとえば、電子メール内の後続の単語はその前にある単語に依存します)が、計算処理が容易になることで分類問題を単純化します。つまり、各変数に必要な確率は1つだけになるため、モデルの計算が容易になります。この非現実的な独立性の仮定に反し、特にサンプルサイズが小さい場合、分類アルゴリズムは良好なパフォーマンスを発揮します。

この仮定を念頭に置いて、ナイーブ・ベイズ分類器の要素をより詳細に再分析できます。ベイズの定理と同様に、条件付き確率と事前確率を使用し、次の式を使用して事後確率を計算します。

ここで、ナイーブ・ベイズのアルゴリズムがどのように機能するかを説明するために、テキスト分類のユースケースを想像してみましょう。スパムフィルターの改善を検討しているEメールプロバイダーを想像してください。トレーニングデータは「スパム」または「非スパム」に分類されたEメールの単語で構成されます。そこから、クラスの条件付き確率と事前確率が計算され、事後確率が得られます。ナイーブ・ベイズ分類器は、特定のEメールに対するクラス群(例:「スパム」または「非スパム」)のうち最大の事後確率を持つクラスを返すことによって動作します。この計算は次の式で表されます。

各クラスは同じテキスト部分を参照しているため、実際にはこの式から分母を削除して、次のように単純化できます。

次に、トレーニングデータセットに基づく学習アルゴリズムの精度が、テストデータセットのパフォーマンスに基づいて評価されます。

クラス条件付き確率

これをもう少し詳しく理解するために、この式を構成する個々の部分をさらに深く見ていきます。クラス条件付き確率は、Eメール内の各単語における個別の可能性です。これらは、「スパム」または「非スパムではない」などのカテゴリーごとに各単語の頻度を決定することによって計算され、最尤推定法(MLE)とも呼ばれます。 この例では、「拝啓」というフレーズがあるかどうかを調べる場合、すべてのスパムEメールと非スパムEメール内でこれらの単語がどのくらいの頻度で出現するかを計算するだけです。これは、yが「拝啓」、xが「スパム」である場合、次の式で表すことができます。

事前確率

事前確率は、先ほどベイズの定理で説明したものとまったく同じです。トレーニングセットに基づいて、Eメールが「スパム」または「非スパム」かという全体的な確率を計算できます。 クラスラベル「スパム」の事前確率は、次の式で表されます。

事前確率は、2つの値を乗算するときにクラス条件付き確率に対する「重み」として機能し、個々の事後確率が得られます。そこから、最大事後推定(MAP)が計算され、スパムか非スパムかのクラスラベルが割り当てられます。ナイーブ・ベイジアン方程式の最終方程式は、次の方法で表すことができます。

あるいは、ナイーブ・ベイズは一般的に次の形式で使われるため、対数空間で表すこともできます。

ナイーブ・ベイズ分類器の評価

分類器を評価する方法の1つは、混同行列をプロットすることです。これにより、行列内に実際の値と予測値がプロットされます。通常、行は実際の値を表し、列は予測値を表します。多くのガイドでは、この図を次のような2x2プロットとして説明します。

ただし、0から9までのイメージを予測する場合は、10x10のプロットが作成されます。 分類器が4と9の画像を「混同」した回数を知りたい場合は、4行目と9 列目を確認するだけでよいのです。

ナイーブ・ベイズ分類器の種類

ナイーブ・ベイズ分類器の種類は1種類だけではありません。最も一般的なタイプは、特徴量の分布によって異なります。その例としては、以下があります。

  • ガウシアン・ナイーブ・ベイズ(GaussianNB):ガウス分布で使用されるナイーブ・ベイズ分類器のバリエーションで、正規分布と連続変数を用いて表現します。このモデルは、各クラスの平均と標準偏差を求めることによって適合されます。
  • マルチノミアル・ナイーブ・ベイズ(MultinomialNB):このタイプのナイーブ・ベイズ分類器は、特徴が多項分布からのものであることを前提としています。このバリアントは頻度カウントなどの離散データを使用する場合に便利で、通常はスパム分類などの自然言語処理のユースケースに適用されます。
  • ベルヌーイ・ナイーブ・ベイズ(BernoulliNB):これはナイーブ・ベイズ分類器の別のバリエーションで、ブール変数、つまりTrueとFalse、または1と0などの2つの値を持つ変数を使用します。

これらはすべて、Scikit Learn Pythonライブラリ(別名:sklearn)(ibm.com外部リンク)から実装できます。

ナイーブ・ベイズ分類器のメリットとデメリット
メリット
  • シンプルさ:他の分類器と比較して、ナイーブ・ベイズはパラメータの推定が容易であるため、より単純な分類器と考えられています。そのため、データサイエンスおよび機械学習のコースで最初に学ぶアルゴリズムの1つです。
  • 大きなデータセットにも対応:ロジスティック回帰と比較すると、ナイーブ・ベイズは、条件付き独立性の仮定が成立する場合、かなり正確で高速かつ効率的な分類器であると考えられています。また、ストレージ要件も低くなります。
  • 高次元データを処理できる:文書分類などのユースケースでは、多数の次元が含まれる可能性があり、他の分類器では管理が困難になる可能性があります。
デメリット:
  • ゼロ頻度の対象:トレーニングセット内にカテゴリカル変数が存在しない場合、ゼロ頻度が発生します。たとえば、クラス「スパム」が与えられた場合、単語「拝啓」の最尤推定量を見つけようとしているものの、単語「拝啓」がトレーニングデータに存在しないとします。この場合の確率はゼロになり、この分類子はすべての条件付き確率を乗算するため、事後確率もゼロになることを意味します。この問題を回避するには、ラプラス平滑化を利用するとよいでしょう。
  • 非現実的な核となる仮定:条件付き独立性の仮定は全体的には上手く機能するものの、この仮定は常に成り立つわけではないため、不正確な分類につながります。
ナイーブ・ベイズ分類器の応用

ナイーブ・ベイズは、他の多くのアルゴリズムと同様に、大量のデータを有用な情報に変換するデータ・マイニング・アルゴリズム群に属しています。ナイーブ・ベイズの応用には次のようなものがあります。

  • スパムのフィルタリング:スパムの分類は、論文で引用されているナイーブ・ベイズの最も一般的な応用例の1つです。このユースケースの詳細については、 Oreillyのフィルタリングの章(ibm.com外部リンク)を参照してください。
  • ドキュメントの分類:ドキュメントとテキストの分類は密接に関連しています。 ナイーブ・ベイズのもう1つの一般的な使用例は、コンテンツ分類です。ニュースメディアウェブサイトのコンテンツカテゴリを想像してください。すべてのコンテンツカテゴリは、サイト上の各記事に基づいたトピック分類に基づいて分類できます。Federick Mosteller氏とDavid Wallace氏は、1963年の論文でベイズ推論を初めて適用したとされています(ibm.com外部リンク)。
  • センチメント分析:これもテキスト分類の一種ですが、センチメント分析は、特定の製品やブランドに関する意見や態度をよりよく理解し、定量化するために、一般的にマーケティングで活用されています。
  • 精神状態の予測:fMRIデータを用いて、ナイーブ・ベイズは人間のさまざまな認知状態を予測するために活用されています。この研究(ibm.com外部リンク)の目的は、特に脳損傷患者の隠れた認知状態をよりよく理解するためでした。
関連製品
IBM Cloud Pak for Data

IBM Cloud Pak for Dataは、オープンで拡張可能なデータ・プラットフォームであり、あらゆるクラウドでAIや分析のために全てのデータを利用可能にするデータ・ファブリックを提供します。

IBM Cloud Pak for Dataの詳細はこちら
IBM Watson Studio

AIモデルを構築、実行、管理します。オープンソースコードまたはビジュアルモデリングを使用して、任意のクラウド上でデータを準備し、モデルを構築します。結果を予測して最適化します。

IBM Watson Studioの詳細はこちら
watsonx.ai

ビジネス向けの生成AIと機械学習の運用化と拡張を推進します。

watsonx.aiの詳細はこちら
参考情報 生成AI技術に関する無料のハンズオン学習

プロンプト・エンジニアリング、大規模な言語モデル、オープンソース・プロジェクトなど、AIと生成AIの基本概念を説明します。

低エントロピー分布におけるナイーブ・ベイズ分類器の解析

この論文では、IBM Researchが、クラス条件付き特徴量分布のエントロピーの減少がナイーブ・ベイズ分類器の誤差にどのように影響するかを実証的に示しています。

ナイーブ・ベイズのパフォーマンスに影響を及ぼすデータ特性の分析

IBM Researchは、モンテカルロ・シミュレーションを使用して、ナイーブ・ベイズが完全に独立した特徴と機能的に依存する特徴の2つの場合に最も効果的に機能することを示しました。

Pythonとscikit-learnを使用して分類アルゴリズムを学習

分類ベースの機械学習問題を解決するための基本を学び、現在最も人気のあるアルゴリズムのいくつかを比較研究します。

マルチノミナル・ナイーブ・ベイズ・アルゴリズムを使用したデータの分類

scikit-learnを使用して、マルチノミナル・ナイーブ・ベイズを使用した一般的なテキスト分類タスク(スパムフィルタリング)を完了します。

次のステップ

AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、デプロイしましょう。わずかなデータ、わずかな時間でAIアプリケーションを構築できます。

watsonx.aiの詳細はこちら デモの予約