モデル作成の概要

このチュートリアルでは、. SPSS® Modeler を使用したモデリングの基礎を紹介します。 モデルとは、一連の入力フィールドや変数に基づいて結果を予測するために使用できる、規則、公式、または方程式の集合である。 例えば、金融機関は、融資申請者について既に把握している情報に基づき、その申請者が優良なリスクか不良なリスクかを予測するためにモデルを使用することがある。

チュートリアルをプレビューする

< このチュートリアルの手順をプレビューするには、この動画をご覧ください。 動画に表示されているユーザーインターフェースには、若干の違いがある可能性があります。 この動画は、書面によるチュートリアルの補助として作成されています。 この動画は、このドキュメントに記載されているコンセプトとタスクを視覚的に学ぶ方法を提供します。

チュートリアルを試してみてください

このチュートリアルでは、以下のタスクを完了します:

サンプルモデラーのフローとデータセット

このチュートリアルでは、サンプルプロジェクトの 「モデリング入門」 フローを使用します。 使用されるデータファイルは. です tree_credit.csv。 以下の図はサンプル・モデラーのフローを示しています。

図1: サンプルモデラーフロー
サンプルモデラーフロー

結果を予測する能力は予測分析の中核的な目標であり、モデリングプロセスを理解することがフロー SPSS Modeler を活用する鍵である。

この例のモデルは、銀行が、将来のローン申請者がローンで債務不履行になる可能性があるかどうかを予測する方法を示しています。 これらの顧客は以前に銀行から融資を受けていたため、顧客のデータは銀行のデータベースに保管されています。 このモデルは、顧客のデータを使用して、顧客がデフォルトになる可能性を判別します。

モデルの重要な部分は、そのモデルに入るデータです。 銀行は、顧客がローンを返済したか (信用格付け = 良好)、債務不履行になったか (信用格付け = 不良) など、顧客に関する履歴情報のデータベースを保持しています。 銀行は、この既存のデータを使用してモデルを作成したいと考えています。 次のフィールドが使用されています。

フィールド名 説明
Credit_rating 信用格付け: 0=悪い、1=良い、9=欠損値
年齢 年齢
収入 収入レベル: 1=低、2=中、3=高
Credit_cards 所有するクレジット・カード数: 1=5 枚未満、2=5 枚以上
教育 学歴: 1=高校、2=大学
Car_loans 利用中のカー・ローン数: 1=1 件以下、2=2 件以上

この例では、一連のデシジョン・ルールを使用してレコードを分類 (および応答を予測) する デシジョン・ツリー ・モデルを使用します。

図2: ディシジョン・ツリー・モデル
ディシジョン・ツリー・モデル

例えば、このデシジョン・ルールは、収入が中程度の範囲にあり、クレジット・カードの数が 5 未満の場合に、良好な信用格付けを持つレコードとして分類します。

IF income = Medium 
AND cards <5
THEN -> 'Good'

ディシジョン・ツリー・モデルを使用して、顧客の 2 つのグループの特性を分析し、債務不履行の尤度を予測できます。

この例では、一般的な概要を説明するために CHAID (カイ 2 乗自動反復検出) モデルを使用しますが、ほとんどの概念は SPSS Modelerの他のモデル・タイプにも広く適用されます。

タスク1: サンプルプロジェクトを開く

サンプルプロジェクトには、いくつかのデータセットとサンプルモデラーフローが含まれています。 サンプルプロジェクトをまだお持ちでない場合は、 チュートリアルのトピックを参照してサンプルプロジェクトを作成してください。 次に、サンプルプロジェクトを開くには以下の手順に従ってください:

  1. ナビゲーションメニュー から ナビゲーション・メニューwatsonxプロジェクト > 全プロジェクトを選択します。
  2. SPSS Modeler プロジェクトをクリックしてください。
  3. タブをクリック 資産 すると、データセットとモデラーフローが表示されます。

チェックポイントアイコン 進捗を確認してください

次の画像は資産のアセットタブを示しています。 これで、このチュートリアルに関連するサンプルモデラーフローを使用する準備が整いました。

サンプルプロジェクト

トップへ戻る

タスク2: データ資産とタイプノードを検証する

モデリング入門モデラーフローには複数のノードが含まれます。 以下の手順に従って、 および タイプ データ資産 ノードを検査してください。

  1. タブ 資産 から モデリング入門 モデラーフローを開き、キャンバスの読み込みを待ちます。
  2. ノード tree_credit.csv をダブルクリックします。 このノードは、プロジェクト内のファイル tree_credit.csv を指すノード データ資産 です。 ソースノードで測定値を指定する場合、フローに別途Type ノードを含める必要はありません。
  3. ファイル形式のプロパティを確認してください。
  4. オプション: データ全体を確認するには「プレビュー」をクリックしてください。
  5. タイプノードをダブルクリックします。 このノードは、フィールドのプロパティ(測定レベル(フィールドが含むデータの種類)など)およびモデリングにおける各フィールドのターゲットまたは入力としての役割を指定します。 測定の尺度は、フィールドのデータの種類を示すカテゴリーです。 ソースデータファイルは3つの異なる測定レベルを使用しています:
    • 連続フィールド(例:フィールド) Age は連続した数値を含みます。
    • 名目フィールド(例:フィールド Education )は、2つ以上の異なる値を持つ:この場合、 College または High school
    • 順序体(例えば 体 Income level )は、固有の順序を持つ複数の異なる値を持つデータを記述する:この場合、 Low Medium,, および Highである。
    図3: データ型ノード
    データ型ノード

    各フィールドについて、 Type ノードはモデリングにおける各フィールドの役割を示すために役割も指定します。 このフィールドの役割は 「ターゲット」 に設定されています。このフィールドは Credit rating、顧客がローンの債務不履行に陥ったかどうかを示すものです。 ターゲットは、値を予測したいフィールドです。

    その他のフィールドでは、ロール「入力」 に設定されています。 入力フィールドは、予測フィールドと呼ばれる場合があります。モデル作成アルゴリズムは、このフィールドの値を使用して対象フィールドの値を予測します。

  6. オプション: [プレビューデータ] をクリックすると、型プロパティが適用された状態でデータを確認できます。

チェックポイントアイコン 進捗を確認してください

次の画像はタイプノードを示しています。 モデリングノードの設定準備が整いました。

データ型ノード

トップへ戻る

タスク3: モデリングノードの設定

モデリングノードは、フローが実行されるとモデルナゲットを生成します。 この例ではCHAIDノードを使用しています。 カイ二乗自動相互作用検出(CHAID)は、カイ二乗統計量として知られる特定の統計量を用いて決定木を構築する分類手法である。 ノードはカイ二乗統計量を用いて、決定木における分割の最適な位置を決定する。 モデリングノードを設定するには、次の手順に従ってください:

  1. 信用格付け(CHAID) ノードをダブルクリックして、そのプロパティを表示します。
  2. フィールドセクションでは、 このノードで定義された「設定の使用」 オプションに注意してください。 このオプションは、ノードに対して、Type ノードのフィールド情報を使用する代わりに、ここで指定されたターゲットとフィールドを使用するよう指示します。 このチュートリアルでは、 「このノードで定義された設定を使用する」 オプションをオフのままにしておいてください。
  3. 目的セクションを展開する。 この場合、デフォルト値が適切です。 あなたの目的は、 新しいモデルを構築し標準モデルを作成し実行後にモデルノードを生成することです。
  4. 停止ルールセクションを展開する。 この例ではツリーを比較的単純に保つため、親ノードと子ノードのケースの最小数を増やすことでツリーの成長を制限する。
    1. 絶対値を使用を選択してください。
    2. 親ブランチの最小レコード数を に設定する 400
    3. 子ブランチの最小レコード数を に設定する 200
  5. 「保存」をクリックします。
  6. 信用格付け(CHAID) ノードにカーソルを合わせ、 実行アイコン 実行アイコンをクリックします。

チェックポイントアイコン 進捗を確認してください

以下の図はモデル結果による流れを示しています。 モデルを探索する準備が整いました。

結果ペイン

トップへ戻る

タスク4: モデルを探索する

モデラーフローを実行すると、キャンバスにモデルナゲットが追加され、それが作成されたモデリングノードへのリンクが付与されます。 モデルの詳細を表示するには、次の手順に従ってください:

  1. 出力とモデル ペインで、名前が「 信用格付け」 のモデルをクリックしてモデルを表示します。
  2. モデル情報をクリックすると、モデルの基本情報が表示されます。
  3. 特徴量の重要度をクリックすると、モデル推定における各予測変数の相対的な重要度を確認できます。 このグラフから、 収入レベルがこのケースにおいて最も重要な要素であることが容易にわかります。次に重要な要素はクレジットカードの枚数です。
    図4: フィールドの重要度グラフ
    フィールドの重要度グラフ
  4. 「上位決定ルール」 をクリックすると、ルールセット形式の詳細が表示されます。これは基本的に、異なる入力フィールドの値に基づいて個々のレコードを子ノードに割り当てるために使用できる一連のルールです。 決定木内の各末端ノードに対して、 良ししの予測が返される。 末端ノードとは、それ以上分割されない木ノードである。 いずれの場合も、予測値はそのノードに属するレコードのモード(最も一般的な応答)によって決定される。
    図 5. CHAID モデル・ナゲット、ルール・セット
    CHAID モデル・ナゲット、ルール・セット
  5. ツリー図をクリックすると、各決定点にノードを持つツリー形式で同じモデルを表示します。 詳細を調べるには、ブランチおよびノードにカーソルを移動します。
    図 6. モデル・ナゲット内のツリー図
    モデル・ナゲット内のツリー図

    ツリーの先頭を見ると、最初のノード(ノード0)はデータセット内の全レコードの要約を提供する。 データ・セット内の 40% を少し超えるケースが、高リスクと分類されています。 40%はかなり高い割合ですが、この木が要因について手がかりを与えてくれるかもしれません。

    最初の区分は所得水準によるものです。 収入レベルが「低」のカテゴリーのレコードは、ノード 2 に割り当てられています。このカテゴリーに高い割合の債務不履行者が含まれているのが分かりますが、驚くことではありません。 当然、このカテゴリーの顧客に融資することは、高いリスクを有します。 ただし、このカテゴリーの顧客の約18% 債務不履行に陥らなかったため、予測が常に正しいとは限らない。 どのモデルも現実的に全ての応答を予測することは不可能だが、優れたモデルは利用可能なデータに基づいて各レコードの最も可能性の高い応答を予測できるようにすべきである。

    同様に、高所得顧客(ノード1)を見ると、ほとんどの顧客(88%以上)が良好なリスクであることがわかります。 しかし、これらの顧客の10人に1人以上が依然として債務不履行に陥った。 貸付基準をさらに精緻化することで、このリスクを最小化することは可能でしょうか?

    モデルが、保有するクレジットカードの数に基づいて、これらの顧客を2つのサブカテゴリ(ノード4と5)に分類している点に注目してください。 高所得顧客に対して、銀行がクレジットカードを5枚未満しか保有していない顧客のみに融資を行う場合、成功率は88%からほぼ97%に上昇し、さらに満足のいく結果が得られる。

    図 7. クレジット・カード数が 5 枚未満の高収入の顧客
    クレジット・カード数が 5 枚未満の高収入の顧客

    しかし、中程度の収入カテゴリー (ノード 3) の顧客についてはどうでしょうか。 「良い」評価と「悪い」評価に、均等に分かれています。 再び、サブカテゴリ(この場合はノード6と7)が役立つ。 今度は、クレジット・カード数が 5 枚未満の中程度の収入の顧客にのみ融資すると、「良い」の評価のパーセンテージが 58% から 86% に上昇し、大幅な改善が示されます。

    図 8. 中程度の収入の顧客のツリー・ビュー
    中程度の収入の顧客のツリー・ビュー

チェックポイントアイコン 進捗を確認してください

以下の画像はモデルの詳細を示しています。 モデルを評価する準備が整いました。

モデル情報

トップへ戻る

タスク5: モデルを評価する

モデルを閲覧することで、スコアリングの仕組みを理解できます。 ただし、モデルの精度を評価するには、いくつかのレコードをスコアリングする必要があります。 スコアリング記録とは、実際の結果とモデルが予測した応答を比較するプロセスである。 モデルを評価するには、モデル推定に使用したのと同じレコードに対してスコアリングを行うことができます。 観測された応答と予測された応答を比較するには、同じ記録を比較すればよい。 モデルを評価するには、次の手順に従ってください:

  1. テーブルノードをモデルナゲットに接続します。
  2. テーブルノードにカーソルを合わせ、 実行アイコン 実行アイコンをクリックします。
  3. 出力とモデル ペインで、名前が「 Table」 の出力結果をクリックして結果を表示します。

    この表は、モデルが生成したフィールド $R-Credit rating における予測スコアを表示しています。 これらの値を、実際の応答を含む Credit rating 元のフィールドと比較することができます。

    慣例により、スコアリング中に生成されたフィールド名は、ターゲットフィールドを基に、標準の接頭辞を付加して命名されます。
    • $G および $GE は、一般化線形モデルが生成する予測値の接頭辞である
    • $R CHAIDモデルが生成する予測の前置詞です
    • $RC 信頼区間値
    • $X 通常、アンサンブルを用いて生成される
    • $XR, $XS, $XF は、対象フィールドが連続型、カテゴリ型、集合型、またはフラグ型フィールドである場合に接頭辞として使用されます

    信頼度値 は、各予測値がどれだけ正確であるかに関するモデル独自の推定であり、スケールは 0.0 から 1.0 です。

    図 9. 生成されたスコアおよび信頼度値を示すテーブル
    生成されたスコアおよび信頼度値を示すテーブル

    予想通り、予測値は多くのレコードで実際の応答と一致するが、すべてではない。 各 CHAID ターミナル・ノードにレスポンスが混在しているのが理由です。 その予測は最も一般的なものと一致するが、そのノード内の他のすべてについては誤っている。 (低収入の顧客の、債務不履行に陥っていない 18% の少数派を思い出してください)。

    この問題を回避するには、木構造をさらに細分化し、すべてのノードが100%純粋になるまで分割を続けることができます。つまり、混合した反応がなく、すべてが 「良い」 または 「悪い」 となる状態です。 しかし、そのようなモデルは複雑であり、他のデータセットへの汎化性能は期待できない。

    予測が正確にいくつ正しいかを知るには、表を読み通して、予測されたフィールドの値が $R-Credit rating の値と一致するレコードの Credit rating数を数え上げればよい。 ただし、最も簡単な方法はAnalysisノードを使用することです。このノードは、これらの値が一致するレコードを自動的に追跡します。

  4. モデルナゲットを分析ノードに接続します。
  5. 分析ノードにカーソルを合わせ、 実行アイコン 実行アイコンをクリックします。
  6. 出力とモデル ペインで、 Analysis という名前の出力結果をクリックして結果を表示します。

    分析の結果、2464件の記録のうち1960件(79%以上)において、モデルが予測した値が実際の応答と一致したことが示された。

    図 10. 観測レスポンスと予測レスポンスの比較の分析結果
    観測レスポンスと予測レスポンスの比較の分析結果

    この結果は、評価に使用した記録がモデル推定に使用した記録と同一であるという事実によって制約を受けています。 実際の状況では、 パーティションノードを使用してデータを分割し、トレーニング用と評価用の別々のサンプルを作成できます。 モデル生成に1つのサンプル分割を使用し、別のサンプルでテストすることで、他のデータセットへの汎化性能をより正確に評価できます。

    分析ノードを使用して、実際の結果が既知のレコードに対してモデルをテストできます。 次の段階では、結果が未知のレコードに対してモデルを用いてスコアリングを行う方法を示します。 例えば、このデータセットには、現在銀行の顧客ではないが、プロモーション用ダイレクトメールの潜在的なターゲットとなる人々が含まれている可能性がある。

チェックポイントアイコン 進捗を確認してください

以下の図は、出力結果を含むフローを示しています。 これで、新しいデータを用いてモデルを評価する準備が整いました。

完全なモデラーフロー

トップへ戻る

タスク6: 新しいデータでモデルを評価する

以前、モデルを推定するために使用された記録にスコアを付け、モデルの精度を評価できるようにしました。 この例では、モデル作成に使用されたレコードとは異なるレコードのセットをスコアリングします。 ターゲットフィールドを用いたモデリングの目的の一つは、精度を評価することである。 既知の結果を持つ記録を分析し、パターンを特定することで、未知の結果を予測できるようにする。

既存の データ資産 または インポート ノードを更新して、別のデータファイルを指すように設定できます。 または、スコアリングしたいデータを読み込む または インポート ノード データ資産 を追加することもできます。 いずれにせよ、新しいデータセットにはモデルで使用される入力フィールド(Age, Income level, Education, など)を含める必要がありますが、 Credit ratingターゲットフィールドは含めてはいけません。

あるいは、期待される入力フィールドを含む任意のフローにモデルナゲットを追加することもできます。 ファイルから読み取るかデータベースから読み取るかに関わらず、フィールド名と型がモデルで使用されているものと一致していれば、ソースの種類は問題になりません。

チェックポイントアイコン 進捗を確認してください

以下の図は、完成したフローを示しています。

完全なモデラーフロー

トップへ戻る

サマリー

モデリング入門の例示フローは、モデルの作成、評価、およびスコアリングの基本的な手順を示しています。

  • モデリングノードは、結果が既知のレコードを分析してモデルを推定し、モデルナゲットを作成する。 このプロセスは、モデルを学習させることと呼ばれることもある。
  • モデル・ナゲットは、レコードのスコアリングを行う予定のフィールドを含む任意のフローに追加できます。 既に結果が分かっているレコード (既存の顧客など) をスコアリングすることによって、そのパフォーマンスを評価できます。
  • モデルが十分に機能していると判断したら、新規データ(見込み顧客など)をスコアリングして、その反応を予測できます。
  • モデルを学習または推定するために使用されるデータは、分析データまたは履歴データと呼ぶことができる。 スコアリングデータは、運用データとも呼ばれることがある。

次のステップ

他の SPSS Modeler チュートリアルを試す準備が整いました。