Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20181130_ODM1_CreateClassificationModels

Miki Kawauchi
November 27, 2018

 20181130_ODM1_CreateClassificationModels

Oracle Data Minerを使って機械学習をはじめよう
https://blogs.oracle.com/bigdata-dataintegration-jp/odm_01_beginning
内で使用している資料です。

Miki Kawauchi

November 27, 2018
Tweet

More Decks by Miki Kawauchi

Other Decks in Technology

Transcript

  1. Copyright © 2016 Oracle and/or its affiliates. All rights reserved.

    Oracle Data Miner ハンズオン 「分類モデルによる予測」 日本オラクル株式会社 ソリューション・エンジニアリング統括 クラウド・プラットフォーム本部 2018年11月
  2. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    以下の事項は、弊社の一般的な製品の方向性に関する概要を説明する ものです。また、情報提供を唯一の目的とするものであり、いかなる 契約にも組み込むことはできません。以下の事項は、マテリアルや コード、機能を提供することをコミットメント(確約)するものでは ないため、購買決定を行う際の判断材料になさらないで下さい。オラ クル製品に関して記載されている機能の開発、リリースおよび時期に ついては、弊社の裁量により決定されます。 Oracle と Java は、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国に おける登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。 2
  3. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    概要 ▪このハンズオンでは、Oracle Database 18.2上でデータマイニング・アクティビティを実行 するためのOracle Data Miner 18.3を使用します。 ▪このハンズオンでは、ビジネス上の課題を解決するために、分類モデルを作成することで Data Minerの使い方を学びます。 3
  4. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    シナリオの解説およびアジェンダ 5 データマイニングにおける一般的な手法は、個々のデータについてできるだけ多くの情報を 収集し、その中から有益である可能性のデータをフィルタリングすることです。 今回のシナリオでは、「ある保険会社が、保険を購入する可能性が最も高い顧客を、分類の 学習アルゴリズムで分析」するというストーリーで進行します。 STEP① 新規プロジェクトおよびワークフローを作成します。 STEP② 保有している顧客情報をワークフローに追加して、分析をおこなえる状態にします。 STEP③ 追加した顧客情報をグラフなどを用いて、分析前にデータの確認・可視化をおこないます。 STEP④ 分類構築の対象となるターゲット属性の設定などをおこなって、分類モデルを作成します。 STEP⑤ 構築した4つのモデルの正確性を考慮して、適用するモデルを絞り込みます。 STEP⑥ 構築および選択したモデルを適用して、「保険を購入する可能性が最も高い顧客」を分析します。 ① ③ ④ ⑤ ⑥ ② ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成
  5. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    ワークフローの完成形 6 データから分類モデルを作成 (商品を購入するかしないか) ※機械学習・教師あり モデルを新規データに適用し 商品を購入するかどうかを 予測する 予測結果の参照 データの参照 データの参照
  6. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    7 プロジェクトの作成 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成
  7. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    プロジェクトの作成 8 「Data Miner」タブを開きます。 「Data Miner」タブが開いていない場合、 「表示 > Data Miner > Data Minerの接続」を選択します。 Data Minerユーザ (dmuser) が作成され、 SQL Developer から接続されて いる状態になり ます。 1 「dmuser」を右クリックし、「新規プロジェクト」を 選択します。 2 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成
  8. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    プロジェクトの作成 9 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 プロジェクトの作成ウィンドウで、「名前」欄に「顧客の分析」と入力し「OK」をク リックします。 「コメント」欄はプロジェクト概要などのメモに活用できます。これはいつでも変更可能 です。 3 新規プロジェクトが「dmuser」の下に表示されます。 4
  9. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    10 ワークフローの作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 ワークフローの 作成
  10. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    ワークフローの作成 11 Data Minerワークフローは、データマイニングのプロセスを表すノードの集合体です。 Data Minerワークフローの内容 ➢ データマイニングのプロセスを可視化します。 ✓ プロセスの各要素はノードと呼ばれるアイコンで表示します。 ✓ 各ノードはそれぞれの特定の目的、使用方法を持っており。それらは様々な方法 で定義することが可能です。 ✓ ノード同士を接続することによって、データマイニングのためのワークフローが 構築できます。 ➢ ノードはドラッグ&ドロップでワークフローに追加できます。各ノードの詳細設定に はデフォルトがありますが、必要に応じて変更してください。 Data Minerワークフロー ➢ データマイニング・サーバへの指示 ➢ プロセスの可視化 ➢ 部分実行とプロセス保存 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 ワークフローの 作成
  11. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    12 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 ワークフローの 作成 プロジェクト「顧客の分析」を右クリックし、「新規ワークフロー」を選択します。 1 「ワークフローの作成」ウィンドウで「名前」欄に「保険加入顧客の予想」と入力し 「OK」をクリックします。 2
  12. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    13 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 ワークフローの 作成 SQL Developerウィンドウの中央に、空のタブウィンドウが設定した名称で表示されます。 3 右側に「コンポーネント」タブが表示されます。タブは開閉で、サイズ変更、移動が可能 です。 4 ワークフロー領域 「コンポ―ネント」タブ ※詳細は次頁を参照ください。 コンポ―ネント プロジェクト セクション 説明 データ ワークフロー内で利用するデータを指定し、表を作成および変更できます。 変換 データ・ノードで識別された表(複数可)で1つ以上の変換を実行します。 テキスト 「コンポーネント」ペインの「テキスト」セクションで使用できます。 ※テキストの処理には、Oracle Textのナレッジ・ベースが必要です。 モデル 構築するモデルおよびワークフローに追加するモデルを指定します。 予測問合せ 事前定義されたモデルを使用せずにデータを動的にスコアリングできます。 モデル操作 分類モデルと回帰モデルをテストできます。 リンクしているノード 2つのノードをリンクするさせることができます。
  13. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    コンポーネント・ノード 14 セクション ノード 説明 モデル R拡張 R構築ノードを使用すると、Rモデルを登録できます。分類、回帰、クラスタリングおよび特徴抽出のマイニング機能のみサポートされています。 アソシエーション アソシエーション・ノードは、Aprioriアルゴリズムを使用して、データの中から意味のある関連性を抽出します。 クラスタリング クラスタリング・ノードは、k-Means、O-Clusterおよび期待値の最大化の各アルゴリズムを使用してクラスタリング・モデルを構築します。 モデル モデル・ノードは、その定義にデータベース・リソースを使用します。データベース・リソースが変更された場合は、ノード定義のリフレッシュが必要です。 モデル詳細 モデル詳細ノードは、モデルとアルゴリズムに関する情報を抽出し、提供します。 分類 分類ノードでは、構築およびテストを行うための分類モデルを1つ以上定義します。 回帰 回帰ノードでは、構築およびテストを行うための回帰モデルを1つ以上定義します。 明示的機能抽出 明示的特徴抽出ノードは、明示的セマンティック分析(ESA)と呼ばれる特徴抽出アルゴリズムを使用して構築されます。 機能抽出 特徴抽出ノードでは、Non-negative Matrix Factorization (NMF)アルゴリズムを使用してモデルを構築します。 異常検出 異常検出ノードでは、1クラスSVMアルゴリズムを使用して、不正行為などの発生頻度が低い事象を検出する1つ以上のモデルが構築されます。 予測問合せ クラスタリング問合せ クラスタリング問合せノードは、入力のクラスタを返します。 予測問合せ 予測問合せノードでは、入力を使用して分類および回帰を実行します。 機能抽出問合せ 特徴抽出問合せでは、入力から特徴を抽出します。 異常検出問合せ 異常検出問合せノードでは、異常の入力を分析します。つまり、データの特異なケースを検出します。 モデル操作 テスト Oracle Data Miningを使用すると、分類モデルと回帰モデルをテストできます。他の種類のモデルはテストできません。 機能比較 特徴比較ノードでは、あるデータ・ソース・ノードに含まれているテキスト・データを別のデータ・ソース・ノードのテキスト・データと比較して、テキスト・デー タのセマンティクスに関する計算を実行できます。 適用 適用ノードは、パーティション化モデルおよび非パーティション化モデル両方のコレクションを取得し、単一のスコアを戻します。結果として、適用ノードに よって問合せが生成されます。
  14. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    15 データソースの追加 ワークフローの 作成 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データソースの 追加
  15. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    データソースの追加 16 ワークフローの 作成 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データソースの 追加 データを追加します。ワークフローに「データソース」ノードを追加し、データソースに 「INSERT_CUST_LTV_SAMPLE」表を選択します。 「コンポーネント」の「データ」グループを開くと、6つのデータノードが表示されます。 1 ※ ワークスペース上のノード名とモデル名は自動生成されます。今回「データソース」という 名前で生成されましたが、異なる名称になる場合もあります。これらの名前をクリックして変更、 もしくはプロパティ・タブから変更可能です。 「データソース」ノードをワークフローにドラッグ&ドロップします。 2 ワークフローに「データソース」ノードが表示され、「データ・ソースの定義」ウィザー ドが開きます。 3 3 2 1
  16. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    17 ワークフローの 作成 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データソースの 追加 「使用可能な表/ビュー」リストから「INSUR_CUST_LTV_SAMPLE」を選択します。 ※ウィザード下部にタブが2つあり、選択表の内容を表示できます。「列」タブには、表 構造についての情報が表示され、「データ」タブには選択した表もしくはビューのデータ の一部が表示されます。 4 「次へ」をクリックします。 5 ここではデータソース内の不必要な列を削除できますが、今回は表に定義されたすべての 属性を残すので「終了」をクリックします。 6 4 5 6
  17. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    18 ワークフローの 作成 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データソースの 追加 「プロパティ」タブの「詳細」で、ノード名を「学習用顧客情報」に変更します。 9 「プロパティ」タブについて ➢ 「データ」セクションを使用して、 表またはビューに列情報を表示でき ます。 ➢ 結果表示を最適化するために、 「キャッシュ」セクションを使用し て出力データのキャッシュを生成で きます。 ➢ 「詳細」からノード名の変更や情報 の追加を行えます。 10 7 8 ズームオプションに値を入力(もしくは選択)してノードのサイズを変更できます。 10 9 ノード名が選択した表名に更新され、このノードのプロパティが「プロパティ」タブに表示 されます。「プロパティ」タブが開いていない場合、「表示 > プロパティ」を選択します。 7 タブはドラッグで移動可能です。今回はデフォルトで右下にある「プロパティ」タブを中 央下部に移動しています。 8
  18. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    19 データの可視化 ワークフローの 作成 データソースの 追加 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データの 可視化
  19. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    データの可視化 20 「データの参照」ノードや「グラフ」ノードを使用して、ソースデータの確認やグラフ化が 可能です。分析の課題の解決のため、まずはデータの全体を把握しておくことが有効なデー タの判別に役立ちます。 「コンポーネント」の「データ」グループより、「データの参照」ノードをワークフロー に追加します。 ※ マークはノードが不完全であることと、追加の作業を行わないと「実行」できないことを 示します。今回のケースでは「データの参照」ノードと「データソース」ノードを接続する必要 があります。 1 「データソース」ノードを右クリックして「接続」を選択し、接続先である「データの参 照」ノードクリックして、2つのノードを接続します。 2 1 2 ワークフローの 作成 データソースの 追加 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データの 可視化
  20. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    21 ワークフローの 作成 データソースの 追加 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データの 可視化 データソースのグループ化基準を選択します。 「データの参照」ノードをダブルクリックし、「データの参照ノードの編集」ウィンドウを 表示します。 3 グループ化基準リストから「BUY_INSURANCE」属性を選択し、「OK」をクリックします。 ※「選択した属性」ウィンドウでは、ソースデータから任意の属性を削除(もしくは再追加)すること ができます。 4 「データの参照」ノードを右クリックし、「実行」を選択します。 5 5 4 3 6 各ノードの処理中はノード上に ”緑の歯車アイコン” が表示されます。 7 更新が完了するとノード上に “緑のチェックマーク” が表示されます。 ※ここで作成しているワークフローはデータベースにも格納されており、 処理はサーバー上で実行されます。 8 7 8 ノード実行中はワークフロー上部のステータスバーにステータスが表示されます。
  21. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    22 ワークフローの 作成 データソースの 追加 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データの 可視化 「データの参照」ノードの結果を確認します。 「データの参照」ノードを右クリックし、「データの表示」を選択 します。 9 データを可視化および検証することができ、 マニュアルでデータのパターンや構造を検査 できます。 11 「名前」リストから属性を選択すると、関連 ヒストグラムが下部ウィンドウに表示されます。 12 ソースデータの分析を実施したら、「×」をク リックして「データの参照」タブを閉じます。 13 Data Minerは、定義したデータセット内の各属性に関する様々な統計を 行います。「クループ化基準」属性に定義した属性(BUY_INSURANCE) について算出し、次の列が出力されます。 ヒストグラムのサムネイル、データ型、 NULL値割合、個別値、個別値パーセント、 モード値、平均値、中間値、最小値、 最大値、標準偏差、分散 9 「データの参照」 アウトプットの「統計」タブをクリックします。 10 10 13 11 12
  22. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    23 ワークフローの 作成 データソースの 追加 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データの 可視化 「グラフ」ノードを使用し、データをさらに可視化します。 「コンポーネント」の「データ」グループより、 「グラフ」ノードをワークフローに 追加します。 ※「 マークが表示されているので、ノードが不完全であることがわかります。 14 「学習用顧客情報」ノードと「グラフ」ノードを接続します。 15 「グラフ」のノードをダブルクリックして「新規グラフ」ウィンドウを表示します。 16 14 15
  23. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    24 ワークフローの 作成 データソースの 追加 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データの 可視化 「新規グラフ」ウィンドウを設定します。 17 a c d b e ヒストグラムが表示されます。「ズームイン 」ボタンをクリックすると、 フルウィンドウで表示できます。 18 18 19 (a) 「Histogram(ヒストグラム)」タブをクリック (b) 「Title」欄に「AGEのヒストグラム」と入力 (c) ヒストグラムの設定エリアの属性を「AGE」選択 (b) 「グループ化基準」オプションを有効 (e) グループ化基準属性に「LTV_BIN」を選択 (f) 「OK」をクリック
  24. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    25 ワークフローの 作成 データソースの 追加 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 データの 可視化 追加グラフの「新規グラフ」ウィンドウを設定します。 20 (a) 「Box(ボックスプロット)」タブをクリック (b) 「Title」欄に「LTVのボックスプロット」と入力 (c) ヒストグラムの設定エリアの属性を「LTV」選択 (b) 「グループ化基準」オプションを有効 (e) グループ化基準属性に 「MARITAL_STATUS」を選択 (f) 「OK」をクリック a c d b e ヒストグラムとボックスプロットが 並んで表示されます。 21 「新規グラフ 」ボタンをクリックして、ノード上にグラフを追加できます。 19
  25. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    26 分類モデルの作成 ワークフローの 作成 データソースの 追加 データの 可視化 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 分類モデルの 作成
  26. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    分類モデルの作成 27 ワークフローの 作成 データソースの 追加 データの 可視化 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 分類モデルの 作成 個人の行動を予測する際、分類モデルが使用されます。 今回は、”保険に加入する可能性の高い顧客“ の予測を目標としており分類モデルを用います。 分類モデルを作成するとアルゴリズムの異なる4つのモデル (※1) が作成されます。 • 全てのモデルは同じターゲットIDとケースIDを持っており、最も適したアルゴリズムを 容易に判別できます。 • ここでは全てのアルゴリズムを使用して「分類」ノードを定義します。 • これから続く手順でモデルを実行し検証していきます。 「コンポーネント」の「モデル」グループ より、「分類」ノードをワークフローに追 加します。 1 「学習用顧客情報」ノードと「分類ビル ド」ノードを接続します。 2 ※ マークは、属性選択が必要であることを意味します。 ※自動生成される各モデル名は今回と異なる場合があります。 1 2 ※1)Generalized Linear Model(GLM), Support Vector Machine(SVM), Decision Tree(DT), Naïve Bayes(NB)
  27. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    28 ワークフローの 作成 データソースの 追加 データの 可視化 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 分類モデルの 作成 ※必須ではありませんが、ケースIDを定義して各レコードを一意にすることをお勧めします。 モデルの再現性を支援し、より優れた分析を行えます。 ※全4種類のアルゴリズムがデフォルトで選択されており、削除しない限り全て自動的に実行されます。 「分類ビルド・ノードの編集」ウィンドウが表示されます。 3 ターゲット属性に「BUY_INSURANCE」を選択します。 4 ケースID属性に「CUSTOMER_ID」を選択します。 5 「分類」モデルのアルゴリズム 特長 Generalized Linear Model (GLM) 一般化線形モデル。(線形回帰、ロジスティック回帰など) Support Vector Machine (SVM) 線形入力素子を利用して 2 クラスのパターン識別器を構成する手法。 Decision Tree (DT) 決定木。目標とするテーマについてどのように進めて行くべきかを検討する際に、とりうる選択肢と その結果の関係を、ツリー図によって効果を定量的に表すことが出来る。 Naïve Bayes (NB) 単純ベイズ。各クラスの特徴ベクトルが正規分布である事を仮定した単純な分類モデル。 5 4
  28. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    29 ワークフローの 作成 データソースの 追加 データの 可視化 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 分類モデルの 作成 GLMモデルを編集します。「CLAS_GLM_」で始まるモデルをダブルクリックします。 6 「アルゴリズム設定」タブをクリックします。 「リッジ回帰」を「Enable」に変更し、「OK」をクリックします。 7 6 7 7 7
  29. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    30 ワークフローの 作成 データソースの 追加 データの 可視化 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 分類モデルの 作成 モデルを構築します。 この操作を「準備」、モデルをトレーニングデータからの「学習」と呼ぶこともあります。 一般的なデータマイニングでは、データの一部を対象に構築(準備)を行い、残りのデータ を対象にテストします。 モデル構築の前に「分類ビルド」ノード を選択し、「プロパティ」タブから 「テスト」セクションを選択します。 8 ✓ 構築プロセス中にテストを実行するか ✓ どのテスト結果を生成するか ✓ テストデータの管理をどうするか ※デフォルトでは60/40に分割したデータを 用いますが、この数値は自分で設定すること ができます。 構築用 テスト用 8 全データ
  30. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    31 ワークフローの 作成 データソースの 追加 データの 可視化 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 分類モデルの 作成 ※ノードに定義された全モデルが構築・テストされます。 ※実行中はノード上に緑のギアアイコンが表示され、 ワークフロー上部にステータスが表示されます。 構築が完了すると全ノード上に緑色の「✔」が表示されます。 「分類ビルド」ノードを「実行」してモデルをビルドします。 9 プロパティ・インスペクタを使用して、ビルドについての情報を確認できます。ワークフ ローで「分類ビルド」ノードを選択し、「プロパティ」タブで「モデル」セクションを 選択します。 10 ✓ 全てのモデルで実行は完了しています ✓ 全モデルは同じターゲット(BUY_INSURANCE)を持ちますが、異なるアルゴリズムを使っています。 ✓ ソースデータが自動でテストデータと構築データに分割されています。(前スライド参照)
  31. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    32 モデルの比較 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 モデルの比較
  32. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    モデルの比較 33 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 モデルの比較 ビルドした4つの分類モデルを比較します。 「分類ビルド」ノードを右クリックし、「テスト結果の比較」を選択します。 1 分類ビルドタブが開き、「パフォーマンス」タブに4モデルの比較が表示されます。 2 注)数値とヒストグラムの色は異なる場合があります。 ➢ 比較結果には5つのタブが含まれます。 「パフォーマンス」,「パフォーマンス・マトリックス」,「ROC」,「リフト」 ,「利益」 ➢ 「パフォーマンス」タブでは、各モデルについての「予測信頼度」,「平均精度」,「全体精度」と いう情報を、数値およびグラフィカルな情報として提供します。 ➢ 「パフォーマンス」タブによると、ディシジョンツリー(DT)モデルが最も高い「予測信頼度」, 「全体精度」,「平均精度」を出しています。 1 2
  33. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    34 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 モデルの比較 「リフト」タブを選択し、グラフ上部のターゲット値「Yes」に変更します。 3 ➢ 「リフト」タブでは各モデルのリフト値をグラフ表示します。赤い縦線はランダムモデ ル用で、青い縦線はしきい値を表します。 ➢ 「リフト」はモデルテストの一種であり、モデルが実際の正のターゲット値を検出する 速度を評価する指標です。 ➢ 各モデル内の指定されたターゲット値のリフト値で比較できます。 ➢ 累積陽性例と累計リフトの値を表示します。 3 予測される値の累積割(%) 母集団全体の割合(%) (確率の高い順⇒) リフト(曲線)とランダム(直線)で囲まれた面積が大きいほ ど良いモデルだといえます。 また急激に切り立ったグラフがモデルとして精度がいいと判 断します。 予測による効果
  34. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    35 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 モデルの比較 「パフォーマンス・マトリックス」タブを選択します。 4 ※パフォーマンス・マトリックスではDTモデルの「正しい予測%」が最も高く、 80%を超えています。次点のSVMおよびGLMモデルは73%程です。
  35. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    36 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 モデルの比較 SVMモデルを選択し、モデルの「ターゲット値の詳細」を確認します。 各モデルの「ターゲット値」は「BUY_INSURANCE」属性であることを思い出してください。 5 SVMモデルでは、 ✓ BUY_INSURANCEがNOとなる顧客に対し75%の正しい予測 ✓ BUY_INSURANCEがYESとなる顧客に対し71%の正しい予測 SVMとDTモデルの詳細を比較します。 DTモデルを選択し、同様に確認します。 6 これらの分析の結果、より深くDTモデルを検証することにします。分類ビルドタブウィンドウを閉じます。 7 5 DTモデルでは、 ✓ BUY_INSURANCEがNOとなる顧客に対し81%の正しい予測 ✓ BUY_INSURANCEがYESとなる顧客に対し78%の正しい予測 6
  36. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    37 特定のモデルの選択と検討 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 モデルの適用 プロジェクトの 作成 特定のモデルの 選択と検討
  37. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    特定のモデルの選択と検討 38 分析結果を踏まえて、DTモデルを以降の分析で用います。 以下の手順でモデルを検証します。 ワークフロー上の「分類ビルド」ノードを右クリックし「モデルの表示 > CLAS_DT_1_1」 を選択します。ウィンドウが開き、DTがグラフ表示されます。 1 ※モデル名の数字部分は異なることがあります。 ➢ 「サムネイル」タブでは、ツリー全体を見る ことが出来ます。メインウィンドウでは3 ノードのみ表示しています。 ➢ サムネイルタブのボックスを操作してメイン ウィンドウ内のビューを動かすことができま す。もしくはメインウィンドウ内のスクロー ルバーを使用することも可能です。 ➢ メインウィンドウのズーム率を変更可能です。 ここでは複数のナビゲーション表示機能を 使用できます。 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 モデルの適用 プロジェクトの 作成 特定のモデルの 選択と検討
  38. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    39 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 モデルの適用 プロジェクトの 作成 特定のモデルの 選択と検討 「ノード2」を選択します。 2 ➢ ディシジョンツリーの各レベルには、ルールを説 明するIF/THEN文が表示されます。ツリーにレ ベルが追加されると、新たな条件がIF/THEN文 にも追加されます。 ➢ 各ノードにはサマリーが表記されます。 ➢ 個々のノードを選択すると、 IF/THEN文ルール が「ルール」タブに表示されます。 ➢ 一般的なDTモデルでは、更に多くのレベル階層 とノードを含みます。しかし今回はデータセット が通常のデータマイニングと比較して小さいため、 DTも小規模になっています。 このレベルではまず「BANK_FUNDS」属性で分割し、2番目に「CHECKING_AMOUNT」属性で 分割しています。 ノード2は「BANK_FUNDS」値が225.5より大きく、「CHECKING_AMOUNT」値が138以下である 場合に、この条件の顧客が64.9%の確率で保険を購入するであろうと予測しています。 2 ※ノードを画像コピーして別の文書に張り付けることも可能です。
  39. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    40 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 モデルの適用 プロジェクトの 作成 特定のモデルの 選択と検討 「ノード4」を選択します。 3 ディシジョンツリーの表示タブを閉じます。 4 3 このツリーでは、最終的に「CREDIT_BALANCE」属性で分割されています。 このノードは、BANK_FUNDSの値が225.5より大きく、CHECKING_AMOUNTの値が138以下、 CREDIT_BALANCEの値が1434.5以下の場合、顧客が69.39%の確率で保険を購入することを 予測しています。
  40. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    (参考)その他のモデル 41 他のモデルも確認するには、 「分類ビルド」ノードを右クリックし「モデルの表示 > CLAS_GLM_1_1」を選択します。 ウィンドウが開き、GLMモデルの詳細が表示されます。 1 ※モデル名の数字部分は異なることがあります。 結果を予測する上で重要と考えられる 属性を比較するには「係数」タブを 確認します。 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 モデルの適用 プロジェクトの 作成 特定のモデルの 選択と検討 1 2 2
  41. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    42 モデルの適用 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用
  42. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    モデルの適用 43 このトピックでは、ディシジョンツリー・モデルを適用し、結果表示要の表を作成します。 モデルを「適用」し、”保険を購入する可能性がある顧客” を予測します。 モデルを適用するには下記手順を実行します。 ① 「分類ビルド」ノード内から必要なモデルを指定 ② ワークフローに新規「データソース」ノードを追加 (このノードは「適用」を実行するためのデータ) ③ ワークフローに「適用」ノードを追加 ④ 「分類構築」ノードと新規「データソース」ノードを「適用」ノードに接続 ⑤ 「適用」ノードを実行してモデルから予測結果を取得 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用
  43. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    44 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用 ワークフローで「分類ビルド」ノードを選択します。 1 「プロパティ」タブから「モデル」セクションを表示し、DTモデル以外の選択を解除しま す。 モデルの選択を解除するには、各モデルの「出力」列にある大きな緑色の矢印「 」をク リックします。 この動作により列に小さな赤いバツ印「 」が追加され、次の構築では使用されません。 2 作業が終了したら、「プロパティ」タブの「モデル」タブは以下のように表示されます。 3 ※この場合にはDTモデルだけが後続のノードに処理が渡されます。
  44. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    45 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用 ワークフローに新たな「データソース」ノードを追加します。 「コンポーネント」の「データ」グループより、 「データソース」ノードをワークフ ローに追加します。自動的にデータ・ソースの定義ウィザードが開きます。 4 ※予測用に新しいデータセットを受け取り、それをデータソースとして活用する場合を想定しています。 但し、今回は既存データを流用します。(モデル構築で使用したデータと同じものを使用します) 4 ※ ワークスペース上のノード名とモデル名は自動生成されます。今回「データソース」という名前で生成 されましたが、異なる名称になる場合もあります。これらの名前をクリックして変更、もしくはプロパ ティ・タブから変更可能です。
  45. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    46 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用 「使用可能な表/ビュー」リストから「DMUSER.INSUR_CUST_LTV_SAMPLE」を 選択します。 ※ウィザード下部にタブが2つあり、選択表の内容を表示できます。「列」タブには、 表構造についての情報が表示され、「データ」タブには選択した表もしくはビューの データの一部が表示されます。 5 「次へ」をクリックします。 6 ここではデータソース内の不必要な列を削除できますが、今回は表に定義されたすべての 属性を残すので「終了」をクリックします。 7 ノード名が選択した表名に更新され、このノードのプロパティが「プロパティ」タブに表示 されます。「プロパティ」タブが開いていない場合、「表示 > プロパティ」を選択します。 8 5 6 7
  46. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    47 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用 新しい「データソース」ノードを選択し、「プロパティ」タブの「詳細」セクションを 使って、ノード名を「予測用顧客情報」に変更します。新規表名がワークフローにも反映 されます。 9 「コンポーネント」の「モデル操作」グループより、「適用」ノードをワークフローに 追加します。 10 ※ノード上の マークは、「適用」ノードの実行にはさらに情報が必要でありことを示します。 9 10
  47. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    48 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用 「分類ビルド」ノードを「適用」ノードに接続します。 11 「予測用顧客情報」ノードを「適用」ノードに接続します。 12 ※2回目の接続が完了すると「適用」ノードの教会戦場の黄色の マークが消えます。 これはノードを実行する準備が出来ていることを示します。 適用するモデルノードを実行する前に、結果のアウトプットを検証します。 デフォルトの設定では「適用」ノードはそれぞれの顧客に対して下記2列の情報を生成します。 ➢ 予測値(YesまたはNo) ➢ 予測の確率 ➢ ※(DTモデルの場合のみ)予測のコスト この2列の情報に加えて、それぞれの予測結果がどの顧客のものであるかが重要となります。 そのためには、適用されたアウトプットに追加で「CUSTOMER_ID」を追加する必要があります。 以降の順序にしたがって、アウトプットに顧客IDを追加します。 12 11
  48. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    49 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用 「適用」ノードを右クリックし「編集」を選択します。 13 「予測」タブのケースIDに「CUSTOMER_ID」を設定します。 14 14 「追加出力」タブで「リセット」をクリックして 「 」をクリック、使用可能な属性から 「CUSTOMER_ID」列を選択し > で 追加して「OK」をクリックします。 16 16 これでモデルを適用する準備ができましたので「適用」ノードを右クリックし実行します。 17 ➢ ワークフロードキュメントが自動的に保存され、実行中は歯車アイコンが それぞれのノード上に表示されます。 ➢ 実行ステータスはワークフロー上部に表示されます。 ➢ 処理が完了すると、正常に完了したことを示すために、すべてのワークフ ローノードに緑のチェックマークアイコンが表示されます。 15 「自動設定」のチェックを外します。 15 16
  49. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    50 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用 「コンポーネント」の「データ」グループより、 「表またはビューの作成」ノードを ワークフローに追加すると、「OUTPUT」ノードが作成されます。 18 「適用」ノードを「OUTPUT」ノードに接続します。 19 【オプション】データベース表を作成しモデルの予測結果(「適用」ノードの実行結果)を保存 OUTPUTノードを右クリックし、「編集」を選択します。 20 「表またはビュー作成ノードの編集」ウィンドウで 「名前」欄に「OUTPUT_PRED」と入力し、 「OK」をクリックします。 21 表名を指定します。 18 19 21
  50. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    51 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用 「OUTPUT_PRED」ノードを「実行」します。 22 ➢ プロセスが実行されると、ワークフロードキュメントが 自動的に保存されます。 ➢ 完了すると全ノードに緑色の「✔」マークがつきます。 ➢ アウトプットノードを実行すると、スキーマ内に表が 作成されます。 22 「接続」タブを開きます。 「dmuser」データベースの「表」をクリックして開き、「OUTPUT_PRED」テーブル が作成されていることを確認します。 23 23 23
  51. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    52 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用 結果を表示します。 24 (a) 「OUTPUT_PRED」ノードを右クリックし、「データの表示」を選択すると、新し いタブに表の内容が表示されます。表には3つの予測データと顧客ID列の4つの列が含 まれます。 (b) ソートボタンをクリックします。任意の列を基に表を並べ替えることができます。 (c) 予測値(CLAS_DT_1_1_PRED)を降順で選択します。 (b) 予測確率(CLAS_DT_1_1_PROB)を降順で選択します。 c d b
  52. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    53 ワークフローの 作成 データソースの 追加 データの 可視化 分類モデルの 作成 モデルの比較 特定のモデルの 選択と検討 プロジェクトの 作成 モデルの適用 ソート適用の「OK」をクリックし、結果を表示します。 25 ➢ 「フィルタ」ボックスにWHERE句を入力することでデータをフィルタリングできます。 ➢ 表の内容は、Oracle Data VisualizationやOracle Application ExpressなどのOracle Database に接続可能な任意のアプリケーションを使用して表示できます。 結果表示を確認し、「予測結果」表のタブを閉じ、 「すべての保存」をクリックします。 26
  53. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    分類ビルド時に構築したモデルの詳細設定を確認する 55 ワークフローの 作成 データソースの 追加 データの 可視化 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 分類モデルの 作成 ※詳細モデル設定ウィンドウでは、4つの分類アルゴリズムのそれぞれについて、データの使用方法、アルゴリズム設定、 パフォーマンス設定を変更できます。 ※赤い「 」もしくは緑の「 」アイコンをクリックして、任意のアルゴリズムを削除・追加ができます。 任意のアルゴリズム(ここではGeneralized Linear Model (GLM))をダブルクリックし、 詳細モデル設定ウィンドウを表示します。 2 2 「分類ビルド」ノードをダブルクリックします。 1 1
  54. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    56 ワークフローの 作成 データソースの 追加 データの 可視化 モデルの比較 特定のモデルの 選択と検討 モデルの適用 プロジェクトの 作成 分類モデルの 作成 「分類ビルド」ノードをダブルクリックし、「入力」タブをクリックします。 5 「入力を自動的に判定」チェックを外し、使用したい列を選択します。 (「入力」列の をクリックして「使用する」「使用しない」を選択します。 が「使用しない」ことを示します。) 6 今回は、予測したい「BUY_INSURANCE」をターゲットに列の詳細を確認しました。 ハンズオン内では「分類ビルド」ノードで使用する列は、Oracle Data Minerが自動的に 選択しましたが、データ分析者が明示的に選択することも可能です。 5 6
  55. Copyright © 2018 Oracle and/or its affiliates. All rights reserved.

    Oracle Data Miner: 参考資料 • Oracle Data Miner ドキュメント • ※SQL Developerの製品ドキュメントから、 Oracle Data Miner ユーザーズガイドをご参照ください • 18.3 (英語):https://docs.oracle.com/en/database/oracle/sql- developer/18.3/books.html • 18.1 (日本語):https://docs.oracle.com/cd/E99987_01/index.htm • Oracle Database 18c • https://docs.oracle.com/cd/E96517_01/books.html • エラー・メッセージ • Data Mining概要 / Data Miningユーザーズ・ガイド / Data Mining APIガイド 57