RapidMiner
【連載】RapidMinerで始める簡単データ分析!!~Part5:予測モデルの評価~
前回の記事では、顧客離反データを使って、 各顧客が離反するか継続するかを予測するモデルを作成し、 各顧客が離反するか継続するかを実際に予測しました。 今回は作成したモデルが実務に耐えうるものか評価してみましょう! 前回Part4で作成したプロセスを開いてみましょう。 「Desicion Tree」オペレータを使って決定木モデルを作成し、 「Apply Model」オペレータを使って各顧客が離反するか継続するか予測しました。今回は、交差検証(Cross Validation)を使ってモデルを評価します。 1.交差検証 データ量が少ない場合、テストデータの選び方によって予測精度に大きな誤差が生じることがあります。 このような場合には、交差検証(Cross Validation)を使ったモデルの訓練が有効です。 交差検証では、データをいくつかのデータセットに分割します(下図では5つのSubset)。 まず、Subset1をテストデータ(Validation Subset)、 それ以外を訓練用データ(Training Subset)とし、モデルの作成と精度の計算を行います。 次に、Subset2をテストデータ(Validation Subset)、 それ以外を訓練用データ(Training Subset)とし、モデルの作成と精度の計算を行います。 このようにモデルの作成と精度の計算を繰り返し(Iteration)、 全ての精度の平均値を最終的なモデルの精度(Final Accuracy)とします。
早速、RapidMinerで実装してみましょう! 1-1.まず、プロセスを下図(Part3で作成)の状態にします。 不要なオペレータは削除して下さい。
1-2.「Cross Validation」オペレータを配置します。
1-3.配置した「Cross Validation」オペレータをダブルクリックすると、サブプロセス画面が開きます。 「Training」エリア(モデルの作成)と「Testing」エリア(モデルの適用と評価)が表示されます。 まず、「Training」エリアで、「Decision Tree」オペレータを使って決定木モデルを作成しましょう。
1-4.「Testing」エリアで、「Apply Model」オペレータを使って、 テストデータに決定木モデルを適用させましょう。 続けて、「Performance」オペレータを配置し、線でつなぎます。
1-5.画面左上の「Process」をクリックし、メインプロセス画面に戻ります。 「Cross Validation」オペレータの「per」ポートと「res」ポートを線で繋いで、 プロセスを実行しましょう。 2.モデルの精度 RapidMinerでは「Performance」オペレータを使ってモデルの精度を計算できます。 先ほど実行した結果を確認してみましょう。 2-1.モデルの精度は83.89%、標準偏差は3.49%です。 精度の良い(当てはまりの良い)モデルであることが分かります。
2-2.まず左の枠内の再現率(class recall)を確認してみましょう。 「離反しない」(true loyal)に対し「離反しない」と予測した(pred loyal)顧客は509人、 「離反しない」(true loyal)に対し「離反する」と予測した(pred churn)顧客は69人です。 よって再現率は、509/(509+69)=0.8806となり、88.06%であることが分かります。 同様に、右の枠内の再現率も計算できます。
2-3.下段の枠内の適合率(class precision)を確認してみましょう。 「離反しない」(true loyal)に対し「離反する」と予測した(pred churn)顧客は69人です。 「離反する」(true churn)顧客に対し「離反する」と予測した(pred churn)顧客は246人です。 よって適合率は、246/(69+246)=0.7810となり、78.10%であることが分かります。
交差検証は一般的によく使われるモデル評価手法です。 モデルの精度を高めることは予測精度の向上につながります。 実務で耐えうるモデルを作成し活用していきましょう。 これにて本連載を終了します。 RapidMinerで分析データの読込、可視化、モデル作成・評価する方法を一通りご紹介しました。 皆さまがお持ちのデータを使ってぜひ予測分析を試してみてください!