2.3 Oracle Machine Learningのモデリング関数、変換関数および便利な関数

PL/SQLインタフェースにアクセスして、データ・モデリング、変換および予測分析を実行できます。

次の表に、Oracle Machine LearningのPL/SQLパッケージを示します。リリース21cより前のOracle Databaseリリースでは、Oracle Machine LearningOracle Data Miningという名前でした。

表2-2 Oracle Machine LearningのPL/SQLパッケージ

パッケージ名 説明

DBMS_DATA_MINING

機械学習モデルの作成と管理を行うためのルーチン

DBMS_DATA_MINING_TRANSFORM

機械学習のデータを変換するルーチン

DBMS_PREDICTIVE_ANALYTICS

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

2.3.1 DBMS_DATA_MINING

DBMS_DATA_MININGパッケージには、機械学習モデルの作成、モデルに対する操作の実行、およびモデルの問合せを行うためのルーチンが含まれています。

このパッケージには、次の操作を実行するためのルーチンが含まれています。

  • 機械学習モデルの作成と削除および機械学習モデルに対する他のDDL操作の実行

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

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

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

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

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

2.3.2 DBMS_DATA_MINING_TRANSFORM

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

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

  • 機械学習モデルに組込み可能な形式での変換の指定

  • リレーショナル・ビュー(機械学習モデル・オブジェクトの外部).としての変換の指定

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

2.3.2.1 DBMS_DATA_MINING_TRANSFORMの変換手法

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

表2-3 DBMS_DATA_MINING_TRANSFORMの変換手法

変換手法 説明

XFORMインタフェース

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

STACKインタフェース

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

SET_TRANSFORM

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

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

例2-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;
/ 

2.3.3 DBMS_PREDICTIVE_ANALYTICS

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

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

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

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

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

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

例2-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; 
/