RapidMiner
【連載】RapidMinerで始める簡単データ分析!!~Part4:予測モデルの適用~
前回の記事では、顧客離反データを使って、 各顧客が離反するか継続するかを予測するモデルの生成方法を学びました。 今回は生成したモデルを使って、各顧客が離反するか継続するかを実際に予測してみましょう! ここでは、前回生成した予測モデルをデータセットに適用させます。 以下の図は前回作成したプロセスです。 顧客データを決定木アルゴリズムに投入し、予測モデルを生成しました。1.データのコピー 「Multiply(データをコピー)」オペレータは、入力ポートから受け取ったものを全て出力ポートへと渡します。 「Filter Example」オペレータと共にこのオペレータを使用することで、 1つのデータセットをコピーし、それぞれ学習用とテスト用として使用できます。 データセットをコピーするには次の手順を実施して下さい。
1-1.すでに追加している「Filter Examples」オペレータの下に、 2つ目の「Filter Examples」オペレータを追加します。 1-2.「Retrive」オペレータの出力ポートをクリックし、 新たな「Filter Examples」オペレータへ線をつなぎます。 1つ目の「Filter Examples」オペレータとの接続は消え、 2つ目の「Filter Examples」オペレータと接続されています。 このとき、上図のような分岐アイコンが現れます。 1-3.分岐アイコン(上図の円で囲われているアイコン)をクリックします (しばらく待っても分岐アイコンが表示されない場合は、消えてしまったかもしれません。 そのような場合は、単純に新しい接続を削除して、 一番上の「Filter Examples」オペレータと再接続し、手順1-2から再度実施しましょう)。 上記の手順を実施することでRapidMinerは、「Multiply」オペレータを自動的に挿入し接続します。
2.目的変数の無いデータセットの生成 目的変数を持たないテスト用データセットを生成します。 2-1.下部の「Filter Examples」オペレータをクリックし、パラメータ設定画面を表示します。 2-2.フィルターを設定します。 ・「Parameters」パネルで、「Add Filters」をクリックします。 ・最初のプルダウンから「Churn」を選択します。 ・真ん中のプルダウンから「is missing」を選択します。 ・OKボタンをクリックします。 3.予測モデルの適用 「Apply Model」オペレータを使って、決定木から抽出したルールを目的変数を持たないデータに適用すると、 顧客が離反するかどうかを予測できます。
3-1.「Apply Model」オペレータを検索し、プロセス内の「Decision Tree」オペレータの右に追加します。 3-2.「Decision Tree」オペレータのモデル(mod)ポートと「Apply Model」オペレータの(mod)ポートを接続します。 3-3.2つ目の「Filter Examples」オペレータのデータセット(exa)ポートと、 「Apply Model」オペレータの目的変数無しの(unl)ポートを接続します。 こうすることで、目的変数を持たない条件にマッチした全てのデータが「Apply Model」オペレータへ渡されます。 3-4.「Apply Model」オペレータの目的変数有りの(lab)ポートと結果(res)ポートを接続します。 ここまでの操作で、プロセスは上図のように構築できているでしょう。 3-5.実行ボタンをクリックしてプロセスを実行します。 3-6.保存ボタン(フロッピー)をクリックし、プロセスを保存します。 4.結果の理解 プロセスを実行すると、RapidMinerはそれぞれのデータの目的変数(離反するかしないか)を予測します。 結果は次のように表示されます。
4-1.ここで、考慮すべき点があります。 ・この結果では、996レコードに対し96レコードが表示されています。 これは、目的変数を持たないレコードの数です。 ・「Churn」と「prediction(Churn)」項目の違いに注意して下さい。 「Churn」項目は目的変数が無い状態のままです。 しかし、新たな項目「prediction(Churn)」には、顧客が離反するかしないかの予測結果が表示されています。 予測結果は決定木ルールをもとに生成されています。 ・予測結果の右隣に、各クラスごとの予測の確信度(confidence)も表示されています。 例:1行目のconfidence(loyal)は、顧客が離反しない可能性が20.2%であることを表し、 confidence(churn)は、顧客が離反する可能性が79.8%であることを表しています。 次回Part5では、結果の精度をより高めるために、モデルの評価を実施します。