29 データ・マイニングのサンプル・プログラム

Oracle Databaseに付属しているデータ・マイニング・サンプル・プログラムについて説明します。

29.1 データ・マイニングのサンプル・プログラムについて

データ・マイニングのサンプル・プログラムから、Oracle Data Miningアプリケーション・プログラミング・インタフェース(API)について多くを学ぶことができます。これらのプログラムは、データの準備、アルゴリズムの選択、アルゴリズムのチューニング、テストおよびスコアリングを行うための一般的な方法を示しています。

プログラムは簡単に使用できます。プログラムには、コードの理解に役立つインライン・コメントが多数含まれています。プログラムの終了時にはすべての一時オブジェクトが削除されますので、セットアップやクリーンアップなしでプログラムを繰り返し実行できます。

データ・マイニングのサンプル・プログラムは、Oracle Database Examplesを使用して、Oracleホームのデモ・ディレクトリにインストールされます。デモ・ディレクトリには、Oracle Databaseの様々な機能を示すサンプル・プログラムが含まれています。データ・マイニングのファイルは、dm*.sqlのディレクトリ・リスティングを実行することで検出できます。次の例は、Linuxシステムにおけるディレクトリ・リスティングを示しています。

次の例のディレクトリ・リスティングには、dmhpdemo.sqlというデータ・マイニング・プログラムではないファイルが1つ含まれていることに注目してください。

例29-1 データ・マイニングのサンプル・プログラムのディレクトリ・リスティング

> cd $ORACLE_HOME/rdbms/demo
> ls dm*.sql
dmaidemo.sql      dmkmdemo.sql    dmsvddemo.sql              
dmardemo.sql      dmnbdemo.sql    dmsvodem.sql    
dmdtdemo.sql      dmnmdemo.sql    dmsvrdem.sql               
dmdtxvlddemo.sql  dmocdemo.sql    dmtxtnmf.sql                      
dmemdemo.sql      dmsh.sql        dmtxtsvm.sql
dmglcdem.sql      dmshgrants.sql                          
dmglrdem.sql      dmstardemo.sql                          
dmhpdemo.sql      dmsvcdem.sql

データ・マイニングのサンプル・プログラムは、ユーザー・スキーマ内のマイニング・モデルのセットを作成します。プログラムの実行後、次の例に示すような問合せを使用してモデルをリストできます。

例29-2 サンプル・プログラムで作成されたモデル

SELECT mining_function, algorithm, model_name FROM user_mining_models
    ORDER BY mining_function;
 
MINING_FUNCTION                ALGORITHM                      MODEL_NAME
------------------------------ ------------------------------ -------------------
ASSOCIATION_RULES              APRIORI_ASSOCIATION_RULES      AR_SH_SAMPLE
CLASSIFICATION                 GENERALIZED_LINEAR_MODEL       GLMC_SH_CLAS_SAMPLE
CLASSIFICATION                 SUPPORT_VECTOR_MACHINES        T_SVM_CLAS_SAMPLE
CLASSIFICATION                 SUPPORT_VECTOR_MACHINES        SVMC_SH_CLAS_SAMPLE
CLASSIFICATION                 SUPPORT_VECTOR_MACHINES        SVMO_SH_CLAS_SAMPLE
CLASSIFICATION                 NAIVE_BAYES                    NB_SH_CLAS_SAMPLE
CLASSIFICATION                 DECISION_TREE                  DT_SH_CLAS_SAMPLE
CLUSTERING                     EXPECTATION_MAXIMIZATION       EM_SH_CLUS_SAMPLE
CLUSTERING                     O_CLUSTER                      OC_SH_CLUS_SAMPLE
CLUSTERING                     KMEANS                         KM_SH_CLUS_SAMPLE
CLUSTERING                     KMEANS                         DM_STAR_CLUSTER
FEATURE_EXTRACTION             SINGULAR_VALUE_DECOMP          SVD_SH_SAMPLE
FEATURE_EXTRACTION             NONNEGATIVE_MATRIX_FACTOR      NMF_SH_SAMPLE
FEATURE_EXTRACTION             NONNEGATIVE_MATRIX_FACTOR      T_NMF_SAMPLE
REGRESSION                     SUPPORT_VECTOR_MACHINES        SVMR_SH_REGR_SAMPLE
REGRESSION                     GENERALIZED_LINEAR_MODEL       GLMR_SH_REGR_SAMPLE

29.2 データ・マイニングのサンプル・プログラムのインストール

データ・マイニングのサンプル・プログラムのインストール方法について説明します。

データ・マイニングのサンプル・プログラムには、次が必要です。

  • Oracle Database Enterprise EditionおよびAdvanced Analyticsオプション

  • Oracle Databaseのサンプル・スキーマ

  • Oracle Database Examples

  • データ・マイニングのユーザー・アカウント

  • システム管理者によるdmshgrants.sqlの実行

  • データ・マイニング・ユーザーによるdmsh.sqlの実行

次の手順に従って、データ・マイニングのサンプル・プログラムをインストールします。

  1. Oracle Database 12c Enterprise EditionとAdvanced Analyticsオプションをインストールするか、またはこれらへのアクセスを取得します。データベースをインストールするには、Oracle Database 12c リリース2でご使用のプラットフォームのインストール手順を参照してください。

  2. データベースにサンプル・スキーマがインストールされていることを確認します。サンプル・スキーマは、デフォルトでOracle Databaseとともにインストールされます。サンプル・スキーマの詳細は、Oracle Databaseのサンプル・スキーマを参照してください。

  3. Oracle Database Examplesがデータベースとともにインストールされていることを確認するか、またはOracle Database Examplesをローカルにインストールします。Oracle Database Examplesは、データベースのサンプル・プログラムをOracleホームのrdbms/demoディレクトリにロードします。インストール手順については、Oracle Database Examplesのインストレーション・ガイドを参照してください。

  4. データ・マイニングのユーザー・アカウントが作成されていることを確認するか、管理権限を所有している場合は、独自にデータ・マイニングのユーザー・アカウントを作成します。「データ・マイニング・ユーザーの作成」を参照してください。

  5. システム管理者に依頼してdmshgrants.sqlを実行するか、管理権限を持っている場合は自分で実行します。dmshgrantsによって、サンプル・プログラムを実行するために必要な権限が付与されます。これらには、「データ・マイニングのサンプル・データ」で説明されているSHスキーマの表に対するSELECTアクセス権と、次の表にリストされているシステム権限が含まれます。

    データ・マイニング・ユーザーの名前をdmshgrantsに渡します。

    SQL> CONNECT sys / as sysdba
    Enter password: sys_password
    Connected.
    SQL> @ $ORACLE_HOME/rdbms/demo/dmshgrants dmuser

    表29-1 dmshgrants.sqlによってデータ・マイニング・ユーザーに付与されるシステム権限

    権限 データ・マイニング・ユーザーに許可される操作

    CREATE SESSION

    データベース・セッションへのログイン

    CREATE TABLE

    表(CREATE_MODEL用の設定表など)の作成

    CREATE VIEW

    ビュー(SHスキーマの表のビューなど)の作成

    CREATE MINING MODEL

    データ・マイニング・モデルの作成

    EXECUTE ON ctxsys.ctx_ddl

    ctxsys.ctx_ddl PL/SQLパッケージのプロシージャの実行(テキスト・マイニングには必須)

  6. データ・マイニング・ユーザーとしてデータベースへ接続し、dmsh.sqlを実行します。このスクリプトは、データ・マイニング・ユーザーのスキーマ内のサンプル・データのビューを作成します。

    SQL> CONNECT dmuser
    Enter password: dmuser_password
    Connected.
    SQL> @ $ORACLE_HOME/rdbms/demo/dmsh

29.3 データ・マイニングのサンプル・データ

データ・マイニングのサンプル・プログラムで使用されるデータは、SHスキーマの次の表に基づいています。

SH.CUSTOMERS 
SH.SALES 
SH.PRODUCTS 
SH.SUPPLEMENTARY_DEMOGRAPHICS
SH.COUNTRIES 

dmshgrantsスクリプトは、SHの表にSELECTアクセス権を付与します。dmsh.sqlスクリプトは、データ・マイニング・ユーザーのスキーマ内のSH表のビューを作成します。各ビューについて、次の表で説明します。

表29-2 データ・マイニングのサンプル・データ

ビュー名 説明

MINING_DATA

データの結合とフィルタリング

MINING_DATA_BUILD_V

モデルの作成用のデータ

MINING_DATA_TEST_V

モデルのテスト用のデータ

MINING_DATA_APPLY_V

スコアリング対象のデータ

MINING_BUILD_TEXT

テキストを含むモデルの作成用のデータ

MINING_TEST_TEXT

テキストを含むモデルのテスト用のデータ

MINING_APPLY_TEXT

スコアリング対象となる、テキスト列を含むデータ

MINING_DATA_ONE_CLASS_V

異常検出用のデータ

相関ルール・プログラムは、独自のトランザクショナル・データを作成します。