このチュートリアルでは、入力フィールドの値に基づいてレコードを分類する統計手法であるロジスティック回帰モデルを構築します。 これは線形回帰に似ているが、数値フィールドの代わりにカテゴリー・フィールドを取る。
例えば、ある電気通信事業者が、競合他社に奪われつつある顧客数を懸念しているとする。 サービス使用量データを、どの顧客が他のプロバイダーに移りそうかを予測するために使用できれば、提案をカスタマイズして、できるだけ多くの顧客を維持することができます。
チュートリアルを試す
このチュートリアルでは、以下のタスクを実行します:
モデラーのフローとデータセットのサンプル
このチュートリアルでは、サンプルプロジェクトのTelecommunications Churnフローを使用します。 使用するデータファイルはtelco.csvである。 次の図は、モデラーのフロー例を示しています。
この例では、顧客消失 (解約) を予測するために使用量データを使用する方法に注目します。 対象には 2 つの異なるカテゴリーがあるために、二項式モデルを使用します。 対象が複数のカテゴリーを持つ場合は、代わりに多項モデルが作成されるかもしれない。
次の画像は、このモデラーフローで使用されるデータセットである。
タスク 1:サンプルプロジェクトを開く
サンプル・プロジェクトには、いくつかのデータ・セットとモデラー・フローのサンプルが含まれています。 サンプル・プロジェクトをまだお持ちでない場合は、チュートリアル・トピックを参照してサンプル・プロジェクトを作成してください。 次に、以下の手順でサンプルプロジェクトを開きます:
- watsonx」で、ナビゲーションメニュー「」から「プロジェクト」>「すべてのプロジェクトを表示」を選択する。
- SPSS ModelerProjectをクリックします。
- アセット」タブをクリックすると、データセットとモデラーフローが表示されます。
進行状況を確認する
次の図は、プロジェクトのAssetsタブを示しています。 これで、このチュートリアルに関連するサンプルモデラーフローで作業する準備ができました。
タスク 2: データ資産とデータ型ノードを調べる
通信解約にはいくつかのノードがある。 以下の手順に従って、データ・アセットと タイプ・ノードを調べます:
- AssetsタブからTelecommunication Churnモデラー・フローを開き、キャンバスがロードされるのを待ちます。
- telco.csvノードをダブルクリックする。 このノードは、プロジェクト内のtelco.csvファイルを指すData Assetノードです。
- ファイル形式のプロパティを確認します。
- オプション:完全なデータセットを表示するには、データのプレビューをクリックします。
- Typeノードをダブルクリックする。 このノードは、測定レベル(フィールドが含むデータのタイプ)などのフィールド・プロパティや、モデリングにおけるターゲットまたは入力としての各フィールドの役割を指定する。 すべての測定レベルが正しく設定されていることを確認する。 例えば、'
0.0
と'1.0
の値を持つほとんどのフィールドはフラグと見なすことができるが、性別のような特定のフィールドは、2つの値を持つ名目フィールドと見なす方が正確である。churn
ターゲット・ロールを持つフラグとして設定されていることに注意。 他のすべてのフィールドの役割はInputに設定されている。 - チャーン(フィーチャー選択)モデリング・ノードをダブルクリックして、そのプロパティを表示します。 予測変数/ターゲット関係について有用な情報を追加しない予測変数またはデータを削除するには,Feature Selectionノードを使用できる.
- チャーン(フィーチャー選択)ノードにカーソルを合わせ、実行アイコン「」をクリックする。
- Outputs and models(出力とモデル)ペインで、churn という名前のリストの最初のモデルをクリックして、モデルの詳細を表示します。
進行状況を確認する
以下の画像はモデルの詳細を示している。 これでFilterノードをチェックする準備ができました。
タスク3:フィルターノードのチェック
解約予測に役立つのは、telco.csvデータファイルの一部のデータだけである。 フィルタを使用して、予測変数として使用するために重要とみなされるデータ(前のタスクで生成されたモデルで重要としてマークされたフィールド)だけを選択できます。 フィルター・ノードを確認するには、以下の手順に従ってください:
- 重要な機能(フィルタ)」ノードをダブルクリックして、そのプロパティを表示します。
- このノードは、選択されたフィールド('
tenure
、'age
、'address
、'income
、'ed
、'employ
など)のみをフィルタリングすることに注意。 この分析では、その他の分野は除外している。 - 「キャンセル」をクリックします。
- このノードは、選択されたフィールド('
- Filterノードの後にある28 Fields (Data Audit)出力ノードをダブルクリックします。
- データ監査ノードにカーソルを合わせ、実行アイコン「」をクリックする。
- Outputs and models]ペインで、[Data Audit]という名前の結果をクリックして出力を表示します。
- この列を見れば、大量のデータが欠落しているフィールドを特定することができます。 このケースで修正する必要のあるフィールドは
logtoll
だけです。これは完了の割合が 50% を下回っています。 - 出力を閉じる。
- 欠損値インプットスーパーノードをダブルクリックします。
- View supernodeをクリックする。
- Fill logtoll (Filler)ノードをダブルクリックします。フィラー・ノードは、フィールド値の置換やストレージの変更に使用される。
@BLANK(FIELD)
のような、CLEM 条件に基づいて値を置換することができます。 また、すべての空白値やヌル値を特定の値に置換することもできます。 フィラー・ノードは、欠落した値を置き換えるために、しばしばタイプ・ノードとともに使用される。Fill in fieldsセクションで、値を調べて置換したいデータセットのフィールドを指定できます。 この場合、'logtoll
カラムは、ReplaceセクションのBlankおよびNull値オプションとともに指定される。 - 前のフローに戻る」をクリックする。
進捗状況を確認する
次の図は、このフローを示しています。 これでモデルを作る準備ができた。
タスク4:モデルの構築
ロジスティック・ノードを使用するモデルを構築します。 以下の手順でモデルを作成する:
- 欠損値インピュテーション・スーパーノードの後にあるchurn (Logistic)ノードをダブルクリックして、そのプロパティを表示します。
- モデル設定セクションで、二項手順を選択する。
- 二項モデルは、対象フィールドが2つの離散値を持つフラグフィールドまたはノミナルフィールドである場合に使用される。
- 多項モデルは、対象フィールドが2つ以上の値を持つ名義フィールドである場合に使用される。
- 次に、フォワード・ステップワイズ法を選択する。
- Expert Optionsセクションで、Expertモードを選択する。
- 出力をクリックする。 「各ステップ (At each step)」、「反復履歴 (Iteration history)」、および「パラメーター推定値 (Parameter estimates)」を選択し、「OK」をクリックします。
進捗状況を確認する
次の図は、このフローを示しています。 これでモデルを生成する準備が整いました。
タスク5:モデルの生成
以下の手順に従って、ロジスティック・ノードから モデル・ナゲットを生成してください:
- チャーン(ロジスティック)ノードにカーソルを合わせ、実行アイコン「」をクリックする。
- 出力とモデル」ペインで、解約モデルをクリックして結果を表示します。
方程式の変数ページは、モデルによって使用されるターゲット(解約)と入力(予測フィールド)を示している。 これらのフィールドは、検討のために提出された完全なリストではなく、フォワード・ステップワイズ法に基づいて選ばれる。
モデルがデータにどの程度フィットしているかを評価するために、フローを構築する際にエキスパートノードの設定でいくつかの診断が利用できます。
これらの結果は学習データのみに基づくことに注意してください。 モデルが実世界の他のデータに対してどの程度一般化されるかを評価するために、テストと検証の目的でレコードのサブセットを保持するためにパーティション・ノードを使用します。
進捗状況を確認する
次の画像はモデル結果である。
サマリー
この例では、ターゲットが2つの異なるカテゴリーを持っているため、二項モデルを構築することによって、顧客損失(解約)を予測するために使用量データを使用する方法を示しました。
今後のステップ
これで、他のSPSS® Modelerチュートリアルを試す準備ができました。