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