この章では、質的ターゲットを予測するための監視ありマイニング機能である分類について説明します。
この章には、次の項が含まれます。
分類とは、ある集合内の項目をターゲットのカテゴリまたはクラスに割り当てるデータ・マイニング機能です。分類の目的は、データの各ケースのターゲット・クラスを正確に予測することです。たとえば、分類モデルを使用すれば、融資希望者を信用リスク別(低、中、高)で識別することが可能です。
分類タスクは、クラスの割当てが判明しているデータセットから着手します。たとえば、信用リスクを予測する分類モデルは、一定の期間に観測された多数の融資希望者のデータに基づいて作成されます。これらのデータには、支払能力の履歴だけでなく、雇用履歴、持ち家または賃貸、居住年数、投資の数と種類などが含まれていることが考えられます。支払能力をターゲット、他の属性を予測子として、各顧客のデータが1つのケースを構成します。
分類は離散的であり、順序を示すものではありません。連続的な浮動小数点値の場合、ターゲットは質的ではなく量的になります。量的ターゲットを扱う予測モデルでは、分類アルゴリズムではなく、回帰アルゴリズムを使用します。
最も単純なタイプの分類問題は、2項分類です。2項分類では、ターゲット属性が取り得る値は2つのみ(たとえば「支払能力が高い」と「支払能力が低い」)です。多クラス・ターゲットは、3つ以上の値(たとえば支払能力の場合、低、中、高、不明など)を持ちます。
分類アルゴリズムは、モデルの作成(トレーニング)プロセスにおいて、予測子の値とターゲットの値の関係を見つけます。関係の検出に使用される手法は、分類アルゴリズムによって異なります。これらの関係はモデル内に集約され、このモデルはクラスの割当てが未知である別のデータセットに適用できます。
分類モデルは、テスト・データセット内の既知のターゲット値と予測値を比較することによってテストされます。通常、分類プロジェクト用の履歴データを2つのデータセットに分割し、一方をモデルの作成用、もう一方をモデルのテスト用として使用します。「分類モデルのテスト」を参照してください。
分類モデルをスコアリングすると、各ケースについてのクラスの割当ておよび確率が生成されます。たとえば、顧客を低、中、高の値に分類するモデルの場合、各顧客についてそれぞれの値に分類される確率も予測されます。
分類は、顧客のセグメンテーション、ビジネスのモデル化、マーケティング、信用分析、生物医学および薬物反応モデリングなど、様々な分野で利用されます。
分類モデルをテストするには、既知のターゲット値を持つテスト・データにそのモデルを適用し、予測値と既知の値を比較します。
モデルを適用するテスト・データは、モデルの構築で使用したデータと互換性があることが必要で、モデル構築データが準備されたのと同じ方法で準備される必要があります。通常、作成データとテスト・データは、同じ履歴データ・セットからのものである必要があります。モデルの作成に数パーセントのレコードが使用され、残りのレコードはモデルのテストに使用されます。
これらの既知の値をモデルがどれくらい正確に予測するかを評価するために、テスト・メトリックが使用されます。モデルの予測精度が高くビジネス要件を満たす場合は、新しいデータにそのモデルを適用して将来の予測に役立てることができます。
混同マトリックスは、モデルによる予測をテスト・データでの実際の分類と比較した場合の、正確な予測と不正確な予測の数を表したものです。このマトリックスはn×nの行列(nはクラスの数)です。
図5-1は、2項分類モデルの混同マトリックスです。各行は、テスト・データでの実際の分類の数を表しています。各列は、モデルにより予測された分類の数を表しています。
この例では、affinity_card
のポジティブ・クラスをモデルが正確に予測したのが516回、不正確に予測したのが25回ということになります。affinity_card
のネガティブ・クラスの予測については、正確だったのが725回、不正確だったのが10回です。この混同マトリックスから次のことが計算できます。
このモデルは1241回(516+725)正確な予測を行いました。
このモデルは35回(25+10)不正確な予測を行いました。
スコアリングされたケースの合計は1276 (516+25+10+725)です。
誤差率は0.0274 (35/1276)です。
総合精度は0.9725 (1241/1276)です。
リフトは、分類モデルの予測が、ランダムに生成された予測よりもどの程度優れているかを表します。リフトは2項分類にのみ適用され、ポジティブ・クラスの指定が必要です。(「ポジティブ・クラスとネガティブ・クラス」を参照。)モデル自体に2項ターゲットが存在しない場合、1つのクラスをポジティブに指定し、その他のすべてのクラスを1つのネガティブ・クラスとして組み合せることによって、リフトを計算できます。
リフトの概念をサポートするためには、非常に多数の統計情報が計算される可能性があります。基本的には、リフトは、2つのパーセンテージ(モデルによって作成された正確なポジティブ分類のパーセンテージと、テスト・データ内の実際のポジティブ分類のパーセンテージ)の割合と理解できます。たとえば、過去にプロモーション・キャンペーンのマーケティング・アンケートで、顧客の40%が好意的に反応し(ポジティブ分類)、モデルによって正確に75%と予測される場合、リフトは、.75を.40で割って取得できます。結果として、リフトは1.875となります。
リフトは、それぞれが同数のケースを含んでいる複数の分位に対して計算されます。対象のデータは、スコアリングされた後で分位に分割されます。ポジティブ・クラスの確率が最も高いものから最も低いものの順にランク付けされ、ポジティブ予測の集中度が高い方が上位の分位になります。標準的な分位数は10です。
リフトは通常、マーケティング用途の反応モデルの性能を測定するために使用されます。反応モデルの目的は、マーケティング・キャンペーンに対する肯定的な反応者が潜在的に多数集まっている母集団のセグメントを特定することです。リフトを使用することにより、最高率の潜在的反応者を得るためには母集団のどの部分にマーケティング活動を行うべきかが明らかになります。
Oracle Data Miningでは、次のリフト統計量が計算されます。
分位nの確率のしきい値は、ポジティブ・ターゲットが、その分位または前の分位(分位n-1, n-2,..., 1)に含まれる最小確率です。コスト・マトリックスを使用する場合は、かわりにコストしきい値が示されます。コストしきい値は、ポジティブ・ターゲットが、その分位または前の分位に含まれる最大コストです。(「コスト」を参照。)
累積増加率: ポジティブ・ターゲットの総数に対するポジティブ・ターゲットの累計数の割合。
ある分位のターゲット密度: その分位内の実際のポジティブ・インスタンスの数を、分位内のインスタンスの総数で割った値。
分位nの累積ターゲット密度: 最初のn個の分位に対して計算されるターゲット密度。
分位リフト: すべてのテスト・データのターゲット密度に対する分位のターゲット密度の割合。
レコードの累積比率: ある分位について、最初のn個(ポジティブである信頼度が最も高い最後の分位から指定の分位までを含むn個)の分位によって表されるすべてのケースの割合。
分位nの累積ターゲット数: 最初のn個の分位内における実際のポジティブ・インスタンスの数。
累積非ターゲット数: 最初のn個の分位における実際のネガティブ・インスタンスの数。
ある分位の累積リフト: すべてのテスト・データのターゲット密度に対する累積ターゲット密度の割合。
ROCは、予測ターゲット値と実際のターゲット値を分類モデルで比較する別のメトリックです。ROCは、リフトと同様に、2項分類にのみ適用され、ポジティブ・クラスの指定が必要です。(「ポジティブ・クラスとネガティブ・クラス」を参照。)
ROCを使用すると、モデルの意思決定能力を的確にとらえることが可能です。つまり、モデルがどの程度正確にネガティブ・クラスまたはポジティブ・クラスを予測できるかを知ることができます。
ROCは、確率しきい値における変化の影響を測定します。確率しきい値は、モデルが分類に使用する決定ポイントです。デフォルトの2項分類の確率しきい値は、.5です。予測の確率が50%以上の場合、モデルはそのクラスを予測します。予測の確率が50%未満の場合、他のクラスを予測します。(多クラス分類の場合、最も高い確率のクラスが予測されます。)
ROCは、X-Y軸上の曲線として描くことができます。X軸を偽陽性率にします。Y軸を真陽性率にします。
ROCグラフでは左上隅が最適位置です。つまり、真のポジティブ率が高く不適切なポジティブ率が低いことを表します。
ROC曲線下面積(AUC)により、2項分類モデルの識別能力が測定されます。AUCが大きいほど、実際のネガティブ・ケースではなく実際のポジティブ・ケースが高い確率でポジティブに割り当てられるという尤度も高くなります。AUC測定は、ターゲット分布が不均衡である(1つのターゲット・クラスが他のクラスに比べて顕著である)データセットに対して特に有効です。
確率しきい値の変化は、モデルにより生成される予測に影響します。たとえば、ポジティブ・クラス予測のしきい値が0.5から0.6に変わった場合、生成されるポジティブ予測の数が少なくなります。これにより、混同マトリックスでの値の分布が影響を受け、真のポジティブ数と不適切なポジティブ数および真のネガティブ数と不適切なネガティブ数がすべて変わることになります。
モデルのROC曲線は、その混同マトリックスの値について可能なすべての組合せを表します。ROCを使用することにより、全体の最高精度またはクラスごとの最高精度が得られる確率しきい値を見つけることが可能です。たとえば、ポジティブ・クラスを正確に予測することが重要である一方、ネガティブ・クラスの予測ミスについては許容できる場合には、ポジティブ・クラスのしきい値を下げることができます。つまり、ポジティブ・クラスを優先するようにモデルにバイアスをかけることになります。
コスト・マトリックスは、モデルのスコアリング用の確率しきい値を変更する際に便利なメカニズムです。
Oracle Data Miningでは、次のROC統計量が計算されます。
確率しきい値: ポジティブ・クラス予測が生成される最小予測ポジティブ・クラス確率。しきい値が異なると、ヒット率および不適切な警告率も異なります。
真のネガティブ数: 確率しきい値未満の予測確率を持つテスト・データにおけるネガティブ・ケース数(正確に予測されたケース)。
真のポジティブ数: 確率しきい値以上の予測確率を持つテスト・データにおけるポジティブ・ケース数(正確に予測されたケース)。
不適切なネガティブ数: 確率しきい値未満の予測確率を持つテスト・データにおけるポジティブ・ケース数(不正確に予測されたケース)。
不適切なポジティブ数: 確率しきい値以上の予測確率を持つテスト・データにおけるネガティブ・ケース数(不正確に予測されたケース)。
真のポジティブの割合: ヒット率 (真のポジティブ数/(真のポジティブ数+不適切なネガティブ数))。
不適切なポジティブの割合: 不適切な警告率 (不適切なポジティブ数/(不適切なポジティブ数+真のネガティブ数))。
コスト、事前確率およびクラスの重みは、分類モデルにバイアスをかけるための手法です。
コスト・マトリックスは、モデルの意思決定に影響を与えるためのメカニズムです。コスト・マトリックスを使用することにより、モデルによるコストの高い分類ミスを最小化することが可能です。また、モデルが利益の高い正確な分類を行う確率を最大化することもできます。
たとえば、あるモデルが信用リスクの高い顧客を低リスクとして分類した場合、このような分類ミスにはコストがかかります。コスト・マトリックスを使用することによって、こうしたミスを回避するようにモデルにバイアスをかけることができます。また、信用履歴が最も悪い顧客を正確に分類することを優先するようモデルにバイアスをかける際に、コスト・マトリックスを使用する場合もあります。
確率しきい値が変化したときにモデルがどのように動作するかを評価するメトリックとしては、ROCが有効です。ROCは、用途が異なるいくつかのシナリオがある場合に、特定の分類子について最適なコストを見つけるのに役立ちます。この情報を利用して、モデルの配置に影響を与えるコスト・マトリックスを作成できます。
混同マトリックスと同様、コスト・マトリックスはn×nの行列(nはクラスの数)です。混同マトリックスとコスト・マトリックスはいずれも、特定のテスト・データセットに基づく実測値と予測値のすべての可能な組合せを含んでいます。
混同マトリックスは、精度(予測の合計数に対する正確な予測の割合)の測定に使用されます。コスト・マトリックスは、異なる予測に対する精度の相対的な重要度を指定する際に使用されます。多くのビジネス・アプリケーションでは、モデルの質を評価するには精度だけでなくコストも考慮することが重要です。(「混同マトリックス」を参照。)
ポジティブ・クラスは、最も重要なクラスです。リフトの計算およびROCには、ポジティブ・クラスの指定が必要です。(「リフト」および「受信者操作特性(ROC)」を参照)。
図5-2の混同マトリックスでは、値1
がポジティブ・クラスとして指定されています。これは、提携カードがあれば消費を増やす可能性がある顧客(affinity_card
=1)を正確に予測する方が、反応のない顧客(affinity_card
=0)を正確に予測するよりも重要であるとモデルの作成者が判断したことを意味します。提携カードを使用する可能性が低い顧客にカードを提供したとしても、カードのコストが低いため企業の損失はそれほど大きくはありません。しかし、反応する可能性が高い顧客を見落とした場合は、収益増加の機会を逃すことになります。
この混同マトリックスでの真のポジティブ率と不適切なポジティブ率は次のようになります。
不適切なポジティブ率 — 10/(10 + 725) =.01
真のポジティブ率 - 516/(516 + 25) =.95
コスト・マトリックスでは、正の数(コスト)を使用してネガティブの結果に影響を与えることが可能です。負数のコストは利益と解釈されるため、負の数(利益)を使用するとポジティブの結果に影響を与えることができます。
消費を増やす可能性がある顧客に提携カードを提供しなかった場合、ビジネスに1500ドルの損害を与えることになる、と算定したとします。図5-2の混同マトリックスを持つモデルを使用した場合、不適切なネガティブ予測(反応する顧客の分類ミス)により1500ドルのコストがかかることになります。反応しない顧客の分類ミスの方が、ビジネスに与える損害は小額です。不適切なポジティブ予測(反応しない顧客の分類ミス)によるコストは300ドルしかかからないものと算定しました。
プロモーション・キャンペーンを計画する場合、これらのコストには注意が必要です。1人の顧客をプロモーションに含めるコストには、10ドルかかると見積ります。このため、プロモーションからこれらの顧客を単に排除するために、10ドルの利益を真のネガティブ予測に関連付けます。排除した各顧客は、10ドルの削減を表します。コスト・マトリックスでは、この利益を負のコストとして-10と指定します。
図5-3は、これらのコストおよび利益をコスト・マトリックスで表したものです。
Oracle Data Miningでは、分類モデルのスコアリングに影響するようにコストを指定できます。ディシジョン・ツリー・モデルでは、コスト・マトリックスを使用してモデルの作成に影響を与えることも可能です。
ベイズ・モデルでは、作成データと実際の母集団(スコアリング・データ)との間の分布の差を埋めるために、事前確率を指定できます。
多くの問題では、頻度において1つのターゲット値が優位になります。たとえば、電話でのマーケティング・キャンペーンに対する肯定的な反応が2%未満の場合や、クレジット・カードのトランザクションでの不正の発生数が1%未満の場合です。このタイプの、履歴データに基づいた分類モデルは、2つのクラスの特徴を区別するために頻度の低いクラスが十分に検出されない場合があります。結果が、新しいデータへの適用時に、すべてのケースにおいて高頻度クラスを予測するモデルとなります。このようなモデルの精度は非常に高いですが、あまり有用ではない場合があります。このように、分類モデルの質を判断する際に精度のみに依存することは、お薦めできません。
トレーニング・データにおける非現実的な分布を補正するには、モデルの作成プロセスで事前確率を指定します。データの分布に関する問題を補正するその他の方法としては、層別サンプリングや異常検出があります。(第6章を参照してください。)
Oracle Data Miningには、次の分類アルゴリズムが用意されています。
ディシジョン・ツリー
ディシジョン・ツリーは、ツリーの作成に使用されるロジックを明らかにする条件文であるルールを自動的に生成します。第11章「ディシジョン・ツリー」を参照してください。
Naive Bayes
Naive BayesではBayesの定理が使用されます(履歴データの値の組合せと値の頻度を数えて確率を計算する式)。第15章「Naive Bayes」を参照してください。
一般化線形モデル(GLM)
GLMは、線形モデリングでよく使用される統計的手法です。Oracle Data Miningでは、2項分類および回帰でGLMを実装しています。
GLMでは、係数統計情報やモデルの統計情報、行の診断情報など多数の情報を利用できます。GLMは信頼限界もサポートしています。
サポート・ベクター・マシン
サポート・ベクター・マシン(SVM)は、線形回帰および非線形回帰に基づく強力な最新のアルゴリズムです。Oracle Data Miningでは、2項分類および多クラス分類に対してSVMが実装されています。第18章「サポート・ベクター・マシン」を参照してください。
どの分類アルゴリズムが所定の問題に対して最適な解決策を提供するかは、データの性質によって決まります。アルゴリズムによって、精度、完了までにかかる時間および透明性に関して差がある場合があります。実際には、アルゴリズムごとにいくつかのモデルを作成し、各アルゴリズムに最適なモデルを選択してから、配置に最適なモデルを選択するのが合理的なこともあります。