プライマリ・コンテンツに移動
Oracle® Data Mining概要
12cリリース1 (12.1) B72966-03
目次へ移動
目次
索引へ移動
索引

前
次
次へ

16 Naive Bayes

Oracle Data MiningでサポートされているNaive Bayes分類アルゴリズムを使用する方法を学習します。

関連項目:

「分類」

Naive Bayesとは

Naive Bayesアルゴリズムは条件付き確率に基づいています。これにはBayesの定理(履歴データの値の組合せと値の頻度を数えて確率を計算する式)が使用されます。

Bayesの定理では、すでに発生している別のイベントの確率を前提として、あるイベントの発生確率を見つけます。Bが従属イベントを、Aが事前イベントを表す場合、Bayesの定理は次のように示すことができます。

注意:

Prob(B given A) = Prob(A and B)/Prob(A)

Aを前提としたBの確率は、AおよびBが一緒に発生するケースの数を、Aが単独で発生するケースの数で除算して計算されます。

例16-1 Bayesの定理を使用した消費の増加予測

21才未満の顧客が消費を増やす可能性を特定する必要があるものとします。この場合、事前条件(A)が「21未満」となり、従属条件(B)が「消費を増やす」となります。

トレーニング・データ内に100人の顧客が含まれていて、そのうち25人が消費を増やしている21才未満の顧客である場合、次のように計算されます。

Prob(A and B) = 25%

100人の顧客のうち75人が21才未満である場合、次のように計算されます。

Prob(A) = 75%

この場合、Bayesの定理では、21才未満の顧客の33% (25/75)が消費を増やす可能性があると予測されます。

両方の条件が一緒に発生するケースは、組(pairwise)と呼ばれます。例17-1では、すべてのケースの25%が組です。

事前イベントのみが発生するケースは、単一(singleton)と呼ばれます。例17-1では、すべてのケースの75%が単一です。

次の図は、Bayesの定理で使用される条件の関係を視覚的に表しています。

図16-1 Bayesの定理の条件付き確率

図16-1の説明が続きます
「図16-1 Bayesの定理の条件付き確率」の説明

例17-1および図17-1では、説明のために、1つの独立イベントに基づく従属イベントを示しています。実際には、Naive Bayesアルゴリズムでは通常、多数の独立イベントを考慮する必要があります。例17-1では、年齢の他に、収入、教育レベル、性別、店舗の場所などの要素を考慮する場合があります。

Naive Bayesでは、各予測子は他の予測子とは条件的に独立していると想定されます。所定のターゲット値に関して、各予測子の分布は他の予測子とは独立しています。この非依存性という前提によって、(たとえ前提が満たされていない場合でも)モデルの予測精度が極端に低くなることがなくなり、またこの前提が、高速で計算可能なアルゴリズムと扱いにくいアルゴリズムの違いになっています。

特定の予測子の分布が、明らかに、より大きな母集団を代表していない場合があります。たとえば、トレーニング・データ内に21才未満の顧客が少数しか存在しないが、広範な顧客ベースには、この年齢グループの顧客が実際に多数存在する場合などが考えられます。これを補正するには、モデルのトレーニングの際に、事前確率を指定します。

Naive Bayesの利点

Naive Bayesアルゴリズムは、高速でスケーラビリティの高いモデルの作成およびスコアリングを実行できます。このアルゴリズムは予測子および行の数に基づいて線形にスケーリングされます。

Naive Bayesの作成プロセスはパラレル実行をサポートします。(スコアリングはアルゴリズムに関係なくパラレル実行をサポートします。)パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。

Naive Bayeは、2項および多クラスのどちらの分類問題にも使用できます。

Naive Bayesモデルのチューニング

Naive Bayesでは、組の発生割合を単一の発生割合で除算することによって確率が計算されます。これらの割合は、特定の予測子に関して非常に小さい場合、モデルの効率性にはほとんど寄与しません。通常、特定のしきい値以下の発生は無視できます。

確率のしきい値を調整するために、次の構築設定を使用できます。次を指定できます。

  • モデルに予測子を含めるために必要な組の最小発生割合。

  • モデルに予測子を含めるために必要な単一の最小発生割合。

デフォルトのしきい値はほとんどのモデルに対して問題なく機能するため、これらの設定を調整する必要はありません。

関連項目:

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』のアルゴリズム設定のNaive Bayesに関する項

Naive Bayes用のデータ準備

Naive Bayesに対する自動データ準備では、監視ありビニングが実行されます。監視ありビニングでは、ディシジョン・ツリーを使用して最適なビンの境界が作成されます。質的属性と量的属性のいずれもビニングされます。

Naive Bayesでは、欠損値をそのまま(ランダムに欠損している値として)処理します。スパースな量的データは0 (ゼロ)に置換され、スパースな質的データはゼロ・ベクトルに置換されます。ネストした列の欠損値はスパースとして解釈されます。単純なデータ型の列の欠損値は、ランダムに欠損した値として解釈されます。

独自のデータ準備を行う場合、Naive Bayesでは通常ビニングが必要となります。Naive Bayesは、確率を計算するうえで集計手法に依存しています。カーディナリティを必要に応じて削減するために、列をビニングする必要があります。量的データは値の範囲(低、中、高など)にビニングでき、質的データはメタクラス(都市のかわりに地域など)にビニングできます。等幅ビニングはお薦めできませんが、これは、外れ値が存在すると、ほとんどのデータが小数のビン(場合によっては1つのビン)に集中するためです。その結果、アルゴリズムの識別能力が著しく低下します

関連項目:

  • 『Oracle Data Miningユーザーズ・ガイド』データの準備に関する項

  • 『Oracle Data Miningユーザーズ・ガイド』データの変換に関する項