24 Naive Bayes
24.1 Naive Bayesとは
Naive Bayesアルゴリズムは条件付き確率に基づいています。これにはBayesの定理(履歴データの値の組合せと値の頻度を数えて確率を計算する式)が使用されます。
Bayesの定理では、すでに発生している別のイベントの確率を前提として、あるイベントの発生確率を見つけます。B
が従属イベントを、A
が事前イベントを表す場合、Bayesの定理は次のように示すことができます。
ノート:
Prob(B given A) = Prob(A and B)/Prob(A)
A
を前提としたB
の確率は、A
およびB
が一緒に発生するケースの数を、A
が単独で発生するケースの数で除算して計算されます。
例24-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)と呼ばれます。例24-1では、すべてのケースの25%が組です。
事前イベントのみが発生するケースは、単一(singleton)と呼ばれます。例24-1では、すべてのケースの75%が単一です。
次の図は、Bayesの定理で使用される条件の関係を視覚的に表しています。
説明のために、例24-1および図24-1では、1つの独立イベントに基づく従属イベントを示しています。実際には、Naive Bayesアルゴリズムでは通常、多数の独立イベントを考慮する必要があります。例24-1では、年齢の他に、収入、教育レベル、性別、店舗の場所などの要素を考慮する場合があります。
Naive Bayesでは、各予測子は他の予測子とは条件的に独立していると想定されます。所定のターゲット値に関して、各予測子の分布は他の予測子とは独立しています。この非依存性という前提によって、(たとえ前提が満たされていない場合でも)モデルの予測精度が極端に低くなることがなくなり、またこの前提が、高速で計算可能なアルゴリズムと扱いにくいアルゴリズムの違いになっています。
特定の予測子の分布が、明らかに、より大きな母集団を代表していない場合があります。たとえば、トレーニング・データ内に21才未満の顧客が少数しか存在しないが、広範な顧客ベースには、この年齢グループの顧客が実際に多数存在する場合などが考えられます。これを補正するには、モデルのトレーニングの際に、事前確率を指定します。
関連項目
24.2 Naive Bayesモデルのチューニング
組の発生と単一の発生割合の確率計算について紹介します。
Naive Bayesでは、組の発生割合を単一の発生割合で除算することによって確率が計算されます。これらの割合は、特定の予測子に関して非常に小さい場合、モデルの効率性にはほとんど寄与しません。通常、特定のしきい値以下の発生は無視できます。
確率のしきい値を調整するために、次の構築設定を使用できます。次を指定できます。
-
モデルに予測子を含めるために必要な組の最小発生割合。
-
モデルに予測子を含めるために必要な単一の最小発生割合。
デフォルトのしきい値はほとんどのモデルに対して問題なく機能するため、これらの設定を調整する必要はありません。
関連項目:
使用可能なモデル設定のリストおよび説明は、DBMS_DATA_MINING - アルゴリズムの設定: Naive Bayesを参照してください。ノート:
モデル設定と同じ意味でハイパーパラメータという用語も使用されます。24.3 Naive Bayes用のデータ準備
Naive Bayesのデータ準備について学習します。
Naive Bayesの場合、自動データ準備(ADP)では教師ありビニングが実行されます。教師ありビニングでは、ディシジョン・ツリーを使用して最適なビンの境界が作成されます。質的属性と量的属性のいずれもビニングされます。
Naive Bayesでは、欠損値をそのまま(ランダムに欠損している値として)処理します。スパースな量的データは0 (ゼロ)に置換され、スパースな質的データはゼロ・ベクトルに置換されます。ネストした列の欠損値はスパースとして解釈されます。単純なデータ型の列の欠損値は、ランダムに欠損した値として解釈されます。
独自のデータ準備を行う場合、Naive Bayesでは通常ビニングが必要となります。Naive Bayesは、確率を計算するうえで集計手法に依存しています。カーディナリティを必要に応じて削減するために、列がビニングされます。量的データは値の範囲(低、中、高など)にビニングでき、質的データはメタクラス(都市のかわりに地域など)にビニングできます。等幅ビニングはお薦めできませんが、これは、外れ値が存在すると、ほとんどのデータが小数のビン(場合によっては1つのビン)に集中するためです。その結果、アルゴリズムの識別能力が著しく低下します
関連項目