22 データ・マイニングAPIについて

Oracle Data Miningのアプリケーション・プログラミング・インタフェース(API)コンポーネントの概要です。

22.1 マイニング・モデルについて

マイニング・モデルは、データ・マイニングを実行するデータベース・スキーマ・オブジェクトです。

すべてのスキーマ・オブジェクトと同様に、マイニング・モデルへのアクセスは、データベース権限によって制御されます。モデルはエクスポートとインポートが可能です。モデルではコメントをサポートしており、またデータベース監査システムでモデルを追跡することもできます。

マイニング・モデルは、DBMS_DATA_MINING PL/SQLパッケージのCREATE_MODELプロシージャによって作成されます。モデルは特定のマイニング機能に対して作成され、その機能を実行するために特定のアルゴリズムを使用します。マイニング機能とは、解決対象となるマイニング問題のクラスを表すデータ・マイニング用語です。マイニング機能の例としては、回帰、分類、属性評価、クラスタリング、異常検出および特徴抽出が挙げられます。Oracle Data Miningでは、マイニング機能ごとに1つ以上のアルゴリズムをサポートしています。

注意:

ほとんどの種類のマイニング・モデルは、データのスコアリングに使用できます。ただし、モデルを適用せずにデータをスコアリングすることもできます。動的スコアリングと予測分析では、ユーザーが提供するモデルなしでスコアリング結果を戻します。この場合、表示されない一時モデルを作成して適用します。

22.2 データ・マイニングのデータ・ディクショナリ・ビュー

Oracle Data Miningのデータ・ディクショナリ・ビューをリストします

Oracle Data Miningのデータ・ディクショナリ・ビューを次の表に示します。ビューのデータベース管理者(DBA)およびUSERバージョンも使用可能です。

表22-1 Oracle Data Miningのデータ・ディクショナリ・ビュー

ビュー名 説明

ALL_MINING_MODELS

アクセス可能なすべてのマイニング・モデルに関する情報を示します

ALL_MINING_MODEL_ATTRIBUTES

アクセスできるすべてのマイニング・モデルの属性に関する情報を提供する。

ALL_MINING_MODEL_PARTITIONS

アクセスできるすべてのパーティション化されたマイニング・モデルのパーティションに関する情報を提供する。

ALL_MINING_MODEL_SETTINGS

アクセスできるすべてのマイニング・モデルの構成設定に関する情報を提供する。

ALL_MINING_MODEL_VIEWS

アクセスできるすべてのマイニング・モデルのモデル・ビューに関する情報を提供する。

ALL_MINING_MODEL_XFORMS

アクセス可能なすべてのマイニング・モデルに埋め込まれたユーザー指定変換を提供する。

22.2.1 ALL_MINING_MODELS

ALL_MINING_MODELSの例を説明し、サンプル問合せを示します。

次の例は、ALL_MINING_MODELSを説明し、サンプル問合せを示します。

例22-1 ALL_MINING_MODELS

 describe ALL_MINING_MODELS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(128)
 MODEL_NAME                                NOT NULL VARCHAR2(128)
 MINING_FUNCTION                                    VARCHAR2(30)
 ALGORITHM                                          VARCHAR2(30)
 CREATION_DATE                             NOT NULL DATE
 BUILD_DURATION                                     NUMBER
 MODEL_SIZE                                         NUMBER
 PARTITIONED                                        VARCHAR2(3)
 COMMENTS                                           VARCHAR2(4000)

次の問合せでは、サポート・ベクター・マシン・アルゴリズムを使用するユーザーがアクセス可能なモデルが戻されます。

SELECT mining_function, model_name
    FROM all_mining_models
    WHERE algorithm = 'SUPPORT_VECTOR_MACHINES'
    ORDER BY mining_function, model_name;

MINING_FUNCTION           MODEL_NAME                                            
------------------------- --------------------                                  
CLASSIFICATION            PART2_CLAS_SAMPLE                                     
CLASSIFICATION            PART_CLAS_SAMPLE                                      
CLASSIFICATION            SVMC_SH_CLAS_SAMPLE                                   
CLASSIFICATION            SVMO_SH_CLAS_SAMPLE                                   
CLASSIFICATION            T_SVM_CLAS_SAMPLE                                     
REGRESSION                SVMR_SH_REGR_SAMPLE  

22.2.2 ALL_MINING_MODEL_ATTRIBUTES

ALL_MINING_MODEL_ATTRIBUTESの例を説明し、サンプル問合せを示します。

次の例は、ALL_MINING_MODEL_ATTRIBUTESを説明し、サンプル問合せを示します。属性とは、モデルの作成とデータのスコアリングに使用された予測子または条件です。

例22-2 ALL_MINING_MODEL_ATTRIBUTES

describe ALL_MINING_MODEL_ATTRIBUTES
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(128)
 MODEL_NAME                                NOT NULL VARCHAR2(128)
 ATTRIBUTE_NAME                            NOT NULL VARCHAR2(128)
 ATTRIBUTE_TYPE                                     VARCHAR2(11)
 DATA_TYPE                                          VARCHAR2(106)
 DATA_LENGTH                                        NUMBER
 DATA_PRECISION                                     NUMBER
 DATA_SCALE                                         NUMBER
 USAGE_TYPE                                         VARCHAR2(8)
 TARGET                                             VARCHAR2(3)
 ATTRIBUTE_SPEC                                     VARCHAR2(4000)

次の問合せでは、T_SVM_CLAS_SAMPLEというSVM分類モデルの属性が戻されます。このモデルは質的属性と量的属性の両方を持ち、非構造化テキストである属性を1つ含んでいます。

SELECT attribute_name, attribute_type, target
    FROM all_mining_model_attributes
    WHERE model_name = 'T_SVM_CLAS_SAMPLE'
    ORDER BY attribute_name;

ATTRIBUTE_NAME            ATTRIBUTE_TYPE       TAR                              
------------------------- -------------------- ---                              
AFFINITY_CARD             CATEGORICAL          YES                              
AGE                       NUMERICAL            NO                               
BOOKKEEPING_APPLICATION   NUMERICAL            NO                               
BULK_PACK_DISKETTES       NUMERICAL            NO                               
COMMENTS                  TEXT                 NO                               
COUNTRY_NAME              CATEGORICAL          NO                               
CUST_GENDER               CATEGORICAL          NO                               
CUST_INCOME_LEVEL         CATEGORICAL          NO                               
CUST_MARITAL_STATUS       CATEGORICAL          NO                               
EDUCATION                 CATEGORICAL          NO                               
FLAT_PANEL_MONITOR        NUMERICAL            NO                               
HOME_THEATER_PACKAGE      NUMERICAL            NO                               
HOUSEHOLD_SIZE            CATEGORICAL          NO                               
OCCUPATION                CATEGORICAL          NO                               
OS_DOC_SET_KANJI          NUMERICAL            NO                               
PRINTER_SUPPLIES          NUMERICAL            NO                               
YRS_RESIDENCE             NUMERICAL            NO                               
Y_BOX_GAMES               NUMERICAL            NO 

22.2.3 ALL_MINING_MODEL_PARTITIONS

ALL_MINING_MODEL_PARTITIONSの例を説明し、サンプル問合せを示します。

次の例は、ALL_MINING_MODEL_PARTITIONSを説明し、サンプル問合せを示します。

例22-3 ALL_MINING_MODEL_PARTITIONS

describe ALL_MINING_MODEL_PARTITIONS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(128)
 MODEL_NAME                                NOT NULL VARCHAR2(128)
 PARTITION_NAME                                     VARCHAR2(128)
 POSITION                                           NUMBER
 COLUMN_NAME                               NOT NULL VARCHAR2(128)
 COLUMN_VALUE                                       VARCHAR2(4000) 

次の問合せでは、2つのパーティション化されたモデルのパーティション名およびパーティション・キー値が戻されます。モデルPART2_CLAS_SAMPLEには、システム生成されたパーティション名を持つ2列のパーティション・キーがあります。

SELECT model_name, partition_name, position, column_name, column_value
    FROM all_mining_model_partitions
    ORDER BY model_name, partition_name, position;

MODEL_NAME           PARTITION_ POSITION COLUMN_NAME          COLUMN_VALUE      
-------------------- ---------- -------- -------------------- ---------------   
PART2_CLAS_SAMPLE    DM$$_P0           1 CUST_GENDER          F                 
PART2_CLAS_SAMPLE    DM$$_P0           2 CUST_INCOME_LEVEL    HIGH              
PART2_CLAS_SAMPLE    DM$$_P1           1 CUST_GENDER          F                 
PART2_CLAS_SAMPLE    DM$$_P1           2 CUST_INCOME_LEVEL    LOW               
PART2_CLAS_SAMPLE    DM$$_P2           1 CUST_GENDER          F                 
PART2_CLAS_SAMPLE    DM$$_P2           2 CUST_INCOME_LEVEL    MEDIUM            
PART2_CLAS_SAMPLE    DM$$_P3           1 CUST_GENDER          M                 
PART2_CLAS_SAMPLE    DM$$_P3           2 CUST_INCOME_LEVEL    HIGH              
PART2_CLAS_SAMPLE    DM$$_P4           1 CUST_GENDER          M                 
PART2_CLAS_SAMPLE    DM$$_P4           2 CUST_INCOME_LEVEL    LOW               
PART2_CLAS_SAMPLE    DM$$_P5           1 CUST_GENDER          M                 
PART2_CLAS_SAMPLE    DM$$_P5           2 CUST_INCOME_LEVEL    MEDIUM            
PART_CLAS_SAMPLE     F                 1 CUST_GENDER          F                 
PART_CLAS_SAMPLE     M                 1 CUST_GENDER          M                 
PART_CLAS_SAMPLE     U                 1 CUST_GENDER          U         

22.2.4 ALL_MINING_MODEL_SETTINGS

ALL_MINING_MODEL_SETTINGSの例を説明し、サンプル問合せを示します。

次の例は、ALL_MINING_MODEL_SETTINGSを説明し、サンプル問合せを示します。設定はモデルの動作に影響します。アルゴリズムやマイニング機能に固有の設定である場合と、一般的な設定である場合があります。

例22-4 ALL_MINING_MODEL_SETTINGS

 describe ALL_MINING_MODEL_SETTINGS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(128)
 MODEL_NAME                                NOT NULL VARCHAR2(128)
 SETTING_NAME                              NOT NULL VARCHAR2(30)
 SETTING_VALUE                                      VARCHAR2(4000)
 SETTING_TYPE                                       VARCHAR2(7)

次の問合せでは、SVD_SH_SAMPLEというモデルの設定が戻されます。このモデルは、特徴抽出用に特異値分解アルゴリズムを使用します。

SELECT setting_name, setting_value, setting_type
    FROM all_mining_model_settings
    WHERE model_name = 'SVD_SH_SAMPLE'
    ORDER BY setting_name;

SETTING_NAME                   SETTING_VALUE                  SETTING           
------------------------------ ------------------------------ -------           
ALGO_NAME                      ALGO_SINGULAR_VALUE_DECOMP     INPUT             
ODMS_MISSING_VALUE_TREATMENT   ODMS_MISSING_VALUE_AUTO        DEFAULT           
ODMS_SAMPLING                  ODMS_SAMPLING_DISABLE          DEFAULT           
PREP_AUTO                      OFF                            INPUT             
SVDS_SCORING_MODE              SVDS_SCORING_SVD               DEFAULT           
SVDS_U_MATRIX_OUTPUT           SVDS_U_MATRIX_ENABLE           INPUT  

22.2.5 ALL_MINING_MODEL_VIEWS

ALL_MINING_MODEL_VIEWSの例を説明し、サンプル問合せを示します。

次の例は、ALL_MINING_MODEL_VIEWSを説明し、サンプル問合せを示します。モデル・ビューでは、モデルの詳細が示されます。

例22-5 ALL_MINING_MODEL_VIEWS

describe ALL_MINING_MODEL_VIEWS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(128)
 MODEL_NAME                                NOT NULL VARCHAR2(128)
 VIEW_NAME                                 NOT NULL VARCHAR2(128)
 VIEW_TYPE                                          VARCHAR2(128)

次の問合せでは、モデルSVD_SH_SAMPLEのモデル・ビューが戻されます。このモデルは、特徴抽出用に特異値分解アルゴリズムを使用します。

SELECT view_name, view_type
    FROM all_mining_model_views
    WHERE model_name = 'SVD_SH_SAMPLE'
    ORDER BY view_name;

VIEW_NAME                 VIEW_TYPE                                             
------------------------- --------------------------------------------------    
DM$VESVD_SH_SAMPLE        Singular Value Decomposition S Matrix                 
DM$VGSVD_SH_SAMPLE        Global Name-Value Pairs                               
DM$VNSVD_SH_SAMPLE        Normalization and Missing Value Handling              
DM$VSSVD_SH_SAMPLE        Computed Settings                                     
DM$VUSVD_SH_SAMPLE        Singular Value Decomposition U Matrix                 
DM$VVSVD_SH_SAMPLE        Singular Value Decomposition V Matrix                 
DM$VWSVD_SH_SAMPLE        Model Build Alerts 

22.2.6 ALL_MINING_MODEL_XFORMS

ALL_MINING_MODEL_XFORMSの例を説明し、サンプル問合せを示します。

次の例は、ALL_MINING_MODEL_XFORMSを説明し、サンプル問合せを示します。

例22-6 ALL_MINING_MODEL_XFORMS

describe ALL_MINING_MODEL_XFORMS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(128)
 MODEL_NAME                                NOT NULL VARCHAR2(128)
 ATTRIBUTE_NAME                                     VARCHAR2(128)
 ATTRIBUTE_SUBNAME                                  VARCHAR2(4000)
 ATTRIBUTE_SPEC                                     VARCHAR2(4000)
 EXPRESSION                                         CLOB
 REVERSE                                            VARCHAR2(3)

次の問合せでは、モデルPART2_CLAS_SAMPLEの埋め込まれた変換が戻されます。

SELECT attribute_name, expression
    FROM all_mining_model_xforms
    WHERE model_name = 'PART2_CLAS_SAMPLE'
    ORDER BY attribute_name;

ATTRIBUTE_NAME                                                                  
-------------------------                                                       
EXPRESSION                                                                      
--------------------------------------------------------------------------------
CUST_INCOME_LEVEL                                                               
CASE CUST_INCOME_LEVEL WHEN 'A: Below 30,000' THEN 'LOW'                        
    WHEN 'L: 300,000 and above' THEN 'HIGH'                                     
    ELSE 'MEDIUM' END     

22.3 データ・マイニングPL/SQLパッケージ

Oracle Data MiningのPL/SQLインタフェースは、次の3つのパッケージで実装されています。

次の表にPL/SQLパッケージを示します。

表22-2 データ・マイニングPL/SQLパッケージ

パッケージ名 説明

DBMS_DATA_MINING

マイニング・モデルの作成と管理を行うためのルーチン

DBMS_DATA_MINING_TRANSFORM

マイニング用にデータを変換するためのルーチン

DBMS_PREDICTIVE_ANALYTICS

予測分析を実行するルーチン

22.3.1 DBMS_DATA_MINING

DBMS_DATA_MININGパッケージのルーチンについて理解します。

DBMS_DATA_MININGパッケージには、マイニング・モデルの作成、マイニング・モデルに対する操作の実行およびマイニング・モデルの問合せを行うためのルーチンが含まれています。このパッケージには、次の操作を実行するためのルーチンが含まれています。

  • マイニング・モデルの作成と削除およびマイニング・モデルに対する他のDDL操作の実行

  • モデル内部で使用されるモデルの属性やルールなどの詳細情報(モデルの詳細)の取得

  • 分類モデルのテスト・メトリックの計算

  • 分類モデルのコストの指定

  • モデルのエクスポートおよびインポート

  • Oracleのネイティブ・アルゴリズムおよびRで記述されたアルゴリズムを使用したモデルの作成

22.3.2 DBMS_DATA_MINING_TRANSFORM

DBMS_DATA_MINING_TRANSFORMパッケージのルーチンについて理解します。

DBMS_DATA_MINING_TRANSFORMパッケージには、ビニング、正規化、外れ値の処理などのデータ変換を実行するルーチンが含まれています。このパッケージには、次の操作を実行するためのルーチンが含まれています。

  • マイニング・モデルに組込み可能な形式での変換の指定

  • リレーショナル・ビュー(マイニング・モデル・オブジェクトの外部).としての変換の指定

  • 作成データの列に対する個別プロパティの指定。たとえば、列が非構造化テキストとして解釈される必要があることや、列が自動データ準備から除外される必要があることを指定できます。

22.3.2.1 DBMS_DATA_MINING_TRANSFORMの変換手法

DBMS_DATA_MINING_TRANSFORMパッケージのデータを変換するための手法をまとめます。

表22-3 DBMS_DATA_MINING_TRANSFORMの変換手法

変換手法 説明

XFORMインタフェース

CREATEINSERTおよびXFORMルーチンが、外部ビューの変換を指定する。

STACKインタフェース

CREATEINSERTおよびXFORMルーチンが、モデルへの組込み用の変換を指定する。

SET_TRANSFORM

モデルへの組込み用の変換を指定する。

次の例の文は、コメント属性を非構造化テキスト・データとして処理する組込み変換を含むT_SVM_Clas_sampleというサポート・ベクター・マシン(SVM)分類モデルを作成します。

例22-7 組込み変換の例

DECLARE
  xformlist dbms_data_mining_transform.TRANSFORM_LIST;
BEGIN
  dbms_data_mining_transform.SET_TRANSFORM(
    xformlist, 'comments', null, 'comments', null, 'TEXT');
  DBMS_DATA_MINING.CREATE_MODEL(
    model_name          => 'T_SVM_Clas_sample',
    mining_function     => dbms_data_mining.classification,
    data_table_name     => 'mining_build_text',
    case_id_column_name => 'cust_id',
    target_column_name  => 'affinity_card',
    settings_table_name => 't_svmc_sample_settings',
    xform_list => xformlist);
END;
/ 

22.3.3 DBMS_PREDICTIVE_ANALYTICS

DBMS_PREDICTIVE_ANALYTICSパッケージのルーチンについて理解します。

DBMS_PREDICTIVE_ANALYTICSパッケージには、予測分析とも呼ばれるデータ・マイニングの自動化された形式を実行するルーチンが含まれています。予測分析を使用する場合、モデルの作成やスコアリングを意識する必要はありません。すべてのマイニング操作は、プロシージャによって内部的に処理されます。DBMS_PREDICTIVE_ANALYTICSパッケージには、次のルーチンが含まれています。

  • EXPLAIN: ターゲット列の説明における各属性の影響度をランク付けします。

  • PREDICT: 入力データの値に基づいてターゲット列の値を予測します。

  • PROFILE: 入力データからケースを説明するルールを生成します。

次の例のEXPLAIN文は、affinity_cardの予測における重要度の順にmining_data_build_vビューの属性をリストします。

例22-8 EXPLAIN文の例

BEGIN 
    DBMS_PREDICTIVE_ANALYTICS.EXPLAIN( 
        data_table_name      => 'mining_data_build_v', 
        explain_column_name  => 'affinity_card', 
        result_table_name    => 'explain_results'); 
END; 
/

22.4 データ・マイニングSQLスコアリング関数

様々なデータ・マイニングのSQLスコアリング関数について理解します。

データ・マイニングSQL言語関数は、Oracle Data Miningを使用してデータをスコアリングします。これらの関数は、マイニング・モデルのスキーマ・オブジェクトをデータに適用することも、分析句の実行によって動的にデータをマイニングすることもできます。SQL関数は、スコアリング操作をサポートするすべてのデータ・マイニング・アルゴリズムに使用できます。次の表にリストされている、すべてのデータ・マイニングSQL関数は、対応するマイニング機能とともにRマイニング・モデルで動作できます。ただし、関数は、ここにリストされているものに限られません。

表22-4 データ・マイニングSQL関数

ファンクション 説明

CLUSTER_ID

予測対象のクラスタのIDを戻す。

CLUSTER_DETAILS

予測対象のクラスタに関する詳細情報を戻す。

CLUSTER_DISTANCE

予測対象のクラスタの重心からの距離を戻す。

CLUSTER_PROBABILITY

特定のクラスタに属するケースの確率を戻す。

CLUSTER_SET

特定のケースが属している可能性のあるすべてのクラスタのリストと、ケースが含まれている確率を戻す。

FEATURE_COMPARE 2つの異なるドキュメントまたはキーワード・フレーズ、あるいはその両方の組合せからの類似または非類似のテキスト・セットを比較する

FEATURE_ID

最も高い係数値を持つ特徴のIDを戻す。

FEATURE_DETAILS

予測対象の特徴に関する詳細情報を戻す。

FEATURE_SET

考え得るすべての特徴が含まれているオブジェクトのリストとその係数を戻す。

FEATURE_VALUE

予測対象の特徴の値を戻す。

ORA_DM_PARTITION_NAME パーティション化されたモデルのパーティション名を戻す

PREDICTION

ターゲットの最適な予測を戻す。

PREDICTION_BOUNDS

(GLMのみ)予測値(線形回帰)または確率(ロジスティック回帰)が収まる区間の上限と下限を戻す。

PREDICTION_COST

不正確な予測のコストの測度を戻す。

PREDICTION_DETAILS

予測に関する詳細情報を戻す。

PREDICTION_PROBABILITY

予測の確率を戻す。

PREDICTION_SET

分類モデルの結果を戻す(各ケースについての予測および関連する確率を含む)。

次の例では、CLUSTER_ID関数の結果を戻す問合せを示しています。この問合せでは、特定の特性を共有する顧客のグループを検出するモデルem_sh_clus_sampleを適用します。この問合せでは、クラスタの識別子および各クラスタの顧客数が戻されます。

例22-9 CLUSTER_ID関数

-- -List the clusters into which the customers in this
-- -data set have been grouped.
--
SELECT CLUSTER_ID(em_sh_clus_sample USING *) AS clus, COUNT(*) AS cnt 
  FROM mining_data_apply_v
GROUP BY CLUSTER_ID(em_sh_clus_sample USING *)
ORDER BY cnt DESC;


SQL> -- List the clusters into which the customers in this
SQL> -- data set have been grouped.
SQL> --
SQL> SELECT CLUSTER_ID(em_sh_clus_sample USING *) AS clus, COUNT(*) AS cnt
  2    FROM mining_data_apply_v
  3  GROUP BY CLUSTER_ID(em_sh_clus_sample USING *)
  4  ORDER BY cnt DESC;
 
      CLUS        CNT
---------- ----------
         9        311
         3        294
         7        215
        12        201
        17        123
        16        114
        14         86
        19         64
        15         56
        18         36