この章では、監視ありモデルについて説明します。監視ありモデルは「予測モデル」と呼ばれることもあります。このモデルは、ターゲット値を予測します。Oracle Data MiningのJavaインタフェースおよびPL/SQLインタフェースは、次の監視あり機能をサポートしています。
この章は、次の内容についても説明しています。
ある集まりの分類とは、その集まりを構成している各項目をカテゴリまたはクラスに分類することです。データ・マイニングのコンテキストでは、履歴データに基づいて作成されるモデルを使用して分類を行います。予測分類の目的は、新しいデータ(履歴データに含まれないデータ)の各レコードのターゲット・クラスを正確に予測することです。
分類作業は、ターゲット値(またはクラスの割当て)が判明している作成データ(「トレーニング・データ」とも呼ぶ)から着手します。作成データの予測属性の値とターゲット属性の値との関係を見つけるための手法は、分類アルゴリズムによって異なります。これらの関係はモデルの中に集約されます。ターゲット値が未知である新しいケースにこのモデルを適用して、ターゲット値を予測できます。また、分類モデルは、予測と既知のターゲット値を比較するためにトレーニング・データとは別に保持していたデータに適用することもできます。このようなデータは、「テスト・データ」または「評価データ」とも呼ばれます。この比較手法は「モデルのテスト」と呼ばれ、モデルによる予測の精度を評価するために使用されます。分類モデルを新しいデータに適用することを「モデルの適用」と呼び、そのデータを「適用データ」または「スコアリング・データ」と呼びます。データにモデルを適用することを、通常「データのスコアリング」と言います。
分類は、顧客のセグメンテーション、ビジネスのモデル化、信用分析などの多くの用途に使用されます。たとえば、あるクレジット・カード会社が、返済不能に陥る可能性のある顧客を予測したいとします。この場合、顧客は、「返済不能」と「返済可能」という2つのクラスに分類されます。各顧客は、1つのケースに対応しています。各ケースのデータは、顧客の消費パターンや収入を記述する属性、人工統計上の属性など、多数の属性から構成される場合がます。これらは予測属性です。ターゲット属性は、顧客が返済不能に陥ったかどうかを示します。作成データは、新規顧客が返済不能に陥る可能性が高いかどうかを予測するモデルの作成に使用されます。
分類問題のターゲットは、2項ターゲットか多クラス・ターゲットのいずれかとなります。2項ターゲットとは、「信用リスクが低い」と「信用リスクが高い」など、値を2つしかとらないターゲットのことです。多クラス・ターゲットは、購入商品(櫛、ヘア・ブラシ、ヘア・ピン)のように、3つ以上の値をとります。多クラス・ターゲットの値は、互いに順序付けられた関係にあるとは見なされません。たとえば、ヘア・ブラシが櫛よりも大きい/小さいと見なされることはありません。
分類問題では、コストや優先を指定する必要がある場合があります。
ODMでは、次の分類用アルゴリズムが提供されています。
表3-1では、各分類アルゴリズムの重要な特徴を比較しています。
表3-1 分類アルゴリズムの比較
| 特徴 | Naive Bayes | Adaptive Bayes Network | サポート・ベクター・マシン | ディシジョン・ツリー |
|---|---|---|---|---|
|
速度 |
非常に高速 |
高速 |
高速(能動学習付き) |
高速 |
|
精度 |
多分野で良好 |
多分野で良好 |
高精度 |
多分野で良好 |
|
透明性 |
ルールなし(ブラック・ボックス) |
ルールあり(単一特徴構築用のみ) |
ルールなし(ブラック・ボックス) |
ルールあり |
|
欠損値の解釈 |
欠損値 |
欠損値 |
スパース・データ |
欠損値 |
ディシジョン・ツリーのルールではモデルの透明性が提供されます。ビジネス・ユーザー、マーケティング・アナリストまたはビジネス・アナリストは、モデルの予測の根拠を理解できるため、納得のうえで予測に基づいて行動したり予測を他人に説明したりすることができます。
透明性に加え、ディシジョン・ツリー・アルゴリズムは速さとスケーラビリティを備えています。作成アルゴリズムは、予測属性の数と、行数nを持つnlog(n)の順序に基づいて線形にスケーリングします。スコアリングは非常に高速です。作成と適用の両方が並列処理されます。ディシジョン・ツリー・アルゴリズムは、2項ターゲットおよび多クラス・ターゲット用のモデルを作成します。ユーザーによる操作をあまり必要とせずに、正確かつ解釈可能なモデルを作成できます。ディシジョン・ツリー・アルゴリズムを実装すると、一般的なデータ表形式のデータの処理、条件の分岐や終了のための適切なデフォルト値の取得、自動プルーニングの実行、および欠損値の自動処理を行うことができます。ただし、スパース・データと欠損値は区別されません。詳細は、「スパース・データ」を参照してください。ユーザーは、コストや優先を指定できます。
ディシジョン・ツリーでは、ネストした表はサポートされません。
ディシジョン・ツリー・モデルはXMLに変換可能です。
ディシジョン・ツリー・モデルは常にルールを生成します。ディシジョン・ツリーのルールは、「収入が7万ドルより多く世帯数が4人以上の場合、解約の確率は0.075である」などのように、「IF 予測情報 THEN ターゲット」という形式をとります。
ユーザーは、ディシジョン・ツリー・モデルを表すXMLを生成できます。生成されるXMLは、Data Mining GroupのPredictive Model Markup Language(PMML)バージョン2.1の仕様に示されている定義に準拠します。この仕様は、http://www.dmg.orgで入手できます。
Naive Bayesアルゴリズム(NB)は、2項と多クラスのどちらの分類問題にも使用できます。
NBによるモデルの作成およびスコアリングは非常に高速です。NBは、予測子と行の数で線形にスケーリングします。
NBは、基底の根拠から予測の確率を導き出すベイズの定理を使用して予測を行います。ベイズの定理では、事象Bが発生している場合に事象Aが発生する確率(P(A|B))は、事象Aが発生している場合に事象Bが発生する確率に事象Aの発生確率を乗算したもの((P(B|A)P(A))に比例するとされています。
Naive Bayesでは、各属性は条件的に他の属性に従属しないものと見なされます。つまり、あるターゲット値を考える際、各予測子の分布は他の予測子に依存しないということです。この非依存性という前提によって、(たとえ前提が満たされていない場合でも)モデルの予測精度が極端に低くなることはありません。またこの前提が、高速で計算可能なアルゴリズムと扱いにくいアルゴリズムの違いになっています。
Adaptive Bayes Network(ABN)はOracle独自のアルゴリズムで、データからターゲット属性についての予測情報を抽出するための高速、スケーラブル、ノンパラメトリックな手段を提供します。ノンパラメトリックな統計手法では、母集団は、少数のパラメータのセットによって一群の個々のメンバーが区別されるような標準線形回帰などの単純な分布モデルの一群で特徴付けられているとは見なされません。
単一特徴構築モードのABNでは、人間が理解可能なルールの形式でモデルを記述できます。ABNが生成するルールは、ABNがNaive Bayesに対して持つ主な優位点の1つです。ABNのルールではモデルの透明性が提供されます。ビジネス・ユーザー、マーケティング担当者またはビジネス・アナリストは、モデルの予測の根拠を理解できるので、納得のうえで予測に基づいて行動したり予測を他人に説明したりすることができます。
ABNは、ルールの他にも優れたパフォーマンスやスケーラビリティをもたらします。これらは、精度と構築時間のトレードオフを制御する様々なユーザー・パラメータによって実現されます。
ABNでは、多クラス・ターゲットだけでなく2項ターゲットも予測できます。
ABNでは、構築とスコアリングの両方でコストおよび優先を使用できます(「コスト」と「優先」を参照)。
ABNモデルは、最小記述長原理を使用して条件付き独立ネットワーク特性の配列を構成およびプルーニングする適応条件付き独立モデルです。各ネットワーク特性は、1つ以上の条件付き確率式で構成されます。ネットワーク特性の集まりは、ターゲット・クラスの確率の概算を提供する積モデルを形成します。ネットワーク特性は1つの場合も複数の場合もあります。モデルにおけるネットワーク特性の数および深度によって、モデル・モードが決まります。ABNには、次の3つのモデル・モードがあります。
ユーザーは、ABNモデルのタイプを選択できます。ルールは、単一特徴構築にのみ使用可能です。
各ネットワーク特性は、条件付き確率式に含まれる1つ以上の属性で構成されます。シングル属性ネットワーク特性の配列は、MDLプルーニングNaive Bayesモデルです。1つのマルチ属性ネットワーク特性モデルは、簡略C4.5ディシジョン・ツリーに相当します。このモデルは、量的属性がビニングされて質的属性として扱われるという形で簡略化されます。さらに、指定されたツリー深度ですべてのノードを分割するために、単一の予測子が使用されます。この分割はk法で行われます。kは、分割予測子の一意の(ビニングされた)値の数です。そして、マルチ属性ネットワーク特性の集まりが、積モデル(「ブースト・モード」)を形成します。3つのタイプすべてで、ターゲット・クラスの確率の概算が提供されます。
ルールは、Adaptive Bayes Networkモデルからコンパウンド述語として抽出できます。ルールは、人間が解釈可能な形でモデルを記述し、ルールを裏付ける関連トレーニング・データ例の数を示す統計情報を含みます。レコード適用例は、ネットワーク特性における経路を指定し、コンパウンド述語の形をとります。
|
注意: ルールが生成されるのは、単一特徴構築モデル・タイプに対してのみです。 |
たとえば、Age {20-40, 40-60, 60-80}とIncome {<=50K, >50K}という2つのトレーニング属性で構成される特性があるとします。この場合、年齢(Age)が25、収入(Income)が$42Kである人物のレコード例は、次のように表現されます。
IF AGE IN (20-40) and INCOME IN (<=50K)
関連付けられたターゲット(キャンペーンへの反応など)の確率が{0.8 (no), 0.2 (yes)}であるとします。この場合、詳細なルールは次のようになります。
IF AGE IN (20-40) and INCOME IN (<=50K) THEN Probability = {0.8, 0.2}
確率分布の他に、トレーニング・データ数({400, 100}など)も関連付けられています。
誤って「no」と予測することは、誤って「yes」と予測することよりも6倍のコストがかかるとするコスト・マトリックスがあるとします。すると、この場合に「yes」と予測するコストは0.8 * 1 = 0.8(この予測では、モデルは80%の確率で誤判別するため)、「no」と予測するコストは0.2 * 6 = 1.2になります。したがって、最小コストの(最良の)予測は「yes」になります。コスト・マトリックスがない場合、その判断は逆になります。すべての誤判別が暗黙的に同等ということになるので、「yes」のコストは0.8 * 1 = 0.8、「no」のコストは0.2 * 1 = 0.2になります。
生成されたルールの述語の順序は、相対的な重要度を示します。
単一特徴構築でルールが生成されたABNモデルを適用すると、そのルールを適用する外部プログラムを使用したときと同じ結果が得られます。
サポート・ベクター・マシン(SVM)は、最新の分類および回帰アルゴリズムです。SVMは、強力な正則化特性を持つアルゴリズムです。つまり、トレーニング・データのオーバーフィットを自動的に回避しつつ、最適化手順によって予測精度を最大化します。ニューラル・ネットワークと動径基底関数はどちらも一般的なデータ・マイニング手法で、SVMモデルと同様の関数形式をとります。ただし、どちらのアルゴリズムも、SVMの基盤を形成する正則化に対して根拠のある理論的アプローチを持ちません。
SVMでは、入力データはカーネル空間に与えられます。次に、このカーネル空間内に線形モデルが作成されます。分類SVMモデルでは、可能性のある最大マージンでのターゲット・クラスの分類が試行されます。回帰SVMモデルでは、データ・ポイントの最大数がイプシロン幅のチューブ内におさまるような連続関数の検出が試行されます。カーネルのタイプおよび選択するカーネル・パラメータの種類に応じて、様々な決定境界(分類)または関数近似式(回帰)が生成されます。ODMによるSVMの実装では、線形カーネルとガウス・カーネルという2種類のカーネルがサポートされます。また、ODMには、データの特徴に基づいた自動パラメータ評価機能も備わっています。
SVMは、バイオインフォマティクスや配列分析の分野だけでなく、テキスト分類や手書き文字の認識、画像の分類など、より日常的な分野への応用にも適しています。1990年代初めにSVMが提唱されて以来、応用分野は爆発的に拡大し、高度な理論解析が可能になりました。これによりSVMは、ニューラル・ネットワークとともに、機械学習およびデータ・マイニングの標準的なツールとしての地位を確立しました。
SVMでは、属性の数およびターゲットのカーディナリティに上限はありません。ハードウェアによる制約があるのみです。
SVMは、スパース・データに適したアルゴリズムです。
次に、ODM 10gリリース2のSVMアルゴリズムに関する新たな特徴を示します。
1クラスSVMを使用した新規パターンまたは異常パターンの識別が可能となりました。詳細は、「異常検出」を参照してください。
能動学習がサポートされます。詳細は、「能動学習」を参照してください。
大規模なトレーニング・セット用の層別サンプルが自動的に作成され(「分類用サンプリング」を参照)、モデル作成用のカーネル・タイプが自動的に選択されます(「カーネルの自動選択」を参照)。
トレーニング・データセットのサイズが大きくなると、SVMモデルのサイズも大きくなります。この特性により、SVMモデルのトレーニング・セットは小規模から中規模なサイズ(100,000ケース未満)に制限されます。能動学習では、大規模なトレーニング・セットを扱うことができます。
能動学習の終了条件は、通常、サポート・ベクター数の上限です。上限に達すると作成が終了します。また、残りのサンプルでモデル精度に著しい向上が見られない場合などでは、質的な終了条件となります。
能動学習により、SVMアルゴリズムは最も有益なトレーニング・サンプルを学習し、データ全体を使用しないように制限されます。多くの場合、生成されるモデルの予測精度は、標準的な(精密な)SVMモデルの予測精度と同程度になります。
能動学習は、すべてのSVMモデル(分類、回帰および1クラス)に適用可能です。
能動学習は、デフォルトで有効になっています。無効にすることもできます。
分類の場合、SVMはモデル作成時に自動的に層別サンプリングを実行します。アルゴリズムでは作成データセット全体がスキャンされ、ターゲット値全体に均衡しているサンプルが抽出されます。
SVMは、作成データの特徴に基づいて適切なカーネル・タイプを自動的に決定します。この選択は、任意のカーネル・タイプを明示的に指定することによりオーバーライドできます。
サポート・ベクター・マシン・モデルの質(精度)とパフォーマンス(作成時間)はどちらも、データ準備とモデル設定という2つの基本メカニズムで制御できます。設定の選択を誤ったり、データ準備が不適切だったりすると、パフォーマンスが大幅に低下する場合があります。設定の選択を誤ると、不正確なモデルが作成される場合もあります。
SVMモデルのデータ準備の詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
SVMには、提供されたデータに基づいて自動的に適切な設定を選択するメカニズムが組み込まれています。分野によっては、システムで決定された設定をオーバーライドする必要がある場合もあります。
この項では、分類アルゴリズムで必要となる場合があるデータ準備について概説します。
外れ値が各分類アルゴリズムに与える影響は次のとおりです。
Naive BayesおよびAdaptive Bayes Network: 外部等幅ビニングを使用する際に外れ値が存在すると、ほとんどのデータが少数のビン(極端な場合には単一のビン)に集中します。その結果、これらのアルゴリズムの識別能力が著しく低下する可能性があります。この場合、こうした問題を解決するには分位ビニングが有効です。
サポート・ベクター・マシン: 外れ値の存在は、モデルに大きな影響を与える可能性があります。クリッピング変換を使用すると、外れ値に起因する問題を回避できます。
ディシジョン・ツリー: ディシジョン・ツリー・モデルは外れ値の影響を受けません。
NULL値の意味とその処理方法は、アルゴリズムの種類によって次のように異なります。
サポート・ベクター・マシン: NULL値はスパース・データを表します。欠損値は自動的には処理されません。データがスパースではなく、実際に値がランダムに欠損している場合は、欠損データの補完を実行して(つまり、なんらかの形で欠損値を処理して)、NULL値を非NULL値に置き換える必要があります。単純なアプローチとしては、量的属性については平均を使用し、質的属性については最頻値を使用するという方法があります。欠損値を処理しない場合、アルゴリズムはデータを正しく扱うことができません。
その他のすべての分類アルゴリズムでは、NULL値は欠損値を表します。
ディシジョン・ツリー、Naive BayesおよびAdaptive Bayes Network: 欠損値は自動的に処理されます。
分類問題では、判断ミスに伴うコストを指定することが重要な場合があります。コストを指定することは、分類ミスの種類によってコストが大幅に異なる場合に有効です。
例として、顧客がダイレクト・メールに反応するかどうかを予測する問題を考えます。ターゲットには、YES(顧客が反応する)とNO(顧客が反応しない)の2つのカテゴリがあります。ダイレクト・メールに肯定的な反応があった場合は$500の収益があり、ダイレクト・メールの送付には$5のコストがかかるとします。モデルがYESと予測し、実測値もYESだった場合、分類ミスによるコストは$0です。モデルがYESと予測し、実測値がNOだった場合、分類ミスによるコストは$5です。モデルがNOと予測し、実測値がYESだった場合、分類ミスによるコストは$500です。モデルがNOと予測し、実測値もNOだった場合、コストは$0です。ここでは、モデルがNOと予測したが、実測値がYESとなる状況を回避したいはずです。
コストを特定する厳密な方法は、次に示すように、使用する分類アルゴリズムによって異なります。
分類ミスによるコストは、コスト・マトリックスに集約されます。行列の行は実測値を、列は予測値を表します。行列内の1つのセルは、その列で示されるクラスをモデルが予測したが、そのクラスは実際は行で示されるクラスだった場合に発生する分類ミスによるコストを表しています。
SVMモデルの重みは、ターゲット値全体に渡って最良の平均予測を得るために自動的に初期化されます。重み値を変更すると、正確な予測の割合も同様に変化します。重み値を大きくすると、関連クラスの正確な予測の割合が増加する、などの変化です。
分類アルゴリズムは、スコアリングの際にコスト情報を予測確率に適用し、最も安価な予測を見積もります。スコアリングでコスト・マトリックスを指定した場合、スコアリングの結果出力は、予測の最小コストになります。コスト・マトリックスを指定しない場合、出力は最も可能性の高い予測となります。
コストの割当ては慎重に行う必要があります。不適切なポジティブ(誤って他人の不正行為を訴える)と不適切なネガティブ(犯罪を処罰しない)との間のトレードオフを決めるとします。コストには、このトレードオフを反映させる必要があります。何百万もの不正行為を不当に訴えないように、一部の犯罪を罰しないようにするとします。この場合、たとえば、相手を訴える前に自分が正しいことを確信(50%の確信ではなく、99%の確信)していなければなりません。確率に基づいて予測を行うのは、誤判別の種類には関心がない場合です。誤判別の種類が懸念される場合は、コスト・マトリックスまたは慎重に調整した重み付けを指定することをお薦めします。
分類モデルを作成する際に、母集団の実態がトレーニング・データに正しく反映されていない場合、実際の母集団での分布の描写が有効な場合があります。実際の母集団は、作成操作に対して事前分布(「優先」とも呼ぶ)を指定することにより描写されます。
2項ターゲットに関する問題では、1つのターゲット値が頻繁に使用される場合が多くあります。たとえば、多くの場合、電話によるマーケティング・キャンペーンに対する好意的(ポジティブ)な反応は2%以下で、クレジット・カード決済での不正行為の発生率は1%未満となります。このタイプの履歴データを基に作成された分類モデルの場合、2つのクラスの特性を区別できるだけの十分な数のポジティブ・ケースを見つけられないことがあります。その結果、新しいデータに適用すると、すべてのケースに対しネガティブ・クラスを予測するというモデルになる可能性があります。このようなモデルは非常に正確である一方、ほとんど役に立たない可能性があります。このことから、モデルを判断する際に正確さのみに頼るのは好ましくないことがわかります。この問題に対する1つの解決策として、各ターゲット値とほぼ同数の値を含む、作成操作用のソース表を作成する方法があります。ただし、アルゴリズムは観測される分布を実際的なものととらえ、他に指示されない限りは、同数の各ターゲット値を予測するモデルを作成します。作成プロセスでターゲット値の実際の分布(優先)を指定すると、より有効なモデルを作成できます。ただし、ターゲット値の実際の分布を持つデータに対してこのモデルをテストする必要があります。たとえば、マーケティング・キャンペーンに対して98%がネガティブ(非好意的)で2%がポジティブ(好意的)である場合などです。
回帰モデルは分類モデルと類似しています。回帰と分類の違いは、回帰は量的または連続的なターゲット属性を扱い、分類は質的または離散的なターゲット属性を扱うことです。言い換えると、ターゲット属性に連続的な値(浮動小数点値)または特有の順序がある整数値が含まれる場合は、回帰の手法を使用できます。ターゲット属性に質的な値(文字列または順序に意味のない整数値)が含まれる場合は、分類の手法が必要になります。連続的ターゲットは、ビニングによって離散的ターゲットに変換できます。これにより、分類アルゴリズムを使用して回帰問題を解決できるようになります。
サポート・ベクター・マシン(SVM)は、分類モデルおよび回帰モデルの両方を作成します。SVMの詳細は、「サポート・ベクター・マシン・アルゴリズム」を参照してください。
ODMのSVMでは、イプシロンのデータ駆動評価が改良され、SVM回帰モデルに複雑度係数が提供されます。
回帰モデルには、能動学習(「能動学習」を参照)を使用できます。
1クラスSVM(「異常検出」を参照)は回帰問題に使用できません。
属性評価(AI)を使用すると、多数の属性を持つデータ表に基づく分類モデルの作成速度を自動的に向上させることができます。また属性評価によって、モデルの精度が向上する場合もあります。
ODM分類モデルの作成にかかる時間は、属性の数が多いほど長くなります。属性評価では、ターゲットを予測するうえで最も重要な属性のサブセットを識別できます。選択した属性のみを使用してモデルを作成できます。
使用する属性の数が少ない場合でも、必ずしも予測精度が低下するわけではありません。属性の数が多すぎると(特にそれらが「ノイズ」である場合)、モデルに悪影響を及ぼし、パフォーマンスと精度の両方が低下する場合があります。最少数の属性を使用してマイニングを行うと、計算時間を大幅に短縮でき、質の高いモデルを作成できる場合もあります。
属性評価用のプログラミング・インタフェースでは、ユーザーは、使用する属性の数または割合を指定できます。あるいは、カットオフ・ポイントを指定することもできます。
外部等幅ビニングを使用する際に外れ値が存在すると、ほとんどのデータが少数のビン(極端な場合には単一のビン)に集中します。その結果、属性評価モデルの識別能力が著しく低下する可能性があります。この場合、こうした問題を解決するには分位ビニングが有効です。
NULL値は、スパース・データのインジケータとしてではなく、欠損値として処理されます。
ODMでは、属性評価に最小記述長アルゴリズムが使用されます。
最小記述長(MDL)は、情報理論モデルの選択原理の1つです。MDLでは、最も単純でコンパクトな表現が、データの説明として最適かつ最も適度が高いと見なされます。このMDL原理が、ODM属性評価モデルの作成に使用されます。
MDLでは、各属性をターゲット・クラスの単純な予測モデルとして考えます。単一予測子のこれらのモデルは、MDLメトリック(ビット単位での圧縮)に関して互いに比較され、ランク付けされます。MDLでは、オーバーフィットを回避するため、モデルの複雑性にペナルティが課されます。これは、比較を公平に行うために(モデルとしての)予測子の複雑性を考慮した、合理的なアプローチです。
MDLでは、モデル選択の問題は、通信の問題として扱われます。MDLでは、送信者、受信者および送信するデータを考えます。分類モデルでは、送信するデータがモデルで、これはトレーニング・データにおけるターゲット・クラス値のシーケンスです。
属性評価では、2つの部分から成るコードを使用してデータを送信します。前半部分(プリアンブル)ではモデルを送信します。モデルのパラメータは、予測の各値に関連するターゲットの確率です。ターゲットの値がj個、予測子の値がk個、各値に対してni(i= 1、...、k)個の行がある場合、Ci個(ni-1個からj-1個を一度に選び出す組合せの数)の条件付き確率が考えられます。プリアンブルのビット・サイズは、Sum(log2(Ci))と示すことができます。ここで、Sumはkに対する合計です。こうして計算した値が、それぞれの単一予測モデルに関連付けられるペナルティを表します。コードの後半部分では、モデルを使用してターゲット値を送信します。
シーケンスの最もコンパクトな符号化とは、記号(ターゲット・クラス値)の確率に最も適合する符号化であることがよく知られています。したがって、シーケンスに最も高い確率を割り当てるモデルには、最小のターゲット・クラス値の送信コストが含まれます。これは、ビットではSum(log2(pi))となります。ここで、piは、モデルに関連する行iの予測確率です。
予測子のランクは、関連付けられた記述長のリストにおける位置で表されます(最短が先頭)。
異常検出では、新規パターンまたは特異パターンを識別します。こうしたパターンの識別は、(保険金、税金、クレジット・カードなどの)不正行為の検出や、コンピュータ・ネットワーク侵入検出の問題に役立つ場合があります。異常検出モデルでは、あるデータ・ポイントが特定の分布に対して典型的かどうかを予測します。非典型的なデータ・ポイントは、外れ値か、これまでに観測されていないクラスのサンプルである可能性があります。
異常検出モデルは、ポジティブ・クラスの既知のサンプルとネガティブな未知の反例のセットとを区別します。異常検出モデルにより、分布内に収まらない項目を識別できます。
異常検出は、Oracle Data Minerインタフェースのマイニング機能の1つです。ODMのJavaインタフェースおよびPL/SQLインタフェースでは、異常検出モデルは分類モデルの一種です。詳細は、「1クラスSVMアルゴリズムの指定」を参照してください。
Naive Bayesなどの標準的な監視あり2項分類アルゴリズムでは、ターゲット・クラスのポジティブ・サンプルとネガティブ・サンプル(反例)の両方が必要となります。1クラスSVM分類で必要なのは、1つのターゲット・クラスのサンプルのみです。モデルは、ポジティブ・クラスの既知のサンプルとネガティブな未知の反例のセットの区別を学習します。つまり、1クラスSVMによって異常が検出されます。1クラスSVMは、当初は分布の支持度を概算するために使用されていました。目的は、サンプルがあるセットに属している場合はポジティブに、サンプルがそのセットの補集合に属している場合はネガティブになる関数を概算することです。モデルでは、大部分のポジティブ・データが存在する入力領域の範囲を識別する2項関数が計算されます。
外れ値の検出
反例を示すのが困難な場合
外れ値の検出では、分布内の典型的なサンプルと非典型的なサンプル(外れ値)を区別します。分離面からの距離は、トレーニング・データの分布に対して特定のポイントがどの程度典型的であるかを表します。外れ値は、その外れ値が典型的である確率、または非典型的である確率に基づいてランク付けできます。同様に、その他の種類の異常も1クラスSVMを使用して検出できます。
問題のクラスの中には、有用で代表的な反例のセットを提供するのが困難または不可能なものもあります。サンプルは簡単に識別できる場合がありますが、反例は特定するのが難しかったり収集するのにコストがかかります。たとえば、テキスト・ドキュメントの分類の場合、特定のトピックに基づいてドキュメントを分類することは簡単です。ところが、このトピックに属さないドキュメントの領域が非常に広範で、反例を示すことができない場合があります。
1クラスSVMモデルの精度は、有意の反例を使用して作成した標準的なSVM分類プログラムの精度とは通常一致しません。
ODMの監視あり分類アルゴリズムのうち、1クラス・モードで操作できるのはSVMのみです。
1クラスSVMは回帰問題には使用できません。
監視ありモデルをテストして、その予測精度を評価します。モデルをテストするには、そのモデルをターゲットの既知の値を持つデータに適用し、モデルの予測値と既知の値を比較します。テスト・データは、モデルの作成に使用されたデータとの互換性が必要です。また、作成データと同じ方法で準備する必要があります。
モデルのテストにより、テスト・メトリックを計算することになります。計算される正確なテスト・メトリックは、モデルのタイプによって異なります。分類モデルをテストすると混同マトリックスが生成され、回帰モデルをテストすると誤差評価が行われることになります。オプションで、分類モデルに対しリフトおよび受信者操作特性(ROC)を計算できます。
この項の後半では、次のテスト・メトリックについて説明します。
ODMでは、分類モデルの精度を評価するために、混同マトリックスの計算をサポートしています。混同マトリックスの最も簡単な例として、2項分類問題があります。2項問題の場合、混同マトリックスは2次元の正方行列です(一般に、混同マトリックスはn次元の正方行列で、nは個別ターゲット値の数です)。混同マトリックスの行インデックスは、モデルのテストで使用および観測された「実測値」に対応し、列インデックスは、テスト・データへのモデルの適用によって生成された「予測値」に対応します。実測/予測インデックスの任意の組合せの値が、その組合せで分類されるレコードの数を表します。図3-1に、混同マトリックスの例を示します。たとえば、実測値インデックスの「購入者」と予測値インデックスの「非購入者」の値25は、そのモデルが「購入者」を「非購入者」として25回不正確に分類したことを示しています。実測値/予測値インデックスの「購入者」の値516は、モデルが「購入者」を516回正確に分類したことを示しています。
予測が正確だったのは、516 + 725 = 1241回で、不正確だったのは、25 + 10 = 35回です。行列内の値の合計は、入力データ表のスコアリングされたレコードの数と一致します。スコアリングされたレコードの数は正確な予測と不正確な予測の合計で、1241 + 35 = 1276となります。誤差率は35/1276 = 0.0274、正答率は1241/1276 = 0.9725となります。
混同マトリックスを使用すると、モデルの精度、およびレコードのスコアリング時のモデルによる誤差のタイプを即座に理解できます。この行列は、分類モデルのテスト・タスクの結果です。
ODMでは、分類モデルでリフト計算がサポートされています。リフトは、2項(2つの値)のターゲット・フィールドに対して計算できます。リフトは多クラス・ターゲットに対しても計算できます。この場合、優先するポジティブ・クラスを指定し、その他のすべてのターゲット・クラスの値を組み合せ、多クラス・ターゲットを効率的に2項ターゲットに変換します。ポジティブ・ターゲット値(つまり、「購入者」や「病人」など、予測で最も必要な値)を指定すると、テスト・ケースは、これらがポジティブ・ケースになると予測される信頼度に応じてソートされます。最も高い信頼度のポジティブ・ケースから、低い信頼度のポジティブ・ケース、最も低い信頼度のネガティブ・ケース、最も高い信頼度のネガティブ・ケースの順にソートされます。この順序付けに基づいて、これらは分位にパーティション化され、プログラム・インタフェースによって次の統計情報が計算されます。
分位nの確率しきい値は、ポジティブ・ターゲットが、その分位または前の分位(分位n-1、n-2、...、1)に含まれる最小確率です。コスト・マトリックスを使用する場合は、かわりにコストしきい値が示されます。コストしきい値は、ポジティブ・ターゲットが、その分位または前の分位に含まれる最大コストです。
特定の分位の累積増加率は、ポジティブ・ターゲットの総数に対するポジティブ・ターゲットの累計数の割合です。
ある分位のターゲット密度は、その分位内の実際のポジティブ・インスタンスの数を、分位内のインスタンスの総数で割った値です。
分位nの累積ターゲット密度とは、最初のn個の分位に対して計算されるターゲット密度です。
分位リフトは、すべてのテスト・データのターゲット密度に対する分位のターゲット密度の割合です。
特定の分位のレコードの累積比率は、最初のn個(ポジティブである信頼度が最も高い最後の分位から指定の分位までを含むn個)の分位によって表されるすべてのテスト・ケースの割合です。
分位nの累積ターゲット数は、最初のn個の分位(前述で定義)内における実際のポジティブ・インスタンスの数です。
累積非ターゲット数は、最初のn個の分位(前述で定義)における実際のネガティブ・インスタンスの数です。
特定の分位の累積リフトは、すべてのテスト・データのターゲット密度に対する累積ターゲット密度の割合です。
累積ターゲットは、次の式を使用して、LiftResultElement内で使用可能な数量から計算できます。
targets_cumulative = lift_cumulative * percentage_records_cumulative
Oracle Data Minerでは、リフト関して異なる統計情報が計算されます。詳細は、Oracle Data Minerのオンライン・ヘルプを参照してください。
分類モデルを評価するもう1つの有用な方法は、受信者操作特性(ROC)分析です。ROC曲線は、個々のモデル間の比較方法を提供し、高い割合のポジティブ・ヒットをもたらすしきい値を決定するという点で、リフト・グラフと似ています。ROCは元来、ノイズのある周波数帯に信号を送信する際の、真のヒットと不適切な警告の比率を測定するために信号検出理論で使用されていました。
ROCグラフの横軸は、不適切なポジティブ率をパーセントで示します。縦軸は、真のポジティブ率を示します。ROC曲線がより左上隅に近づくほど最適となります。つまり、TP(真のポジティブ)率が高く、FP(不適切なポジティブ)率が低いことを示します。ROC曲線下の面積(AUC)により、2項分類モデルの識別能力が測定されます。AUCが大きいほど、実際のネガティブ・ケースではなく実際のポジティブ・ケースが高い確率でポジティブに割り当てられるという尤度も高くなります。AUC測定は、ターゲット分布が不均衡である(1つのターゲット・クラスが他のクラスに比べて顕著である)データセットに対して特に有効です。
図3-2のグラフ例では、データセット全体についてはモデルAの方が明らかにAUCが大きいことが示されています。ただし、不適切なポジティブ率の許容値を40%とすると、その率における誤差の真のポジティブ率はモデルBの方が優れているので、モデルBの方が適していることになります。
モデルの選択の他にも、ROCは、ヒット(真のポジティブ)率と不適切な警告(不適切なポジティブ)率との間の許容トレードオフを得るためのしきい値の決定に役立ちます。特定のモデルの曲線上の点を選択することによって、一定のトレードオフが得られます。このしきい値は、誤差率に関して目的のパフォーマンスを得るために、後処理のパラメータとして使用できます。ODMモデルではデフォルトで、0.5のしきい値が使用されます。
Oracle Data MiningのROC計算では、次の統計情報が計算されます。
確率しきい値: ポジティブ・クラス予測が生成される最小予測ポジティブ・クラス確率。しきい値が異なると、ヒット率および不適切な警告率も異なります。
真のネガティブ数: 正確に予測された確率しきい値未満の予測確率を持つテスト・データにおけるネガティブ・ケース数。
真のポジティブ数: 正確に予測された確率しきい値以上の予測確率を持つテスト・データにおけるポジティブ・ケース数。
不適切なネガティブ数: 不正確に予測された確率しきい値未満の予測確率を持つテスト・データにおけるポジティブ・ケース数。
不適切なポジティブ数: 不正確に予測された確率しきい値以上の予測確率を持つテスト・データにおけるネガティブ・ケース数。
ヒット率(Oracle Data Minerでは「真のポジティブ数」): (真のポジティブ数/(真のポジティブ数+不適切なネガティブ数))。
不適切な警告率(Oracle Data Minerでは「不適切なポジティブ数」): (不適切なポジティブ数/(不適切なポジティブ数+真のネガティブ数))。