分類のユースケース・シナリオ
あなたは、いくつかの製品を販売する小売チェーン企業で働いています。マーケティング資料のターゲットをより的確に絞るには、ホーム・シアター・パッケージを購入する見込みのある顧客を識別する必要があります。これを解決するために、ランダム・フォレスト・アルゴリズムを使用して顧客を識別しています。
関連コンテンツ
トピック | リンク |
---|---|
OML4SQL GitHubの例 | 分類 - ランダム・フォレスト |
CREATE_MODEL2 プロシージャ
|
CREATE_MODEL2プロシージャ |
一般的なモデル設定 | DBMS_DATA_MINING - モデル設定 |
ランダム・フォレストの設定 | DBMS_DATA_MINING - アルゴリズムの設定: ランダム・フォレスト |
データ・ディクショナリ設定 | Oracle Machine Learningのデータ・ディクショナリ・ビュー |
ランダム・フォレスト - モデル・ディテール・ビュー | ランダム・フォレストのモデル・ディテール・ビュー |
分類について | 分類とは |
ランダム・フォレスト(RF)について | ランダム・フォレストについて |
OML4SQLユースケースの探求を開始する前に、次の用意ができていることを確認します。
- データ・セット
このユースケースに使用されるデータ・セットは、SHスキーマからのものです。SHスキーマは、Oracle Autonomous Databaseで簡単にアクセスできます。オンプレミス・データベースの場合、スキーマはインストール時にインストールされるか、スクリプトをダウンロードして手動でインストールできます。サンプル・スキーマのインストールを参照してください。
- データベース
次のオプションからデータベースを選択または作成します:
- 無償のクラウド・アカウントを取得します。https://cloud.oracle.com/databaseにアクセスし、「Oracle Database Cloud Service (DBCS)」または「Oracle Autonomous Database」を選択します。アカウントを作成してインスタンスを作成します。Autonomous Databaseクイック・スタート・ワークショップを参照してください。
- Oracle Database (オンプレミス)の最新バージョンをダウンロードします。
- 機械学習ツール
データベースの選択内容に応じて、次のいずれかを実行します。
- Oracle Autonomous Database用のOML Notebooksを使用します。
- オンプレミス・データベースまたはDBCSに接続されたOracle SQL Developerをインストールして使用します。SQL Developerのインストールおよび起動を参照してください。
- その他の要件
データ・マイニング権限(ADWに対して自動的に設定されます)。Oracle Machine Learning for SQLのためのシステム権限を参照してください。
関連トピック
データのロード
SHスキーマからデータ・セットにアクセスし、属性を理解するためにデータを探索します。
注意:
このユースケースに使用されるデータ・セットは、SHスキーマからのものです。SHスキーマは、Oracle Autonomous Databaseで簡単にアクセスできます。オンプレミス・データベースの場合、スキーマはインストール時にインストールされるか、スクリプトをダウンロードして手動でインストールできます。サンプル・スキーマのインストールを参照してください。
- データにアクセスします。
- データ・セットの様々な属性または列を詳細に調べます。
- データ品質を(データを探索することで)評価します。
データへのアクセス
SHスキーマのCUSTOMERS
およびSUPPLEMENTARY_DEMOGRAPHICS
表データを使用します。
データの調査
次の表に、SUPPLEMENTARY_DEMOGRAPHICS
の属性に関する情報を示します。
属性名 | 情報 |
---|---|
CUST_ID |
顧客のID |
EDUCATION |
顧客の教育情報 |
OCCUPATION |
顧客の職業 |
HOUSEHOLD_SIZE |
一戸当たりの人数 |
YRS_RESIDENCE |
居住年数 |
AFFINITY_CARD |
顧客がアフィニティ・カードを保有するかどうか |
BULK_PACK_DISKETTES |
製品。顧客がすでに当該製品を所有しているかどうかを示します。 1は「はい」を意味します。0は「いいえ」を意味します |
FLAT_PANEL_MONITOR |
製品。顧客がすでに当該製品を所有しているかどうかを示します。 1は「はい」を意味します。0は「いいえ」を意味します |
HOME_THEATER_PACKAGE |
製品。顧客がすでに当該製品を所有しているかどうかを示します。 1は「はい」を意味します。0は「いいえ」を意味します |
BOOKKEEPING_APPLICATION |
製品。顧客がすでに当該製品を所有しているかどうかを示します。 1は「はい」を意味します。0は「いいえ」を意味します |
PRINTER_SUPPLIES |
製品。顧客がすでに当該製品を所有しているかどうかを示します。 1は「はい」を意味します。0は「いいえ」を意味します |
Y_BOX_GAMES |
製品。顧客がすでに当該製品を所有しているかどうかを示します。 1は「はい」を意味します。0は「いいえ」を意味します |
OS_DOC_SET_KANJI |
製品。顧客がすでに当該製品を所有しているかどうかを示します。 1は「はい」を意味します。0は「いいえ」を意味します |
COMMENTS |
製品。顧客がすでに当該製品を所有しているかどうかを示します。 1は「はい」を意味します。0は「いいえ」を意味します |
データの探索
データを調べ、データの品質を理解して評価します。このステージでは、データを評価してデータ内のデータ型およびノイズを識別します。欠損値および数値外れ値を探します。
データ品質の評価
データを評価するには、まずデータベース内のデータを表示できる必要があります。このため、SQL文を使用してSH.CUSTOMERS
表およびSH.SUPPLEMENTARY_DEMOGRAPHICS
表を問い合せます。
SH
スキーマを問い合せます。
ノート:
データベース内の各レコードはケースと呼ばれ、各ケースはcase_id
で識別されます。このユースケースでは、CUST_ID
がcase_id
です。
これで、データの探索ステージが完了します。OMLでは、自動データ準備(ADP)をサポートしています。ADPはモデル設定によって有効になります。ADPを有効にすると、アルゴリズムで必要とされる変換が自動的に実行され、モデルに埋め込まれます。このステップは、モデルの構築ステージで実行します。一般的に使用されるデータの準備方法には、ビニング、正規化、欠損値の処理があります。
関連トピック
モデルの構築
トレーニング・データ・セットを使用してモデルを構築します。DBMS_DATA_MINING.CREATE_MODEL2
プロシージャを使用してモデルを構築し、モデル設定を指定します。
分類などの教師あり学習の場合は、モデルを作成する前にデータをトレーニング・データとテスト・データに分割します。データ・セット全体を使用してモデルを構築することはできますが、使用可能な新しいデータ・セットがないかぎり、モデルの検証は困難です。したがって、モデルを評価し、同じデータに対するモデルのパフォーマンスを正確に査定するには、通常、データをトレーニング・データとテスト・データに分割(分離)します。トレーニング・データ・セットを使用してモデルをトレーニングした後、テスト・データ・セットを使用して予測問合せを実行し、モデルの精度をテストします。テスト・データ・セットには、予測する属性の既知の値がすでに含まれています。したがって、モデルの予測が正しいかどうかを簡単に判断できます。
アルゴリズムの選択
モデルを構築する前に、適切なアルゴリズムを選択します。次のアルゴリズムのいずれかを選択して、分類の問題を解決できます。
- デシジョン・ツリー
- 明示的セマンティック分析(ESM)
- 一般化線形モデル(GLM)
- Naive Bayes
- ランダム・フォレスト
- サポート・ベクター・マシン(SVM)
- XGBoost
前述のアルゴリズムから、ESMはどちらかといえば、自然言語処理(NLP)およびテキスト・マイニングに関するものです。ESMは、このユースケースおよびデータには適用されません。GLMなどの比較的単純な線形モデルを選択した場合、予測精度はランダム・フォレスト・アルゴリズムによってさらに向上させることができます。ランダム・フォレストは、毎回再サンプリングされるデータのサブセットについて複数のデシジョン・ツリーを構築するアンサンブル手法(バギング)です。これにより、1つのデシジョン・ツリーに対するオーバーフィッティングが回避されます。ランダム・フォレスト・モデルは、線形モデルよりも精度が高いことが知られている、広く使用されているアンサンブル手法です。したがって、このユースケースではランダム・フォレストを選択します。
このユース・ケースの場合、トレーニング・データとテスト・データとしてデータを60対40に分割します。トレーニング・データを使用してモデルを構築し、モデルが構築されたら、そのモデルを使用してテスト・データをスコアリングします。
次のステップでは、データを分割し、選択したアルゴリズムを使用してモデルを構築する方法について説明します。
評価
診断メトリックを表示し、品質チェックを実行してモデルを評価します。
ディクショナリ・ビューおよびモデル・ディテール・ビューを問い合せれば、モデルのパフォーマンスを測定するのに十分な場合もあります。ただし、平均絶対誤差(MAE)、二乗平均平方根誤差(RMSE)、混同行列、リフト統計、コスト行列などのテスト・メトリックを計算して、モデルを評価できます。相関ルールの場合、様々なルールを調査して、それらによって項目の依存関係(前件の項目セットが後件を暗に示す)または項目間の想定外の関係について新しいインサイトが明らかになるかどうかを確認できます。
ディクショナリ・ビューおよびモデル・ビュー
モデルおよびビュー・モデル設定に関する情報を取得するには、データ・ディクショナリ・ビューおよびモデル・ディテール・ビューを問い合せることができます。モデル・ディテール・ビューの特定のビューには、モデルの評価に役立つモデル統計が表示されます。
次の表に、Oracle Machine Learningのデータ・ディクショナリ・ビューを示します。ビューのデータベース管理者(DBA)およびUSERバージョンも使用可能です。
ビュー名 | 説明 |
---|---|
ALL_MINING_MODELS | アクセス可能なすべての機械学習モデルに関する情報を示します |
ALL_MINING_MODEL_ATTRIBUTES | アクセス可能なすべての機械学習モデルの属性に関する情報を示します |
ALL_MINING_MODEL_SETTINGS | アクセス可能なすべての機械学習モデルの構成設定に関する情報を示します |
ALL_MINING_MODEL_VIEWS | アクセス可能なすべての機械学習モデルのモデル・ビューに関する情報を示します |
ALL_MINING_MODEL_XFORMS | アクセス可能なすべての機械学習モデルに埋め込まれたユーザー指定の変換を示します。 |
モデル・ディテール・ビューはアルゴリズムに固有です。モデル・ディテール・ビューを表示することで、作成したモデルに関する詳細なインサイトを取得できます。モデル・ディテール・ビューの名前はDM$xxで始まります(xxはビュー接頭辞に相当します)。「モデル・ディテール・ビュー」を参照してください。
次のステップを使用すると、様々なディクショナリ・ビューおよびモデル・ディテール・ビューを表示できます。
関連トピック
モデルのテスト
このユースケースでは、既知のターゲット値を持つテスト・データについてリフトおよび混同行列を計算し、予測値を既知の値と比較することによって分類モデルを評価します。
リフトは、ランダムに生成された予測と比較して、分類モデルの予測がどの程度信頼できるかを計算したものです。リフトは、モデルによる正確なポジティブ分類の割合対テスト・データでの実際のポジティブ分類の割合という、2つの割合の比率として考えることができます。
混同マトリックスは、モデルによる予測をテスト・データでの実際の分類と比較した場合の、正確な予測と不正確な予測の数を表したものです。この行列はn×nの行列(nはクラスの数)です。
関連トピック