ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
11g リリース1(11.1)
E05686-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

39 DBMS_DATA_MINING_TRANSFORM

DBMS_DATA_MINING_TRANSFORMパッケージには、データのマイニングの準備に使用できる変換ルーチンが含まれています。


関連項目:

  • 第38章「DBMS_DATA_MINING」

  • Oracle Data Miningの自動データ変換および埋込みデータ変換の詳細は、『Oracle Data Mining概要』を参照してください。


この章では、次の項目について説明します。


DBMS_DATA_MINING_TRANSFORMの使用方法

この項では、DBMS_DATA_MINING_TRANSFORMパッケージの使用に関連する項目について説明します。


Oracle Data Miningによるデータ変換

変換とは、データ・マイニングで使用される1つ以上の列を変更するSQL式のことです。

ほとんどのデータ・マイニング・アルゴリズムでは、なんらかの形式のデータ変換が必要です。 質的属性または量的属性、あるいはその両方について、なんらかの変換が必要になることがあります。モデルの作成、テストおよびスコアリングに使用されるすべてのデータ・セットに対して、同じ変換を行う必要があります。各データ・セットの変更の複製には、非常に時間がかかる場合があります。

Oracle Data Miningは、変換式をモデルに埋め込みます。モデルの作成に使用する変換は、モデルが適用されるすべてのデータ・セットに対して自動的に実行されます。モデルとともにその変換もデプロイするこの機能によって、モデルの使いやすさが大幅に向上し、モデル管理のプロセスも簡単になります。

Oracle Data Miningによって提供される自動データ準備モード(ADP)で、データ変換プロセスがさらに簡単になります。ADPを使用してモデルを作成すると、アルゴリズムの要件に従ってトレーニング・データが自動的に変換されます。この自動変換はモデルに埋め込まれます。 ADPを使用可能にするには、モデルの設定表でPREP_AUTO設定をPREP_AUTO_ONに設定します。


関連項目:

PREP_AUTO設定については、第38章「DBMS_DATA_MINING」表38-6を参照してください。

変換式のリストをDBMS_DATA_MINING.CREATE_MODELに渡すことによって、自動変換を補完できます。ユーザー独自の変換は、自動変換とともにモデルに埋め込まれます。 ADPがオフになっている場合は、CREATE_MODELに渡す変換のみが埋め込まれます。


関連項目:

変換リスト・パラメータについては、第38章「DBMS_DATA_MINING」「CREATE_MODELプロシージャ」を参照してください。

DBMS_DATA_MINING_TRANSFORMのルーチンは、ユーザー独自の変換を作成する場合に役立つルーチンです。 これらのルーチンでニーズが満たされない場合は、それらのルーチンを変更するSQLを作成するか、または独自のルーチンを作成できます。


表記法に関する注意:

この章では、数値集合を表すときに標準的な範囲表記法を使用します。

  • [a,b]は、a以上かつb以下の実数の集合です。

  • [a,b)は、a以上かつb未満の実数の集合です。

bは、集合[a,b]に属しますが、集合[a,b)には属しません。)



変換の種類

DBMS_DATA_MINING_TRANSFORMパッケージでは、データ・マイニングで通常使用される変換(ビニング、正規化、外れ値処理、欠損値処理および列削除)がサポートされています。

ビニング

ビニングでは、連続値および離散値をカーディナリティ(基数)の少ない離散値(ビン)に変換します。 たとえば、人の年齢は、1から20才を1、21から40才を2といった離散的な量的属性のビンに区分できます。 Ford、Chrysler、BMW、Volkswagenなどの主要な自動車メーカーは、{Ford, Chrysler}をUS_Car_Makers、{BMW, Volkswagen}をEuropean_Car_Makersといった離散的な質的属性のビンに区分できます。

DBMS_DATA_MINING_TRANSFORMでは、質的属性と量的属性のビニングがサポートされています。

監視ありビニング(質的および量的)

ビンの内容は、ディシジョン・ツリー・モデルで計算されたグループです。


頻度が上位N番までの質的属性のビニング

ビンの内容は、列内の各値の頻度に基づいています。ビンの数はユーザーが指定します。最初のビンに最も頻度の高い値、2番目のビンに2番目に頻度の高い値が含まれ、以降同様に続きます。最後のビンには残りのすべての値が含まれています。


等幅の数値ビニング

各ビンに、同じ数の値が含まれています。ビンの数は、ユーザーが指定するか、またはデータから推定されます。最初のビンには最も高い値、2番目のビンには次に高い値が含まれ、以降同様に続きます。


クオンタイル数値ビニング

各ビンに、SQL NTILEファンクションを使用して計算されたクオンタイルの数が含まれています。クオンタイルとは、データ配分のパーティションのことです。


正規化

正規化とは、連続値を特定の範囲(通常0から1の間)に変換するプロセスのことです。正規化は量的属性のみに適用されます。

正規化では、指定した値(shift)を数値から引き、その結果をscaleで割ることによって各数値を変換します。次に例を示します。

x_new = (x_old-shift)/scale
最小値と最大値による正規化

最小値と最大値による正規化は、データの最小値と最大値に基づいて決定されます。shiftとscaleの値は、次のとおりです。

shift = min
scale = max-min

スケールによる正規化

スケールによる正規化は、データの最小値と最大値に基づいて決定されます。shiftとscaleの値は、次のとおりです。

shift = 0
scale = max{abs(max), abs(min)}

Zスコアによる正規化

Zスコアによる正規化は、データから計算される平均値と標準偏差に基づいて決定されます。shiftとscaleの値は、次のとおりです。

shift = mean
scale = standard_deviation

外れ値処理

一部の計算は、異常値による影響を大きく受けることがあります。 計算を適正化するには、データの前処理として異常値に対してWindorizationまたはトリミング(クリッピング)を実行する必要があります。

Winsorizationでは、テール値を指定された値に変更します。 たとえば、90%のWinsorizationでは、下位5%を6番目のパーセンタイル(百分位数)の最小値に設定し、上位5%を95番目のパーセンタイルの最大値に設定します。

トリミングでは、テール値にNULLが設定されます。

欠損値の処理

Oracle Data Miningでは、スパースなデータランダムな欠損値が含まれているデータは区別されます。後者は、属性値の一部が不明であることを意味します。一方、スパースなデータには既知であると想定される値が含まれていますが、それらの値がデータに表されていません。

単純な(ネストされていない)データ型の列がNULLの場合は、ランダムな欠損値を表すとみなされます。ネストされた列に値が存在しない場合は、スパースなデータを示しています。 Oracle Data Miningでは、ランダムに欠損している量的データは自動的に平均値で置き換えられ、ランダムに欠損している質的データは自動的に最頻値で置き換えられます。スパースな量的データの欠損値は、0(ゼロ)で置き換えられます。 スパースな質的データの欠損値は、アルゴリズムに応じて、ゼロ・ベクトルまたは特殊な値DM$SPARSEで置き換えられます。

DBMS_DATA_MINING_TRANSFORMでは、欠損値を処理するためのルーチンが提供されます。これらのルーチンは、デフォルトの処理に依存するのではなく、欠損値処理を明示的に管理する必要があるすべてのユーザーが使用できます。


関連項目:

Oracle Data Miningによる欠損値処理の詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。


DBMS_DATA_MINING_TRANSFORMフレームワーク

DBMS_DATA_MINING_TRANSFORMでは、データの列をマイニング用に変換するためのフレームワークが提供されます。 このフレームワークは、CREATEINSERTSTACKおよびXFORM操作で構成されます。出力を変更するか、またはこれらの操作の独自のバージョンを実装することができます。

DBMS_DATA_MINING_TRANSFORMフレームワークは、次の操作で構成されます。

  1. CREATE: 変換表を作成します。

    変換定義表には、次のいずれかの変換を指定する場合に必要な列が含まれています。

    • ビニング

    • 列削除

    • 正規化

    • 外れ値処理

    • 欠損値処理

    たとえば、ビニング変換表には、元の列値とそれぞれのビン割当て値を示す列が含まれています。

    変換表の列は、INSERTルーチンによりデータが移入されるまで空になっています。

  2. INSERT: 指定されたデータ・ソース用の変換表にデータを移入します。

    たとえば、INSERTルーチンを使用して、指定されたデータ・ソース内の質的属性のビン割当て値を移入できます。 ビン割当て値は、監視ありビニングまたは上位n番までの頻度ベースのビニングを使用して計算されます。

    特定のマイニングの問題についてのすべてのデータ属性が変換表に完全に表示されるまで、CREATEルーチンおよびINSERTルーチンを複数回コールできます。

  3. STACK: 変換命令のリスト(スタック)に変換命令を追加します。

    たとえば、STACKルーチンを使用して、ビニング変換表への移入を行う変換命令を変換命令のリストに追加できます。 STACKルーチンでは、指定されたデータ・ソースに対するすべての変換命令を単一のリストにアセンブルできます。

    変換命令のリストは、CREATE_MODELまたは他のSTACKルーチンに渡すことができます。(「CREATE_MODELプロシージャ」を参照)

  4. XFORM: 変換後の列を含むデータ表のビューを作成します。

    たとえば、XFORMルーチンを使用して、ビニング変換表に基づいてビンに変換された列を含むビューを作成できます。

    XFORMルーチンによって作成されたビューには、変換表内の列については変換後の値、他のすべての列については元の値が含まれます。 ビューは、モデルの作成、テストおよびスコアリングに使用できます。


データ型

この項では、DBMS_DATA_MINING_TRANSFORMで定義されているデータ型について説明します。

COLUMN LISTコレクション型

この型は、列名の引用符で囲まれた識別子および引用符で囲まれていない識別子を格納する場合に使用します。

TYPE    COLUMN_LIST                    IS VARRAY(1000) OF VARCHAR2(32);

DESCRIBE LISTコレクション型

この型は、記述操作の結果を保持する場合に使用します。

SUBTYPE
    DESCRIBE_LIST                  IS dbms_sql.DESC_TAB2;

EXPRESSIONレコード型

この型は、変換式を格納する場合に使用します。

  TYPE
    EXPRESSION_REC                 IS RECORD (
                                       ...........);,

VARCHAR2とは異なり、EXPRESSION_RECは32Kより大きくなる可能性がある式に使用できます。

EXPRESSION_RECに書き込むには、SET_EXPRESSIONを使用します。 EXPRESSION_RECの内容を取得するには、GET_EXPRESSIONを使用します。

TRANSFORMATIONレコード型

この型は、単一属性のメモリー内変換スタック定義を格納する場合に使用します。

TYPE
    TRANSFORM_REC                  IS RECORD (
      attribute_name                 VARCHAR2(30),
      attribute_subname              VARCHAR2(4000),
      expression                     EXPRESSION_REC,
      reverse_expression             EXPRESSION_REC,
      attribute_spec                 VARCHAR2(4000));

attribute_specフィールドは、属性に追加の情報およびアクションを指定する場合に使用します。 attribute_specには、値NOPREPを指定できます。

NOPREPを指定すると、個々の属性に対してADPを使用できなくなります。 NOPREPは、DBMS_DATA_MINING.CREATE_MODELに渡された変換リストで使用できます。(「CREATE_MODELプロシージャ」を参照)

TRANSFORMATION LISTコレクション型

この型は、メモリー内スタック定義を格納する場合に使用します。

TYPE
    TRANSFORM_LIST                    IS TABLE OF TRANSFORM_REC;

NESTED COLUMN定数

これらの定数は、ネストした列のデータ型を指定する場合に使用します。

NEST_NUM_COL_TYPE                   CONSTANT NUMBER := 100001;
NEST_CAT_COL_TAYPE                  CONSTANT NUMBER := 100002;

DBMS_DATA_MINING_TRANSFORMサブプログラムの要約

表39-1 DBMS_DATA_MINING_TRANSFORMパッケージのサブプログラム

サブプログラム 用途

CREATE_BIN_CATプロシージャ


質的属性のビン定義表を作成します。

CREATE_BIN_NUMプロシージャ


量的属性のビン定義表を作成します。

CREATE_CLIPプロシージャ


クリッピング定義表を作成します。

CREATE_COL_REMプロシージャ


列削除定義表を作成します。

CREATE_MISS_CATプロシージャ


質的属性の欠損値処理定義表を作成します。

CREATE_MISS_NUMプロシージャ


量的属性の欠損値処理定義表を作成します。

CREATE_NORM_LINプロシージャ


正規化定義表を作成します。

DESCRIBE_STACKプロシージャ


スタック定義を記述します。

GET_EXPRESSIONファンクション


変換式を戻します。

INSERT_AUTOBIN_NUM_EQWIDTHプロシージャ

データから推定したビン数に基づいて、量的なビン定義表に適用します。

INSERT_BIN_CAT_FREQプロシージャ

入力の質的データに基づいて頻度ベースのビニングを導出し、質的なビン定義表に適用します。

INSERT_BIN_NUM_EQWIDTHプロシージャ


入力の量的データに基づいて等幅のビニングを導出し、量的なビン定義表に適用します。

INSERT_BIN_NUM_QTILEプロシージャ


入力の量的データに基づいてクオンタイルによるビニングを導出し、量的なビン定義表に適用します。

INSERT_BIN_SUPERプロシージャ


ビニング定義表に移入を行い、監視ありビニングを量的データおよび質的データの両方に適用します。

INSERT_CLIP_TRIM_TAILプロシージャ


入力の量的データのテール値に基づいてトリミングを導出し、クリッピング定義表に適用します。

INSERT_CLIP_WINSOR_TAILプロシージャ


入力の量的データのテール値に基づいてWinsorizationを導出し、クリッピング定義表に適用します。

INSERT_MISS_CAT_MODEプロシージャ


それぞれの欠損値に基づいてモードを導出し、質的属性の欠損値処理定義表に適用します。

INSERT_MISS_NUM_MEANプロシージャ


それぞれの欠損値に基づいて平均値を導出し、量的属性の欠損値処理定義表に適用します。

INSERT_NORM_LIN_MINMAXプロシージャ


入力の量的データに基づいて最小値と最大値による正規化を導出し、正規化定義表に適用します。

INSERT_NORM_LIN_SCALEプロシージャ

入力の量的データに基づいてスケールによる正規化を導出し、正規化定義表に適用します。

INSERT_NORM_LIN_ZSCOREプロシージャ


入力の量的データに基づいてZスコアによる正規化を導出し、正規化定義表に適用します。

SET_EXPRESSIONプロシージャ


変換式に追加します。

SET_TRANSFORMプロシージャ


変換式を指定します。

STACK_BIN_CATプロシージャ


質的属性のビニング式を変換リストに追加します。

STACK_BIN_NUMプロシージャ


量的属性のビニング式を変換リストに追加します。

STACK_CLIPプロシージャ


クリッピング式を変換リストに追加します。

STACK_COL_REMプロシージャ


列削除式を変換リストに追加します。

STACK_MISS_CATプロシージャ


質的属性の欠損値処理式を変換リストに追加します。

STACK_MISS_NUMプロシージャ


量的属性の欠損値処理式を変換リストに追加します。

STACK_NORM_LINプロシージャ


線形正規化式を変換リストに追加します。

XFORM_BIN_CATプロシージャ


質的属性のビニング変換をデータに適用するビューを作成します。

XFORM_BIN_NUMプロシージャ


量的属性のビニング変換をデータに適用するビューを作成します。

XFORM_CLIPプロシージャ


クリッピング変換をデータに適用するビューを作成します。

XFORM_COL_REMプロシージャ


指定した列をデータから削除するビューを作成します。

XFORM_EXPR_NUMプロシージャ


データの数値列に変換式を適用するビューを作成します。

XFORM_EXPR_STRプロシージャ


データの文字列に変換式を適用するビューを作成します。

XFORM_MISS_CATプロシージャ


データの質的属性に欠損値処理を実行するビューを作成します。

XFORM_MISS_NUMプロシージャ


データの量的属性に欠損値処理を実行するビューを作成します。

XFORM_NORM_LINプロシージャ


データの量的属性に線形正規化を実行するビューを作成します。

XFORM_STACKプロシージャ


スタック定義(変換リスト)に指定されているとおりにデータを変換するビューを作成します。



CREATE_BIN_CATプロシージャ

このプロシージャでは、質的属性のビン変換表を作成します。

構文

DBMS_DATA_MINING_TRANSFORM.CREATE_BIN_CAT (
     bin_table_name     IN VARCHAR2,
     bin_schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-2 CREATE_BIN_CATプロシージャのパラメータ

パラメータ 説明

bin_table_name

ビン変換表の名前。

bin_schema_name

ビン変換表に適用されるスキーマの名前。


使用上の注意

このプロシージャによって作成された表は、質的属性のビン割当て値を格納するために使用できます。 表にデータを移入するには、次のINSERTルーチンを使用できます。

表39-3は、質的属性ビン定義表の列について説明しています。

表39-3 質的属性ビン定義表

データ型 説明

col

VARCHAR2(30)

ビニング対象の質的属性値を含む列。

att

VARCHAR2(4000)

列がネストされている場合の属性名。

val

VARCHAR2(4000)

ビニング対象の列の値。

bin

VARCHAR2(4000)

値を含むビン。


BEGIN
   DBMS_DATA_MINING_TRANSFORM.CREATE_BIN_CAT('build_bin_cat_table');
END;
/

DESCRIBE build_bin_cat_table
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COL                                                VARCHAR2(30)
 ATT                                                VARCHAR2(4000)
 VAL                                                VARCHAR2(4000)
 BIN                                                VARCHAR2(4000)

CREATE_BIN_NUMプロシージャ

このプロシージャでは、量的属性のビン変換表を作成します。 この表は、INSERT_BIN_NUM_EQWIDTHINSERT_BIN_NUM_QTILEINSERT_AUTOBIN_NUM_EQWIDTHおよびXFORM_BIN_NUMプロシージャへの入力として使用されます。

構文

DBMS_DATA_MINING_TRANSFORM.CREATE_BIN_NUM (
     bin_table_name    IN VARCHAR2,
     bin_schema_name   IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-4 CREATE_BIN_NUMプロシージャのパラメータ

パラメータ 説明

bin_table_name

ビン定義表の名前。

bin_schema_name

ビン定義表に適用されるスキーマの名前。


使用上の注意

生成されるビン定義表には、次の列があります。

列名 データ型
col VARCHAR2(30)
att VARCHAR2(4000)
val NUMBER
bin VARCHAR2(4000)

BEGIN
  DBMS_DATA_MINING_TRANSFORM.CREATE_BIN_NUM('build_bin_num_table');
END;
/

DESCRIBE build_bin_num_table
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COL                                                VARCHAR2(30)
 ATT                                                VARCHAR2(4000)
 VAL                                                NUMBER
 BIN                                                VARCHAR2(4000)

CREATE_CLIPプロシージャ

このプロシージャでは、クリッピング定義表を作成します。 この表は、INSERT_CLIP_WINSOR_TAILINSERT_CLIP_TRIM_TAILおよびXFORM_CLIPプロシージャへの入力として使用されます。

構文

DBMS_DATA_MINING_TRANSFORM.CREATE_CLIP (
     clip_table_name    IN VARCHAR2,
     clip_schema_name   IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-5 CREATE_CLIPプロシージャのパラメータ

パラメータ 説明

clip_table_name

クリッピング定義表の名前。

clip_schema_name

クリッピング定義表に適用されるスキーマの名前。


使用上の注意

作成されるクリッピング定義表には、次の列があります。

列名 データ型
col VARCHAR2(30)
att VARCHAR2(4000)
lcut NUMBER
lval NUMBER
rcut NUMBER
rval NUMBER

BEGIN
  DBMS_DATA_MINING_TRANSFORM.CREATE_CLIP('build_clip_table');
END;
/

DESCRIBE build_clip_table
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COL                                                VARCHAR2(30)
 ATT                                                VARCHAR2(4000)
 LCUT                                               NUMBER
 LVAL                                               NUMBER
 RCUT                                               NUMBER
 RVAL                                               NUMBER

CREATE_COL_REMプロシージャ

このプロシージャでは、列削除定義表を作成します。 この表は、STACK_COL_REMXFORM_COL_REMINSERT_BIN_SUPERおよびINSERT_AUTOBIN_NUM_EQWIDTHプロシージャによって使用されます。

構文

DBMS_DATA_MINING_TRANSFORM.CREATE_COL_REM (
      rem_table_name           VARCHAR2,
      rem_schema_name          VARCHAR2 DEFAULT NULL);

パラメータ

表39-6 CREATE_COL_REMプロシージャのパラメータ

パラメータ 説明

rem_table_name

列削除定義表の名前。

rem_schema_name

列削除定義表のスキーマ。


使用上の注意

作成される列削除定義表には、次の列が含まれています。

列名 データ型
col VARCHAR2(30)
att VARCHAR2(4000)

列削除定義表は、データソースから削除する列名および関連する属性名を示します。col列は、引用符で囲まれた識別子となるため、大/小文字が区別されます。ネストされた列の場合は、同じcolに対して列削除定義表に複数のエントリを含めることができます。

BEGIN
    DBMS_DATA_MINING_TRANSFORM.CREATE_COL_REM ('col_rem_tbl');
END;
 /

DESCRIBE col_rem_tbl
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COL                                                VARCHAR2(30)
 ATT                                                VARCHAR2(4000)

CREATE_MISS_CATプロシージャ

このプロシージャは、質的属性の欠損値処理定義表を作成します。 この表は、INSERT_MISS_CAT_MODEプロシージャへの入力として使用されます。

構文

DBMS_DATA_MINING_TRANSFORM.CREATE_MISS_CAT (
     miss_table_name       IN VARCHAR2,
     miss_schema_name      IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-7 CREATE_MISS_CATプロシージャのパラメータ

パラメータ 説明

miss_table_name

質的属性の欠損値処理定義表の名前。

miss_schema_name

質的属性の欠損値処理定義表に適用されるスキーマの名前。


使用上の注意

作成される質的属性の欠損値処理定義表には、次の列があります。

列名 データ型
col VARCHAR2(30)
att VARCHAR2(4000)
val VARCHAR2(4000)

BEGIN
  DBMS_DATA_MINING_TRANSFORM.CREATE_MISS_CAT('build_miss_cat_table');
END;
/

DESCRIBE build_miss_cat_table
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COL                                                VARCHAR2(30)
 ATT                                                VARCHAR2(4000)
 VAL                                                VARCHAR2(4000)

CREATE_MISS_NUMプロシージャ

このプロシージャは、量的属性の欠損値処理定義表を作成します。 この表は、INSERT_MISS_NUM_MEANプロシージャへの入力として使用されます。

構文

DBMS_DATA_MINING_TRANSFORM.CREATE_MISS_NUM (
     miss_table_name       IN VARCHAR2,
     miss_schema_name      IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-8 CREATE_MISS_NUMプロシージャのパラメータ

パラメータ 説明

miss_table_name

量的属性の欠損値処理定義表の名前。

miss_schema_name

量的属性の欠損値処理定義表に適用されるスキーマの名前。


使用上の注意

作成される量的属性の欠損値定義表には、次の列があります。

列名 データ型
col VARCHAR2(30)
att VARCHAR(4000)
val NUMBER

BEGIN
    DBMS_DATA_MINING_TRANSFORM.CREATE_MISS_NUM('build_miss_num_table');
END;
/

DESCRIBE build_miss_num_table
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COL                                                VARCHAR2(30)
 ATT                                                VARCHAR2(4000)
 VAL                                                NUMBER

CREATE_NORM_LINプロシージャ

このプロシージャでは、線形正規化定義表を作成します。 この表は、INSERT_NORM_LIN_MINMAXINSERT_NORM_LIN_SCALEINSERT_NORM_LIN_ZSCOREおよびXFORM_NORM_LINプロシージャへの入力として使用されます。

構文

DBMS_DATA_MINING_TRANSFORM.CREATE_NORM_LIN (
     norm_table_name       IN VARCHAR2,
     norm_schema_name      IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-9 CREATE_NORMALIZE_LINプロシージャのパラメータ

パラメータ 説明

norm_table_name

正規化定義表の名前。

norm_schema_name

正規化定義表に適用されるスキーマの名前。


使用上の注意

作成される線形正規化定義表には、次の列があります。

列名 データ型
col VARCHAR2(30)
att VARCHAR2(4000)
shift NUMBER
scale NUMBER

BEGIN
     DBMS_DATA_MINING_TRANSFORM.CREATE_NORM_LIN('build_norm_table');
END;
/

DESCRIBE build_norm_table
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COL                                                VARCHAR2(30)
 ATT                                                VARCHAR2(4000)
 SHIFT                                              NUMBER
 SCALE                                              NUMBER

DESCRIBE_STACKプロシージャ

このプロシージャは、スタック定義で指定されているデータ表の変換の詳細を示します。

スタック定義で指定された列のみが変換されます。その他の列は変更されません。

スタック定義内のすべての列が適用されます。式フィールドにNULLが指定されている列は除外されます。スタック定義内の列のうち、データ内に一致する列がない列が詳細リストに追加されます。

構文

DBMS_DATA_MINING_TRANSFORM.DESCRIBE_STACK (
     xform_list           IN TRANSFORM_LIST,
     data_table_name      IN VARCHAR2,
     describe_list        OUT DESCRIBE_LIST
     data_schema_name     IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-10 DESCRIBE_STACKプロシージャのパラメータ

パラメータ 説明

xform_list

スタックされた変換のリスト。

data_table_name

マイニング・データが含まれている表。

describe_list

スタックされた変換の詳細。

data_schema_name

マイニング・データが含まれている表のスキーマ。スキーマを指定しない場合は、独自のスキーマが使用されます。


使用上の注意

DM_NESTED_NUMERICALSの場合、col_typeの値はnest_num_col_typeです。 DM_NESTED_CATEGORICALSの場合、col_typeの値はnest_cat_col_typeです。


GET_EXPRESSIONファンクション

このファンクションは、式からVARCHAR2チャンクを戻します。

チャンクの番号は1から始まります。範囲外のチャンクの場合、戻り値はNULLになります。チャンク番号がNULLの場合は、式全体が文字列として戻されます。 式が大きすぎる場合は、VALUE_ERRORが発生します。

構文

DBMS_DATA_MINING_TRANSFORM.GET_EXPRESSION (
     expression           IN EXPRESSION_REC,
     chunk_num            IN PLS_INTEGER DEFAULT NULL);
 RETURN VARCHAR2;

パラメータ

表39-11 GET_EXPRESSIONファンクションのパラメータ

パラメータ 説明

expression

変換式。

chunk_num

チャンクの数。



INSERT_AUTOBIN_NUM_EQWIDTHプロシージャ

このプロシージャは、入力データ表の列のうち、除外リストに指定されていない数値列に基づき、量的属性に関する等幅のビン定義を導出します。次に、そのビン定義を、CREATE_BIN_NUMで作成した量的属性ビン定義表に挿入します。また、統計情報に基づいて入力データを収集し、ビン数を計算します。

個々の量的属性(列)のビン定義は、入力データ表から計算される最小値と最大値に基づいて決定されます。

N(ビン数)は、次のようにNULL以外の値の数(cnt)、最大値(max)、最小値(min)、標準偏差(dev)および定数C=3.49/0.9に基づいて列ごとに個別に計算されます。

N=floor(power(cnt,1/3)*(max-min)/(c*dev))

bin_num(= N)個の各ビン(bin_1,..., bin_N)は、最小値から最大値までの範囲全体を等しい幅(inc = (max – min) / N)に分割したものです。ビン定義表内のビンの値は、N > 0の場合にbin_I = Iとなり、N < 0の場合にbin_I = N+1–Iとなります(なお、bin_0 = bin_(N+1) = NULL)。 val列の値は、ビン定義表に挿入される前に、round_numパラメータで指定した有効桁数に丸められます。

パラメータbin_numは、Nをbin_num以上に調整するために使用します。 bin_numNULLまたは0(ゼロ)の場合、調整は行われません。パラメータmax_bin_numは、Nをmax_bin_num以下にするために使用します。 bin_numNULLまたは0(ゼロ)の場合、調整は行われません。すべての値が整数値の列(離散列)の場合、Nは、確認された範囲max-min+1内の個別値の最大数以下になるように調整されます。

パラメータsample_sizeは、cntsample_size以下にするために使用します。 sample_sizeNULLまたは0(ゼロ)の場合、調整は行われません。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_AUTOBIN_NUM_EQWIDTH (
     bin_table_name        IN VARCHAR2,
     data_table_name       IN VARCHAR2,
     bin_num               IN PLS_INTEGER DEFAULT 3,
     max_bin_num           IN PLS_INTEGER DEFAULT 100,
     exclude_list          IN Column_List DEFAULT NULL,
     round_num             IN PLS_INTEGER DEFAULT 6,
     sample_size           IN PLS_INTEGER DEFAULT 50000,
     bin_schema_name       IN VARCHAR2 DEFAULT NULL,
     data_schema_name      IN VARCHAR2 DEFAULT NULL,
     rem_table_name        IN VARCHAR2 DEFAULT NULL,
     rem_schema_name       IN VARCHAR2 DEFAULT NULL));

パラメータ

表39-12 INSERT_AUTOBIN_EQWIDTHプロシージャのパラメータ

パラメータ 説明

bin_table_name

CREATE_BIN_NUMプロシージャを使用して作成された質的属性ビン定義表の名前。

data_table_name

データが保存されている表の名前。

bin_num

ビンの最小数。デフォルトの数値は3です。

max_bin_num

ビン数の推定値の上限を設定するビンの最大数。デフォルトは100です。

exclude_list

ビン定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。質的属性は自動的に除外されます。

round_num

表内の値の有効桁数。デフォルトは6です。

sample_size

データ・サンプルのサイズ。デフォルトは50,000です。

bin_schema_name

ビン定義表に適用されるスキーマの名前。デフォルトはユーザー・スキーマです。

data_schema_name

入力データ表に適用されるスキーマの名前。デフォルトはユーザー・スキーマです。

rem_table_name

CREATE_COL_REMを使用して作成された列削除定義表の名前。

rem_schema_name

列削除定義表のスキーマ。


使用上の注意

特定の入力データ表に対して、ビンの個数を変えながら、このプロシージャをコールできます。 ビン定義の導出過程における個々のコールでは、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。

すべての値がNULL値である属性(列)、および一意の値を1つしか持たない属性(列)は無視されます。 bin_nummax_bin_numおよびsample_sizeの記号は、結果に影響を与えません。絶対値が使用されます。 Nの値の調整は、bin_nummax_bin_num、離散列の順に行われます。

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出されるビン定義をnum_bin_tableに書き込みます。

BEGIN
   DBMS_DATA_MINING_TRANSFORM.INSERT_AUTOBIN_NUM_EQUIWIDTH(
      'num_bin_table', 'build_data_table');
END;

/


INSERT_BIN_CAT_FREQプロシージャ

このプロシージャは、入力データ表の列のうち、除外リストに指定されていないVARCHAR2列とCHAR列に基づき、質的属性に関する頻度ベースのビン定義を導出します。次に、そのビン定義を、CREATE_BIN_CATで作成した質的属性ビン定義表に挿入します。

個々の質的属性(列)のビン定義は、入力データ表から計算される属性(列)値の発生頻度に基づいて決定されます。 bin_num(N)個の各ビン(bin_1, ..., bin_N)は、発生頻度が上位N番まで(N > 0の場合)または下位N番まで( < 0の場合)の属性値に対応します。残りのすべての値は、bin_(N+1)に属します(ビン定義表内のビンの値: bin_I = I)。発生頻度が同じ属性値については、ビンの値を属性値の順序によって決定します(N > 0の場合は昇順、N < 0の場合は降順)。 値が異なる属性の個数C < Nである場合は、C+1個のビンのみが作成されます。

パラメータdefault_num(D)は、デフォルト・ビンに属する値の個数に応じて特定の属性を切り捨てるために使用されます。 D > 0の場合は、D個以上のデフォルト値を持つ属性のみがビンとして認識され、その他の属性は無視されます。D < 0の場合は、D個以下のデフォルト値を持つ属性のみがビンとして認識され、その他の属性は無視されます。 DがNULLまたはD = 0の場合、属性の切捨ては行われません。パラメータbin_support (SUP)は、支持水準(出現回数)に基づいて属性をフィルタリングするために使用されます。SUP > 0の場合は、frq >= SUP*totという条件(frqは特定の属性値の出現回数、totはすべての属性の出現回数の合計を入力データから計算した値)を満たす出現頻度の高い属性のみがビンとして認識されます。SUP < 0の場合は、frq <= –SUP*totという条件を満たす出現頻度の低い属性のみがビンとして認識されます。 SUPがNULLまたはSUP = 0の場合、支持水準によるフィルタリングは適用されません。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_BIN_CAT_FREQ (
     bin_table_name       IN VARCHAR2,
     data_table_name      IN VARCHAR2,
     bin_num              IN PLS_INTEGER DEFAULT 9,
     exclude_list         IN Column_List DEFAULT NULL,
     default_num          IN PLS_INTEGER DEFAULT 2,
     bin_support          NUMBER DEFAULT NULL,
     bin_schema_name      IN VARCHAR2 DEFAULT NULL,
     data_schema_name     IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-13 INSERT_BIN_CAT_FREQプロシージャのパラメータ

パラメータ 説明

bin_table_name

CREATE_BIN_CATプロシージャを使用して作成された質的属性ビン定義表の名前。

data_table_name

データが保存されている表の名前。

bin_num

ビンの個数。

exclude_list

ビン定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。

default_num

デフォルト値の個数。

bin_support

ビンの支持水準(小数で指定)。

bin_schema_name

ビン定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。


使用上の注意

特定の入力データ表に対して、ビンの個数を変えながら、このプロシージャを反復的にコールできます。ビン定義の導出過程における個々の反復処理では、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。

すべての値がNULLである属性(列)は無視されます。 bin_num = 0、またはbin_numがNULLの場合、ビン定義は作成されません。

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての質的属性から導出されるビン定義をcat_bin_tableに書き込みます。

BEGIN
   DBMS_DATA_MINING_TRANSFORM.INSERT_BIN_NUM(
      'cat_bin_table', 'build_table');
END;
/

INSERT_BIN_NUM_EQWIDTHプロシージャ

このプロシージャでは、入力データ表の列のうち、除外リストに指定されていないNUMBER列に基づき、量的属性に関する等幅のビン定義を導出します。次に、そのビン定義を、CREATE_BIN_NUMで作成した量的属性ビン定義表に挿入します。

個々の量的属性(列)のビン定義は、入力データ表から計算される最小値と最大値に基づいて決定されます。 bin_num(= N)個の各ビン(bin_1,..., bin_N)は、最小値から最大値までの範囲全体を等しい幅(inc = (max – min) / N)に分割したものです。ビン定義表内のビンの値は、N > 0の場合にbin_I = Iとなり、N < 0の場合にbin_I = N+1–Iとなります(なお、bin_0 = bin_(N+1) = NULL)。

ビン定義表のval列の値は、round_numパラメータで指定した有効桁数に丸められます。詳細は、「使用上の注意」を参照してください。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_BIN_NUM_EQWIDTH (
     bin_table_name        IN VARCHAR2,
     data_table_name       IN VARCHAR2,
     bin_num               IN PLS_INTEGER DEFAULT 10,
     exclude_list          IN Column_List DEFAULT NULL,
     round_num             IN PLS_INTEGER DEFAULT 6,
     bin_schema_name       IN VARCHAR2 DEFAULT NULL,
     data_schema_name      IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-14 INSERT_BIN_EQWIDTHプロシージャのパラメータ

パラメータ 説明

bin_table_name

CREATE_BIN_NUMプロシージャを使用して作成された量的属性ビン定義表の名前。

data_table_name

データが保存されている表の名前。

bin_num

ビンの個数。

exclude_list

ビン定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。

round_num

表内の値の有効桁数。詳細は、「使用上の注意」を参照してください。

bin_schema_name

ビン定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。


使用上の注意

特定の入力データ表に対して、ビンの個数を変えながら、このプロシージャを反復的にコールできます。ビン定義の導出過程における個々の反復処理では、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。

すべての値がNULL値である属性(列)、および一意の値を1つしか持たない属性(列)は無視されます。 bin_num = 0、またはbin_numNULLの場合、ビン定義は作成されません。

たとえば、N=2、col='mycol'、min=10、max = 21(inc = 5.5)である場合は、次の3行がビン定義表に挿入されます。

 COL     VAL  BIN
 ----- -----  -----
 mycol    10  NULL
 mycol  15.5  1
 mycol    21  2

round_numパラメータによって、定義表のVAL列の数値を丸める方法を指定します。 round_numが正の値の場合は、保存する最大の有効桁数が指定されます。 round_numが負の値の場合は、削除する最小の有効桁数が指定されます。いずれの場合も、結果は、指定した桁数に丸められます。 round_numが0(ゼロ)の場合、値は変更されません。

たとえば、値が308.162の場合、次のように丸められます。

For a value of 308.162:
     when round_num = 1       result is 300
     when round_num = 2       result is 310
     when round_num = 3       result is 308
     when round_num =  0      result is 308.162
     when round_num = -1      result is 308.16
     when round_num = -2      result is 308.2
     when round_num = NULL    result is NULL

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出されるビン定義をnum_bin_tableに書き込みます。

BEGIN
   DBMS_DATA_MINING_TRANSFORM.INSERT_BIN_NUM(
      'num_bin_table', 'build_table');
END;

/


INSERT_BIN_NUM_QTILEプロシージャ

このプロシージャでは、入力データ表の列のうち、除外リストに指定されていないNUMBER列に基づき、量的属性に関する等幅のビン定義を導出します。次に、そのビン定義を、CREATE_BIN_NUMで作成したビン定義表に挿入します。

このビニング方式では、各クオンタイルの最小値に基づいて、各属性のビン定義が決定されます(NTILE関数を使用してデータからクオンタイルを計算します)。 bin_1,..., bin_Nのビンは次の範囲に対応します。bin_1は[min_1,min_2]の範囲、bin_2,..., bin_i,..., bin_N-1は(min_i, min_(i+1)]の範囲、bin_Nは(min_N, max_N]の範囲にそれぞれ対応します。左端と右端の値が等しいビンは破棄されます。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_BIN_NUM_QTILE (
    bin_table_name       IN VARCHAR2,
    data_table_name      IN VARCHAR2,
    bin_num              IN PLS_INTEGER DEFAULT 10,
    exclude_list         IN Column_List DEFAULT NULL,
    bin_schema_name      IN VARCHAR2 DEFAULT NULL,
    data_schema_name     IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-15 INSERT_BIN_NUM_QTILEプロシージャのパラメータ

パラメータ 説明

bin_table_name

CREATE_BIN_NUMプロシージャを使用して作成された量的属性ビン定義表の名前。

data_table_name

データが保存されている表の名前。

bin_num

ビンの個数。

exclude_list

ビン定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。

bin_schema_name

量的属性ビン定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。


使用上の注意

特定の入力データ表に対して、ビン数(bin_num)を変えながら、このプロシージャを反復的にコールできます。ビン定義の導出過程における個々の反復処理では、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。すべての値がNULL値である属性(列)は無視されます。

たとえば、N = 4、col='mycol'で、データが{1,2,2,2,2,3,4}である場合は、次の3行が定義表に挿入されます。

COL     VAL   BIN
----- -----  -----
mycol     1   NULL
mycol     2   1
mycol     4   2

この例では、クオンタイルは{1,2}, {2,2}, {2,3}, {4}、各クオンタイルの最小値はmin(1) = 1, min(2) = 2, min(3) = 2, min(4) = 4、最大値はmax(4) = 4です。ビンの範囲は[1,2], (2,2], (2,4], (4,4]です。 [1,2]を破棄すると、(2,4]になります。

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出される量的属性ビン定義をnum_bin_tableに書き込みます。

BEGIN
    DBMS_DATA_MINING_TRANSFORM.INSERT_BIN_NUM_QTILE(
       'num_bin_table', 'build_table');
END;

INSERT_BIN_SUPERプロシージャ

このプロシージャは、入力データ表の列のうち、除外リストに指定されていないNUMBERFLOATVARCHAR2またはCHAR列に基づき、量的属性および質的属性のビン定義を導出します。次に、そのビン定義を、量的属性または質的属性のビン定義表に挿入します。

ビン境界は、監視ありビニングという方法を使用して計算されます。関連する各列の定義は、単一の予測変数に基づいて構築されたディシジョン・ツリー・モデルによって導出された分割に基づいて計算されます。関連する分割がない列は、列削除定義表に挿入されます(列削除定義表が指定されている場合)。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_BIN_SUPER (
    num_table_name        IN VARCHAR2,
    cat_table_name        IN VARCHAR2,
    data_table_name       IN VARCHAR2,
    target_column_name    IN VARCHAR2,
    max_bin_num           IN PLS_INTEGER  DEFAULT 1000,
    exclude_list          IN COLUMN_LIST  DEFAULT NULL,
    num_schema_name       IN VARCHAR2     DEFAULT NULL,
    cat_schema_name       IN VARCHAR2     DEFAULT NULL,
    data_schema_name      IN VARCHAR2     DEFAULT NULL,
    rem_table_name        IN VARCHAR2     DEFAULT NULL,
    rem_schema_name       IN VARCHAR2     DEFAULT NULL);

パラメータ

表39-16 INSERT_BIN_SUPERプロシージャのパラメータ

パラメータ 説明

num_table_name

CREATE_BIN_NUMプロシージャを使用して作成された量的属性ビン定義表の名前。

cat_table_name

CREATE_BIN_CATプロシージャを使用して作成された質的属性ビン定義表の名前。

data_table_name

データが保存されている表の名前。

target_column_name

ターゲット列の名前。

max_bin_num

最大ビン数。

exclude_list

ビン定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。

num_schema_name

量的属性ビン定義表のスキーマ。

cat_schema_name

質的属性ビン定義表のスキーマ。

data_schema_name

データが含まれている表のスキーマ。

rem_table_name

CREATE_COL_REMを使用して作成された列削除定義表の名前。

rem_schema_name

列削除定義表のスキーマ。



INSERT_CLIP_TRIM_TAILプロシージャ

このプロシージャでは、入力データ表の列のうち、除外リストに指定されていないNUMBER列に基づき、トリミング定義を導出します。次に、そのトリミング定義を、CREATE_CLIPで作成したクリッピング定義表に挿入します。

各属性のトリミング定義を導出するために、val(1) < val(2) <... < val(N)となるように(Nは属性値のうち、NULL以外の値の個数)、NULL以外の属性値が昇順に並べ替えられます。

lcut = val(1+floor(N*q))
lval = NULL
rcut = val(N–floor(*N*q))
rval = NULL

ここで、q = ABS(NVL(tail_frac,0))です。q >= 0.5の場合、データ変換は行われません。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_CLIP_TRIM_TAIL (
    clip_table_name     IN VARCHAR2,
    data_table_name     IN VARCHAR2,
    tail_frac           IN NUMBER DEFAULT 0.025,
    exclude_list        IN Column_List DEFAULT NULL,
    clip_schema_name    IN VARCHAR2 DEFAULT NULL,
    data_schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-17 INSERT_CLIP_TRIM_TAILプロシージャのパラメータ

パラメータ 説明

clip_table_name

CREATE_CLIPプロシージャを使用して作成されたクリッピング定義表の名前。

data_table_name

データが保存されている表の名前。

tail_frac

テール割合。

exclude_list

クリッピング定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。

clip_schema_name

クリッピング定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。


使用上の注意

特定の入力データ表に対して、テール割合(tail_frac)を変えながら、このプロシージャを反復的にコールできます。ビン定義の導出過程における個々の反復処理では、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。

たとえば、q = 0.2、col='mycol'、データが{1,2,2,2,3,4,4}である場合は、次の行がクリッピング定義表に挿入されます。

COL    LCUT   LVAL   RCUT   RVAL
----- -----  -----  -----  -----
mycol     2    NULL     4   NULL

ここで、1 + floor(N*q) = 1 + floor(7*0.2) = 2, lcut = val(2) = 2です。

また、N – floor(N*q) = 7 – floor(7*0.2) = 6, rcut = val(6) = 4です。

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出されるクリッピング定義をclip_tableに書き込みます。

BEGIN
    DBMS_DATA_MINING_TRANSFORM.INSERT_CLIP_TRIM_TAIL(
       'clip_table', 'build_table');
END;

INSERT_CLIP_WINSOR_TAILプロシージャ

このプロシージャは、入力データ表の列のうち、除外リストに指定されていないNUMBER列に基づき、量的属性のWinsorization定義を導出します。次に、そのWinsorization定義を、CREATE_CLIPで作成したクリッピング定義表に挿入します。

各属性のWinsorization定義を導出するために、val(1) < val(2) <... < val(N)となるように(Nは属性値のうち、NULL以外の値の個数)、NULL以外の属性値が昇順に並べ替えられます。

lcut = val(1+floor(N*q))
lval = lcut
rcut = val(N–floor(N*q))
rval = rcut

ここで、ABS(NVL(tail_fraq,0))です。q >= 0.5の場合、データ変換は行われません。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_CLIP_WINSOR_TAIL (
    clip_table_name    IN VARCHAR2,
    data_table_name    IN VARCHAR2,
    tail_frac          IN NUMBER DEFAULT 0.025,
    exclude_list       IN Column_List DEFAULT NULL,
    clip_schema_name   IN VARCHAR2 DEFAULT NULL,
    data_schema_name   IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-18 INSERT_CLIP_WINSOR_TAILプロシージャのパラメータ

パラメータ 説明

clip_table_name

CREATE_CLIPプロシージャを使用して作成されたクリッピング定義表の名前。

data_table_name

データが保存されている表の名前。

tail_frac

テール割合。

exclude_list

クリッピング定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。

clip_schema_name

クリッピング定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。


使用上の注意

特定の入力データ表に対して、テール割合(tail_frac)を変えながら、このプロシージャを反復的にコールできます。 ビン定義の導出過程における個々の反復処理では、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。すべての値がNULL値である属性(列)は無視されます。

たとえば、q = 0.2、col='mycol'、データが{1,2,2,2,3,4,4}である場合は、次の行がクリッピング定義表に挿入されます。

COL    LCUT   LVAL   RCUT  RVAL
----- -----  -----  ----- -----
mycol     2      2      4      4

ここで、1 + floor(N*q) = 1 + floor(7*0.2) = 2, lcut = val(2) = 2です。

また、N – floor(N*q) = 7 – floor(7*0.2) = 6, rcut = val(6) = 4です。

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出されるクリッピング定義をclip_tableに書き込みます。

BEGIN
    DBMS_DATA_MINING_TRANSFORM.INSERT_CLIP_WINSOR_TAIL(
       'clip_table', 'build_table');
END;

INSERT_MISS_CAT_MODEプロシージャ

このプロシージャは、入力データ表の列のうち、除外リストに指定されていないVARCHAR2列とCHAR列に基づき、質的属性の欠損値処理定義を導出します。次に、その定義を、CREATE_MISS_CATで作成した定義表に挿入します。

選択した各列の定義は、入力データ表から計算されるモード値に基づいて決定されます。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_MISS_CAT_MODE (
    miss_table_name    IN VARCHAR2,
    data_table_name    IN VARCHAR2,
    exclude_list       IN COLUMN_LIST DEFAULT NULL,
    miss_schema_name   IN VARCHAR2 DEFAULT NULL,
    data_schema_name   IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-19 INSERT_MISS_CAT_MODEプロシージャのパラメータ

パラメータ 説明

miss_table_name

CREATE_MISS_CATを使用して作成された質的属性の欠損値処理定義表の名前。

data_table_name

データが保存されている表の名前。

exclude_list

欠損値処理の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。COLUMN_LISTの定義については、「データ型」を参照してください。

miss_schema_name

質的属性の欠損値処理定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。


使用上の注意

exclude_listパラメータを使用して、欠損値処理が適用される質的属性を選択できます。選択したすべての属性内のNULL値は、その属性のモード(最も使用頻度の高い値)に置換されます。

NULLを他の値に置換する場合は、定義表を編集します。

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての質的属性から導出される欠損値定義(モード)をmiss_tableに書き込みます。

BEGIN
    DBMS_DATA_MINING_TRANSFORM.INSERT_MISS_CAT_MODE(
       'miss_table', 'build_table');
END;

INSERT_MISS_NUM_MEANプロシージャ

このプロシージャは、入力データ表の列のうち、除外リストに指定されていないNUMBER列に基づき、欠損値処理定義を導出します。次に、その定義を、CREATE_MISS_NUMで作成した定義表に挿入します。

選択した各列の定義は、入力データ表から計算される平均値に基づいて決定されます。 平均値は、この定義表に挿入される前に、round_numパラメータで指定した有効桁数に丸められます。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_MISS_NUM_MEAN (
    miss_table_name    IN VARCHAR2,
    data_table_name    IN VARCHAR2,
    exclude_list       IN COLUMN_LIST DEFAULT NULL,
    round_num          IN PLS_INTEGER DEFAULT 6,
    miss_schema_name   IN VARCHAR2 DEFAULT NULL,
    data_schema_name   IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-20 INSERT_MISS_NUM_MEANプロシージャのパラメータ

パラメータ 説明

miss_table_name

CREATE_MISS_CATを使用して作成された質的属性の欠損値処理定義表の名前。

data_table_name

データが保存されている表の名前。

exclude_list

不明値処理の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。COLUMN_LISTの定義については、「データ型」を参照してください。

round_num

表内の値の有効桁数。

miss_schema_name

量的属性の欠損値処理定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。


使用上の注意

exclude_listパラメータを使用して、欠損値処理が適用される量的属性を選択できます。選択したすべての属性内のNULL値は、その属性の平均値に置換されます。

NULLを他の値に置換する場合は、定義表を編集します。

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出される欠損値定義(モード)をmiss_tableに書き込みます。

BEGIN
    DBMS_DATA_MINING_TRANSFORM.INSERT_MISS_CAT_MODE(
       'miss_table', 'build_table');
END;

INSERT_NORM_LIN_MINMAXプロシージャ

このプロシージャでは、入力データ表の列のうち、除外リストに指定されていないNUMBER列に基づき、最小値/最大値ベースの正規化定義を導出します。次に、その正規化定義を、CREATE_NORM_LINで作成した正規化定義表に挿入します。

個々の量的属性(列)の正規化定義は、入力データ表から計算される平均値(mean)と標準偏差(standard deviation)に基づいて決定されます。線形正規化式のパラメータは、shift = mean、scale = standard deviationとなります。 shift列とscale列の値は、この定義表に挿入される前に、round_numパラメータで指定した有効桁数に丸められます。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_NORM_LIN_MINMAX (
     norm_table_name     IN VARCHAR2,
     data_table_name     IN VARCHAR2,
     exclude_list        IN Column_List DEFAULT NULL,
     round_num           IN PLS_INTEGER DEFAULT 6,
     norm_schema_name    IN VARCHAR2 DEFAULT NULL,
     data_schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-21 INSERT_NORM_LIN_MINMAXプロシージャのパラメータ

パラメータ 説明

norm_table_name

CREATE_NORM_LINプロシージャを使用して作成された正規化定義表の名前。

data_table_name

データが保存されている表の名前。

exclude_list

正規化定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。

round_num

表内の値の有効桁数。

norm_schema_name

正規化定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。


使用上の注意

特定の入力データ表に対して、このプロシージャを反復的にコールして正規化定義を導出できます。その導出過程における個々の反復処理では、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。

すべての値がNULL値である属性(列)、および一意の値を1つしか持たない属性(列)は無視されます。

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出される正規化定義をnorm_minmax_tableに書き込みます。

BEGIN
   DBMS_DATA_MINING_TRANSFORM.INSERT_NORM_LIN_MINMAX(
      'norm_minmax_table', 'build_table');
END;

INSERT_NORM_LIN_SCALEプロシージャ

このプロシージャでは、入力データ表の列のうち、除外リストに指定されていないNUMBER列に基づき、最小値/最大値ベースの正規化定義を導出します。次に、その正規化定義を、CREATE_NORM_LINで作成した正規化定義表に挿入します。

この正規化方式では、データの最小値と最大値に基づいて、各属性の正規化定義が決定されます。 シフト(shift)の値はshift = 0という式になり、スケール(scale)の値はscale = max{abs(max), abs(min)}という式になります。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_NORM_LIN_SCALE (
     norm_table_name     IN VARCHAR2,
     data_table_name     IN VARCHAR2,
     exclude_list        IN Column_List DEFAULT NULL,
     round_num           IN PLS_INTEGER DEFAULT 6,
     norm_schema_name    IN VARCHAR2 DEFAULT NULL,
     data_schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-22 INSERT_NORM_LIN_SCALEプロシージャのパラメータ

パラメータ 説明

norm_table_name

CREATE_NORM_LINプロシージャを使用して作成された正規化定義表の名前。

data_table_name

データが保存されている表の名前。

exclude_list

正規化定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。

round_num

表内の値の有効桁数。

norm_schema_name

正規化定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。


使用上の注意

特定の入力データ表に対して、このプロシージャを反復的にコールして正規化定義を導出できます。その導出過程における個々の反復処理では、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。

すべての値がNULL値である属性(列)、および一意の値を1つしか持たない属性(列)は無視されます。

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出される正規化定義をnorm_minmax_tableに書き込みます。

BEGIN
   DBMS_DATA_MINING_TRANSFORM.INSERT_NORM_LIN_SCALE(
      'norm_scale_table', 'build_table');
END;

INSERT_NORM_LIN_ZSCOREプロシージャ

このプロシージャでは、入力データ表の列のうち、除外リストに指定されていないNUMBER列に基づき、Zスコアによる正規化定義を導出します。次に、その正規化定義を、CREATE_NORM_LINで作成した正規化定義表に挿入します。

個々の量的属性(列)の正規化定義は、入力データ表から計算される最小値(min)と最大値(max)に基づいて決定されます。線形正規化式のパラメータは、shift = min、scale = max – minとなります。shift列とscale列の値は、この定義表に挿入される前に、round_numパラメータで指定した有効桁数に丸められます。

構文

DBMS_DATA_MINING_TRANSFORM.INSERT_NORM_LIN_ZSCORE (
     norm_table_name     IN VARCHAR2,
     data_table_name     IN VARCHAR2,
     exclude_list        IN Column_List DEFAULT NULL,
     round_num           IN PLS_INTEGER DEFAULT 6,
     norm_schema_name    IN VARCHAR2 DEFAULT NULL,
     data_schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-23 INSERT_NORM_LIN_ZSCOREプロシージャのパラメータ

パラメータ 説明

norm_table_name

CREATE_NORM_LINプロシージャを使用して作成された正規化定義表の名前。

data_table_name

データが保存されている表の名前。

exclude_list

正規化定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。

round_num

表内の値の有効桁数。

norm_schema_name

正規化定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。


使用上の注意

特定の入力データ表に対して、このプロシージャを反復的にコールしてビン定義を導出できます。その導出過程における個々の反復処理では、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。

すべての値がNULL値である属性(列)、および一意の値を1つしか持たない属性(列)は無視されます。

ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出される正規化定義をnorm_zscore_tableに書き込みます。

BEGIN
   DBMS_DATA_MINING_TRANSFORM.INSERT_NORM_LIN_ZSCORE(
      'norm_zscore_table', 'build_table');
END;

/


SET_EXPRESSIONプロシージャ

このプロシージャは、式にVARCHAR2チャンクを追加します。NULLを追加すると、式が消去されます。

構文

DBMS_DATA_MINING_TRANSFORM.SET_EXPRESSION (
           expression       IN OUT NOCOPY EXPRESSION_REC,
           chunk            VARCHAR2 DEFAULT NULL);

パラメータ

表39-24 SET_EXPRESSIONプロシージャのパラメータ

パラメータ 説明

expression

変換式。

chunk

式に追加するチャンク。



SET_TRANSFORMプロシージャ

このプロシージャは、属性の変換式および逆変換式を指定します。

新しい変換指定が変換リストに追加されます。

構文

DBMS_DATA_MINING_TRANSFORM.SET_TRANSFORM (
          xform_list               IN OUT NOCOPY TRANSFORM_LIST,
          attribute_name           VARCHAR2,
          attribute_subname        VARCHAR2,
          expression               VARCHAR2,
          reverse_expression       VARCHAR2,
          attribute_spec           VARCHAR2 DEFAULT NULL);

パラメータ

表39-25 SET_TRANSFORMプロシージャのパラメータ

パラメータ 説明

xform_list

属性の変換リスト。

attribute_name

属性の名前。

attribute_subname

attribute_nameがネストされた列の場合はネストされた属性の名前。それ以外の場合はNULL

expression

SQL式。

reverse_expression

モデルのディテールおよび監視ありモデルのターゲット(属性がターゲットの場合)の変換を読みやすさを考慮して元に戻すSQL式。

attribute_spec

attribute_specに値NOPREPを指定すると、この属性がDBMS_DATA_MINING.CREATE_MODELで自動的に変換されないようにすることができます。(「CREATE_MODELプロシージャ」を参照)



STACK_BIN_CATプロシージャ

スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合、このプロシージャは、質的属性のビニング式を既存の式の上にスタックし、スタック定義を更新します。

変換定義内の列のうち、スタック定義内に一致するエントリがない列が(元の式またはネストされた属性の"VALUE"のかわりに"{col}"を使用して)スタック列に追加されます。

これに応じて、スタック定義内の反転式が更新されます。つまり、式が更新または追加された場合は対応する反転式も更新または追加され、式が変更されないままの場合は反転式も変更されないままとなります。 反転式は、NULLの場合、恒等関数("{attr}"またはネストされた属性の"VALUE")として処理されます。

スタック定義にエントリ({attr}, {expr}, {rexp})があり、変換定義内に一致するエントリがある場合、スタック後の{expr}の形式は次のようになります。

DECODE({expr}, '{val1}', '{bin1}',
                 ...
               '{valN}', '{binN}',
                NULL,     NULL,
                         '{bin(N+1)}')

{rexp}の形式は次のようになります。

DECODE("{attr}", '{bin1}',     '{rev1}',
                  ...
                  '{binN}',     '{revN}',
                  NULL,         'NULL',
                  '{bin(N+1)}', 'DEFAULT')

ここで、{revI}は、{valI}に反転式を適用した場合の結果です。

{binI}と{binJ}が等しい場合は、前述のDECODEファンクションの対応するエントリが次のようにマージされます。

'{binI}', '{revI}, {revJ}'

複数のエントリがデフォルトのビン{bin(N+1)}にマップされる場合は、すべてのエントリが次のようにマージされます。

 '{bin(N+1)}', 'DEFAULT'

反転式では、無効なビンはNULLに暗黙的にマップされることに注意してください。

構文

DBMS_DATA_MINING_TRANSFORM.STACK_BIN_CAT (
     bin_table_name     IN       VARCHAR2,
     transform_list     IN/OUT   DM_TRANSFORMS,
     literal_flag       IN       BOOLEAN  DEFAULT FALSE,
     bin_schema_name    IN       VARCHAR2 DEFAULT NULL);

パラメータ

表39-26 STACK_BIN_CATプロシージャのパラメータ

パラメータ 説明

bin_table_name

ビン定義表の名前。

transform_list

スタックされた変換のリスト。

literal_flag

リテラル・フラグ(「使用上の注意」を参照)。

bin_schema_name

ビン定義表のスキーマ。


使用上の注意

リテラル・フラグは、{bin}の値が有効なSQLリテラルであるかどうかを示します。 このフラグがTRUEに設定されている場合、{bin}の値はそのままの形式で式の作成に使用されます。それ以外の場合は、有効なテキスト・リテラルに変換されます(値は引用符で囲まれ、引用符は内部で二重になります)。デフォルトでは、このフラグの値はFALSEに設定されます。このフラグをTRUEに設定できる1つの例は、{bin}の値がすべて数値の場合です。その場合は、変換後の列(属性)がテキスト(デフォルト設定)ではなく数値のままになります。たとえば、次の変換定義について考えてみます。

      COL   VAL            BIN
      ----- -------------- ----
      mycol Waltham        1
      mycol Burlington     1
      mycol Redwood Shores 2

フラグの値をFALSEに設定すると、次の{expr}および{rexp}が生成されます。

     expr = DECODE("mycol", 'Waltham',        '1',
                            'Burlington',     '1',
                            'Redwood Shores', '2')
     rexp = DECODE("COL1", '1',  '''Waltham'', ''Burlington''',
                           '2',  '''Redwood Shores''',
                             NULL, 'DEFAULT')

このフラグをTRUEに設定すると、次の式が生成されます。

     expr = DECODE("mycol", 'Waltham',        1,
                            'Burlington',     1,
                            'Redwood Shores', 2)
      rexp = DECODE("COL1", 1,    '''Waltham'', ''Burlington''',
                            2,    '''Redwood Shores''',
                            NULL, 'DEFAULT')

変換定義:

       {col = COL1, val = waltham,        bin = MA}
       {col = COL1, val = burlington,     bin = MA}
       {col = COL1, val = redwood shores, bin = CA}
       {col = COL2, val = MA,             bin = East}
       {col = COL2, val = CA,             bin = West}
       {col = COL2, val = NULL,           bin = USA}

スタック定義:

       {attr = COL1, expr = lower(COL1), rexp = initcap(COL1)}
       {attr = COL3, expr = upper(COL3), rexp = initcap(COL3)}

この場合、次の更新されたスタック定義が生成されます。

       {attr = COL1,
        expr = DECODE(lower(COL1), 'waltham',        'MA',
                                   'burlington',     'MA',
                                   'redwood shores', 'CA'),
        rexp = DECODE("COL1", 'MA', '''Waltham'', ''Burlington''',
                              'CA', '''Redwood Shores''',
                               NULL, 'DEFAULT')}
       {attr = COL3,
        expr = upper(COL3),
        rexp = initcap(COL3)}
       {attr = COL2,
        expr = DECODE("COL2", 'MA', 'East',
                              'NY', 'East',
                              'CA', 'West',
                               NULL, NULL,
                                    'USA')
        rexp = DECODE("COL2", 'East', '''MA''',
                              'West', '''CA''',
                               NULL,   'NULL',
                              'USA',  'DEFAULT')}

STACK_BIN_NUMプロシージャ

スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合、このプロシージャは、量的属性のビニング式を既存の式の上にスタックし、スタック定義を更新します。

スタック定義内の列のうち、変換定義内に一致するエントリがない列またはNULL式がある列は変更されません。変換定義内の列のうち、スタック定義内に一致するエントリがない列が(元の式またはネストされた属性の"VALUE"のかわりに"{col}"を使用して)スタック列に追加されます。

これに応じて、スタック定義内の反転式が更新されます。つまり、式が更新または追加された場合は対応する反転式も更新または追加され、式が変更されないままの場合は反転式も変更されないままとなります。反転式は、NULLの場合、恒等関数("{attr}"またはネストされた属性の"VALUE")として処理されます。

スタック定義にエントリ({attr}, {expr}, {rexp})があり、変換定義内に一致するエントリがある場合、スタック後の{expr}の形式は次のようになります。

CASE WHEN ({expr}) <  {val0}   THEN '{bin0}'
     WHEN ({expr}) <= {val1}   THEN '{bin1}'
     ...
     WHEN ({expr}) <= {valN}   THEN '{binN}'
     WHEN ({expr}) IS NOT NULL THEN '{bin(N+1)}'
END

{rexp}の形式は次のようになります。

DECODE("{attr}", '{bin0}',     '( ; {rev0})',
                 '{bin1}',     '[{rev0}; {rev1})',
                 ...
                 '{binN}',     '[{rev(N-1)}; {revN}]',
                 '{bin(N+1)}', '({revN}; )',
                   NULL,         'NULL')

ここで、{revI}は、{valI}に反転式を適用した場合の結果です。

{binI}と{binJ}が等しい場合は、前述のDECODEファンクションの対応するエントリが次のようにマージされます。

       '{binI}', '[{rev(I-1)}; {revI}), [{rev(J-1)}; {revJ})'

反転式では、無効なビンはNULLに暗黙的にマップされることに注意してください。

構文

DBMS_DATA_MINING_TRANSFORM.STACK_BIN_NUM (
     bin_table_name     IN       VARCHAR2,
     transform_list     IN/OUT   DM_TRANSFORMS,
     literal_flag       IN       BOOLEAN  DEFAULT FALSE,
     bin_schema_name    IN       VARCHAR2 DEFAULT NULL);

パラメータ

表39-27 STACK_BIN_NUMプロシージャのパラメータ

パラメータ 説明

bin_table_name

ビン定義表の名前。

transform_list

スタック定義。

literal_flag

リテラル・フラグ(「使用上の注意」を参照)。

bin_schema_name

ビン定義表のスキーマ。


使用上の注意

リテラル・フラグは、{bin}の値が有効なSQLリテラルであるかどうかを示します。 このフラグがTRUEに設定されている場合、{bin}の値はそのままの形式で式の作成に使用されます。それ以外の場合は、有効なテキスト・リテラルに変換されます(値は引用符で囲まれ、引用符は内部で二重になります)。デフォルトでは、このフラグの値はFALSEに設定されます。このフラグをTRUEに設定できる1つの例は、{bin}の値がすべて数値の場合です。その場合は、変換後の列(属性)がテキスト(デフォルト設定)ではなく数値のままになります。たとえば、次のxform定義について考えてみます。

  COL     VAL BIN
  ----- ----- -----
  mycol    10 NULL
  mycol    15 1
  mycol    20 2

フラグの値をFALSEに設定すると、次の{expr}および{rexp}が生成されます。

        expr = CASE WHEN "mycol" <  10 THEN NULL
                    WHEN "mycol" <= 15 THEN '1'
                    WHEN "mycol" <= 20 THEN '2' END

        rexp = DECODE("mycol", '1',  '[10; 15)',
                               '2',  '[15; 20]'
                               NULL, '( ; 10) OR (20; ) OR NULL')

このフラグをTRUEに設定すると、次の式が生成されます。

        expr = CASE WHEN "mycol" <  10 THEN NULL
                    WHEN "mycol" <= 15 THEN 1
                    WHEN "mycol" <= 20 THEN 2 END
        rexp = DECODE("mycol", 1,    '[10; 15)',
                               2,    '[15; 20]',
                               NULL, '( ; 10) OR (20; ) OR NULL')

変換定義:

  {col = COL1, val = 0,   bin = NULL}
  {col = COL1, val = 1,   bin = A}
  {col = COL1, val = 2,   bin = B}
  {col = COL1, val = 3,   bin = A}
  {col = COL2, val = 10,  bin = NULL}
  {col = COL2, val = 15,  bin = 1}
  {col = COL2, val = 20,  bin = 2}

スタック定義:

  {attr = COL1, expr = log(10, COL1), rexp = power(10, COL1)}
  {attr = COL3, expr = ln(COL3),      rexp = exp(COL3)}

この場合、次の更新されたスタック定義が生成されます。

  {attr = COL1,
   expr = CASE WHEN (log(10, COL1)) <  0 THEN NULL
               WHEN (log(10, COL1)) <= 1 THEN 'A'
               WHEN (log(10, COL1)) <= 2 THEN 'B'
               WHEN (log(10, COL1)) <= 3 THEN 'A' END,
   rexp = DECODE("COL1", 'A',   '[1; 10), [100; 1000]',
                         'B',   '[10; 100)',
                         NULL, '( ; 1), (1000; ), NULL')}
   {attr = COL3,
    expr = ln(COL3),
    rexp = exp(COL3)}
   {attr = COL2,
    expr = CASE WHEN "COL2" <  10 THEN NULL
                WHEN "COL2" <= 15 THEN '1'
                WHEN "COL2" <= 20 THEN '2' END
    rexp = DECODE("COL2", '1',  '[10; 15)',
                          '2',  '[15; 20]',
                           NULL, '( ; 10) OR (20; ) OR NULL')}

STACK_CLIPプロシージャ

スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合は、クリッピング式を既存の式の上にスタックし、スタック定義を更新します。

スタック定義内の列のうち、変換定義内に一致するエントリがない列またはNULL式がある列は変更されません。

変換定義内の列のうち、スタック定義内に一致するエントリがない列が(元の式またはネストされた属性の"VALUE"のかわりに"{col}"を使用して)スタック列に追加されます。

これに応じて、スタック定義内の反転式が更新されます。つまり、式が更新または追加された場合は対応する反転式も更新または追加され、式が変更されないままの場合は反転式も変更されないままとなります。 反転式は、NULLの場合、恒等関数("{attr}"またはネストされた属性の"VALUE")として処理されます。

スタック定義にエントリ({attr}, {expr}, {rexp})があり、変換定義内に一致するエントリがある場合、スタック後の{expr}の形式は次のようになります。

  CASE WHEN {expr} < {lcut} THEN {lval}
       WHEN {expr} > {rcut} THEN {rval}
                            ELSE {expr}
    END

{rexp}は変更されません。

構文

DBMS_DATA_MINING_TRANSFORM.STACK_CLIP (
          clip_table_name       VARCHAR2,
          xform_list            IN OUT NOCOPY TRANSFORM_LIST,
          clip_schema_name       VARCHAR2 DEFAULT NULL);

パラメータ

表39-28 STACK_CLIPプロシージャのパラメータ

パラメータ 説明

clip_table_name

クリッピング定義表。

xform_list

スタック定義。

clip_schema_list

クリッピング定義表のスキーマ。スキーマを指定しない場合は、独自のスキーマが想定されます。


変換定義:

       {col = COL1, lcut = -1.5, lval = -1.5, rcut = 4.5, rval = 4.5}
       {col = COL2, lcut = 0,    lval = 0,    rcut = 1,   rval = 1}

スタック定義:

       {attr = COL1, expr = log(10, COL1), rexp = power(10, COL1)}
       {attr = COL3, expr = ln(COL3),      rexp = exp(COL3)}

この場合、次の更新されたスタック定義が生成されます。

      {attr = COL1,
        expr = CASE WHEN log(10, COL1) < -1.5 THEN -1.5
                    WHEN log(10, COL1) > 4.5  THEN 4.5
                                              ELSE log(10, COL1)
               END,
        rexp = power(10, COL1)}
       {attr = COL3,
        expr = ln(COL3),
        rexp = exp(COL3)}
       {attr = COL2,
        expr = CASE WHEN COL2 < 0 THEN 0
                    WHEN COL2 > 1 THEN 1
                                  ELSE COL2
               END,
        rexp = NULL}

STACK_COL_REMプロシージャ

スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合、このプロシージャは、既存の式ではなく列削除定義式(NULL式)をスタックし、スタック定義を更新します。

スタック定義内の列のうち、変換定義内に一致するエントリがない列またはNULL式がある列は変更されません。変換定義内の列のうち、スタック定義内に一致するエントリがない列が(NULL式とともに)スタック定義に追加されます。

これに応じて、スタック定義内の反転式が更新されます。つまり、式が更新または追加された場合は対応する反転式も更新または追加され、式が変更されないままの場合は反転式も変更されないままとなります。 反転式は、NULLの場合、"{attr}"(恒等関数)またはネストされた列の"VALUE"として処理されます。

スタック定義にエントリ({attr}、{expr}、{rexp})があり、変換定義内に一致するエントリがある場合、スタック後の{expr}および{rexp}はいずれもNULLに変更されます。

構文

DBMS_DATA_MINING_TRANSFORM.STACK_COL_REM (
     rem_table_name     IN       VARCHAR2,
     transform_list     IN/OUT   DM_TRANSFORMS,
     rem_schema_name    IN       VARCHAR2 DEFAULT NULL);

パラメータ

表39-29 STACK_COL_REMプロシージャのパラメータ

パラメータ 説明

rem_table_name

列削除定義表の名前。

transform_list

スタック定義。

rem_schema_name

列削除定義表のスキーマ。


変換定義:

   {col = COL1, att = NULL}
   {col = COL2, att = NULL}

スタック定義:

   {attr = COL1, expr = log(10, COL1), rexp = power(10, COL1)}
   {attr = COL3, expr = ln(COL3),      rexp = exp(COL3)}

この場合、次の更新されたスタック定義が生成されます。

   {attr = COL1, expr = NULL,     rexp = NULL}
   {attr = COL3, expr = ln(COL3), rexp = exp(COL3)}
   {attr = COL2, expr = NULL,     rexp = NULL}

STACK_MISS_CATプロシージャ

スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合、このプロシージャは、質的属性の欠損値処理式を既存の式の上にスタックし、スタック定義を更新します。

スタック定義内の列のうち、変換定義内に一致するエントリがない列またはNULL式がある列は変更されません。変換定義内の列のうち、スタック定義内に一致するエントリがない列が(元の式またはネストされた属性の"VALUE"のかわりに"{col}"を使用して)スタック列に追加されます。

これに応じて、スタック定義内の反転式が更新されます。つまり、式が更新または追加された場合は対応する反転式も更新または追加され、式が変更されないままの場合は反転式も変更されないままとなります。反転式は、NULLの場合、恒等関数("{attr}"またはネストされた属性の"VALUE")として処理されます。スタック定義にエントリ({attr}, {expr}, {rexp})があり、変換定義内に一致するエントリがある場合、スタック後の{expr}の形式は次のようになります。

  NVL({expr}, {val})

{rexp}は変更されません。

構文

DBMS_DATA_MINING_TRANSFORM.STACK_MISS_CAT (
     miss_table_name     IN       VARCHAR2,
     transform_list      IN/OUT   DM_TRANSFORMS,
     miss_schema_name    IN       VARCHAR2 DEFAULT NULL);

パラメータ

表39-30 STACK_MISS_CATプロシージャのパラメータ

パラメータ 説明

miss_table_name

欠損値定義表の名前。

transform_list

スタック定義。

miss_schema_name

欠損値定義表の名スキーマ。


変換定義:

   {col = COL1, val = 'ma'}
   {col = COL2, val = 'CA'}

スタック定義:

  {attr = COL1, expr = lower(COL1), rexp = initcap(COL1)}
  {attr = COL3, expr = upper(COL3), rexp = initcap(COL3)}

この場合、次の更新されたスタック定義が生成されます。

  {attr = COL1,
   expr = NVL(lower(COL1), 'ma'),
   rexp = initcap(COL1)}
  {attr = COL3,
  expr = upper(COL3),
  rexp = initcap(COL3)}
 {attr = COL2,
  expr = NVL(COL2, 'CA'),
  rexp = NULL}

STACK_MISS_NUMプロシージャ

スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合は、量的属性の欠損値処理式を既存の式の上にスタックし、スタック定義を更新します。

スタック定義内の列のうち、変換定義内に一致するエントリがない列またはNULL式がある列は変更されません。変換定義内の列のうち、スタック定義内に一致するエントリがない列が(元の式またはネストされた属性の"VALUE"のかわりに"{col}"を使用して)スタック列に追加されます。

これに応じて、スタック定義内の反転式が更新されます。つまり、式が更新または追加された場合は対応する反転式も更新または追加され、式が変更されないままの場合は反転式も変更されないままとなります。反転式は、NULLの場合、恒等関数("{attr}"またはネストされた属性の"VALUE")として処理されます。

スタック定義にエントリ({attr}, {expr}, {rexp})があり、変換定義内に一致するエントリがある場合、スタック後の{expr}の形式は次のようになります。

  NVL({expr}, {val})

{rexp}は変更されません。

構文

DBMS_DATA_MINING_TRANSFORM.STACK_MISS_NUM (
     miss_table_name     IN       VARCHAR2,
     transform_list      IN/OUT   DM_TRANSFORMS,
     miss_schema_name    IN       VARCHAR2 DEFAULT NULL);

パラメータ

表39-31 STACK_MISS_NUMプロシージャのパラメータ

パラメータ 説明

miss_table_name

欠損値定義表の名前。

transform_list

スタック定義。

miss_schema_name

欠損値定義表の名スキーマ。


変換定義:

   {col = COL1, val = 4.5}
   {col = COL2, val = 0}

スタック定義:

  {attr = COL1, expr = log(10, COL1), rexp = power(10, COL1)}
  {attr = COL3, expr = ln(COL3),      rexp = exp(COL3)}

この場合、次の更新されたスタック定義が生成されます。

  {attr = COL1,
   expr = NVL(log(10, COL1), 4.5),
   rexp = power(10, COL1)}
  {attr = COL3,
   expr = ln(COL3),
   rexp = exp(COL3)}
  {attr = COL2,
   expr = NVL(COL2, 0),
   rexp = NULL}


STACK_NORM_LINプロシージャ

スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合は、線形正規化式を既存の式の上にスタックし、スタック定義を更新します。

スタック定義内の列のうち、変換定義内に一致するエントリがない列またはNULL式がある列は変更されません。変換定義内の列のうち、スタック定義内に一致するエントリがない列が(元の式またはネストされた属性の"VALUE"のかわりに"{col}"を使用して)スタック列に追加されます。

これに応じて、スタック定義内の反転式が更新されます。つまり、式が更新または追加された場合は対応する反転式も更新または追加され、式が変更されないままの場合は反転式も変更されないままとなります。反転式は、NULLの場合、恒等関数("{attr}"またはネストされた属性の"VALUE")として処理されます。

スタック定義にエントリ({attr}, {expr}, {rexp})があり、変換定義内に一致するエントリがある場合、スタック後の{expr}の形式は次のようになります。

    ({expr} - {shift})/{scale}

{attr}が置き換えられるたびに、{rexp}の形式は次のようになります。

    {attr}*{scale} + {shift}

構文

DBMS_DATA_MINING_TRANSFORM.STACK_NORM_LIN (
     norm_table_name     IN       VARCHAR2,
     transform_list      IN/OUT   DM_TRANSFORMS,
     norm_schema_name    IN       VARCHAR2 DEFAULT NULL);

パラメータ

表39-32 STACK_NORM_LINプロシージャのパラメータ

パラメータ 説明

norm_table_name

線形正規化定義表の名前。

transform_list

スタック定義。

norm_schema_name

線形正規化定義表のスキーマ。


変換定義:

  {col = COL1, shift = -1.5, scale = 20}
  {col = COL2, shift = 0,    scale = 10}

スタック定義:

  {attr = COL1, expr = log(10, COL1), rexp = power(10, COL1)}
  {attr = COL3, expr = ln(COL3),      rexp = exp(COL3)}

この場合、次の更新されたスタック定義が生成されます。

  {attr = COL1,
   expr = (log(10, COL1) - (-1.5)) / 20,
   rexp = power(10, COL1*20 + (-1.5))}
  {attr = COL3,
   expr = ln(COL3),
   rexp = exp(COL3)}
  {attr = COL2,
   expr = (COL2 - 0) / 10,
   rexp = COL2*10 + 0}

XFORM_BIN_CATプロシージャ

このプロシージャでは、質的属性をビンに区分するビューを作成します。変換定義表で指定された属性(列)のみが変換され、その他の属性は変更されません。

構文

DBMS_DATA_MINING_TRANSFORM.XFORM_BIN_CAT (
     bin_table_name       IN VARCHAR2,
     data_table_name      IN VARCHAR2,
     xform_view_name      IN VARCHAR2,
     literal_flag         IN BOOLEAN DEFAULT FALSE,
     bin_schema_name      IN VARCHAR2 DEFAULT NULL,
     data_schema_name     IN VARCHAR2 DEFAULT NULL,
     xform_schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-33 XFORM_BIN_CATプロシージャのパラメータ

パラメータ 説明

bin_table_name

CREATE_BIN_CATプロシージャを使用して作成された質的属性ビン定義表の名前。

data_table_name

データが保存されている表の名前。

xform_view_name

変換済の出力データが格納されるビューの名前。

literal_flag

リテラル・フラグ。

bin_schema_name

ビン定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。

xform_schema_name

変換済の出力データが格納されるビューに適用されるスキーマの名前。


使用上の注意

このプロシージャでは、CREATE_BIN_CATで作成しINSERT_BIN_CAT_FREQで変換定義を書き込んだ、ビン定義表を使用して問合せ作成処理を実行し、次の形式の質的なビン定義式を作成します。

DECODE("col", val_1, bin_1,
              ...
              val_N, bin_N,
              NULL,   NULL,
              bin_(N+1)) "col"

この定義式は、属性値val_1,..., val_NをN個のビンbin_1,..., bin_Nにマップし、その他の属性値をbin_(N+1)に挿入します。NULL値は変更されません。bin_(N+1)は省略可能です。省略した場合は、デフォルトでNULLが使用されます。 bin_(N+1)を指定するには、valをNULLに設定した行を渡します。

literal_flagパラメータは、binの値が有効なSQLリテラルであるかどうかを示します。このフラグがTRUEに設定されている場合、binの値がそのままの形式で問合せの作成に使用されます。それ以外の場合は、binの値が有効なSQLリテラルに変換されます(値は引用符で囲まれ、1つの一重引用符は2つの一重引用符で置換されます)。デフォルトでは、このフラグの値はFALSEに設定されます。このフラグをTRUEに設定できる1つの例は、binの値がすべて数値の場合です。その場合は、変換後の列(属性)がテキスト(デフォルト設定)ではなく数値になります。

O-Clusterモデル構築用にデータをビニングする場合は、literal_flagをTRUEに設定します。

colパラメータは、引用符で囲まれた識別子となるため、大/小文字が区別されます。 colvalの値が同じでbinの値は異なる行が複数存在する場合は、変換動作が未定義状態なので、binの値はどれが使用されるかわかりません。

例1: bin_catには、col = 'mycol'が4行あります。

{col = 'mycol', val = 'Waltham',        bin = 'MA'}
{col = 'mycol', val = 'Burlington',     bin = 'MA'}
{col = 'mycol', val = 'Redwood Shores', bin = 'CA'}
{col = 'mycol', val = NULL,             bin = 'OTHER'}

これにより次の式が生成されます。

 DECODE("mycol", 'Waltham',        'MA',
                 'Burlington',     'MA',
                 'Redwood Shores', 'CA',
                  NULL,             NULL,
                                   'OTHER') "mycol"

例2: bin_catには、col = 'mycol'が3行あります。

{col = 'mycol', val = 'Waltham',        bin = 'MA'}
{col = 'mycol', val = 'Burlington',     bin = 'MA'}
{col = 'mycol', val = 'Redwood Shores', bin = 'CA'}

これにより次の式が生成されます。

DECODE("mycol", 'Waltham',        'MA',
                'Burlington',     'MA',
                'Redwood Shores', 'CA') "mycol"

例3: 次の変換定義表があります。

COL   VAL            BIN
----- ----------     ---
mycol Waltham        1
mycol Burlington     1
mycol Redwood Shores 2

リテラル・フラグをFALSEに設定すると、次の式が生成されます。

DECODE ("mycol", 'Waltham',        '1',
                 'Burlington'      '1',
                 'Redwood Shores', '2') "mycol"

このフラグをTRUEに設定すると、次の式が生成されます。

DECODE("mycol", 'Waltham',        1,
                'Burlington',     1,
                'Redwood Shores', 2) "mycol"

次の簡単なプロシージャ・コールの例では、cat_bin_table内のビン定義に基づき、build_tableに対して変換問合せを実行するビューbuild_viewを作成します。

BEGIN
DBMS_DATA_MINING_TRANSFORM.XFORM_BIN_CAT(
'cat_bin_table', 'build_table', 'build_view');
END;
/

XFORM_BIN_NUMプロシージャ

このプロシージャでは、量的属性をビンに区分するビューを作成します。変換定義表で指定された属性(列)のみが変換され、その他の属性は変更されません。

構文

DBMS_DATA_MINING_TRANSFORM.XFORM_BIN_NUM (
     bin_table_name     IN VARCHAR2,
     data_table_name    IN VARCHAR2,
     xform_view_name    IN VARCHAR2,
     literal_flag       IN BOOLEAN DEFAULT FALSE,
     bin_schema_name    IN VARCHAR2 DEFAULT NULL,
     data_schema_name   IN VARCHAR2 DEFAULT NULL,
     xform_schema_name  IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-34 XFORM_BIN_NUMプロシージャのパラメータ

パラメータ 説明

bin_table_name

CREATE_BIN_NUMプロシージャを使用して作成された量的属性ビン定義表の名前。

data_table_name

データが保存されている表の名前。

xform_view_name

変換済の出力データが格納されるビューの名前。

literal_flag

リテラル・フラグ。

bin_schema_name

ビン定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。

xform_schema_name

変換済の出力データが格納されるビューに適用されるスキーマの名前。


使用上の注意

このプロシージャは、CREATE_BIN_NUMで作成しINSERT_BIN_NUM_EQWIDTHまたはINSERT_BIN_NUM_QTILEでビン定義を書き込んだ、ビン定義表を使用して問合せ作成処理を実行し、次の形式の量的なビン定義式を作成します。

CASE WHEN "col" <  val_0   THEN 'bin0_0
     WHEN "col" <= val_1   THEN 'bin_1'
     ...
     WHEN "col" <= val_N   THEN 'bin_N'
     WHEN "col" IS NOT NULL THEN 'bin_(N+1)'
END "col"

この定義式は、[val_0;val_N]の範囲内にある属性値をN個のビンbin_1,..., bin_Nにマップします。この範囲に入らない値は、次のように、bin_0またはbin_(N+1)に挿入されます。

(-inf; val_0)  -> bin_0
[val_0; val_1)  -> bin_1
...
(val_(N-1); val_N] -> bin_N
(val_N; +inf)  -> bin_(N+1)

NULL値は変更されません。bin_(N+1)は省略可能です。 省略した場合は、("col" > val_N)の範囲の値がNULLにマップされます。 bin_(N+1)を指定するには、valをNULLに設定した行を渡します。 WHEN ... THENのペアの順序は、特定のcolに属する値valの昇順になります。

literal_flagパラメータは、binの値が有効なSQLリテラルであるかどうかを示します。このフラグがTRUEに設定されている場合、binの値がそのままの形式で問合せの作成に使用されます。それ以外の場合は、binの値が有効なSQLリテラルに変換されます(値は引用符で囲まれ、1つの一重引用符は2つの一重引用符で置換されます)。デフォルトでは、このフラグの値はFALSEに設定されます。このフラグをTRUEに設定できる1つの例は、binの値がすべて数値の場合です。その場合は、変換後の列(属性)がテキスト(デフォルト設定)ではなく数値になります。

colの値は引用された識別子となるため、大文字と小文字が区別されることに注意してください。 colとvalの値が同じでbinの値は異なる行が複数存在する場合は、変換動作が未定義状態なので、binの値はどれが使用されるかわかりません。

例1: bin_numには、col = 'mycol'が4行あります。

{col = 'mycol', val = 15.5, bin = 'small'}
{col = 'mycol', val = 10,   bin = 'tiny'}
{col = 'mycol', val = 20,   bin = 'large'}
{col = 'mycol', val = NULL, bin = 'huge'}

これにより次の式が生成されます。

CASE WHEN "mycol" <  10       THEN 'tiny'
     WHEN "mycol" <= 15.5     THEN 'small'
     WHEN "mycol" <= 20       THEN 'large'
     WHEN "mycol" IS NOT NULL THEN 'huge'
 END "mycol"

例2: bin_numには、col = 'mycol'が3行あります。

{col = 'mycol', val = 15.5, bin = NULL}
{col = 'mycol', val = 10,   bin = 'tiny'}
{col = 'mycol', val = 20,   bin = 'large'}

これにより次の式が生成されます。

CASE WHEN "mycol" <  10   THEN NULL
     WHEN "mycol" <= 15.5 THEN 'small'
     WHEN "mycol" <= 20   THEN 'large'
END "mycol"

例3: 次の変換定義表があります。

COL   VAL  BIN
----- ---- ---
mycol   10 NULL
mycol 15.5 1
mycol   21 2

リテラル・フラグをFALSEに設定すると、次の式が生成されます。

CASE WHEN "mycol" <  10   THEN NULL
     WHEN "mycol" <= 15.5 THEN '1'
     WHEN "mycol" <= 20   THEN '2'
 END "mycol"

このフラグをTRUEに設定すると、次の式が生成されます。

CASE WHEN "mycol" <   10  THEN NULL
     WHEN "mycol" <= 15.5 THEN 1
     WHEN "mycol" <=  20  THEN 2
     END "mycol"

次の簡単なプロシージャ・コールの例では、num_bin_table内のビン定義による変換定義に基づき、build_tableに対して変換問合せを実行するビューbuild_viewを作成します。

BEGIN
   DBMS_DATA_MINING_TRANSFORM.XFORM_BIN_NUM(
      'num_bin_table', 'build_table', 'build_view');
END;
/

XFORM_CLIPプロシージャ

このプロシージャでは、クリッピングを実行するビューを作成します。変換定義表で指定された属性(列)のみがトリミングされ、その他の属性は変更されません。

構文

DBMS_DATA_MINING_TRANSFORM.XFORM_CLIP (
    clip_table_name       IN VARCHAR2,
    data_table_name       IN VARCHAR2,
    xform_view_name       IN VARCHAR2,
    clip_schema_name      IN VARCHAR2 DEFAULT NULL,
    data_schema_name      IN VARCHAR2,DEFAULT NULL,
    xform_schema_name     IN VARCHAR2,DEFAULT NULL;

パラメータ

表39-35 XFORM_CLIPプロシージャのパラメータ

パラメータ 説明

clip_table_name

CREATE_CLIPを使用して作成されたクリッピング定義表の名前。

data_table_name

データが保存されている表の名前。

xform_view_name

変換済の出力データが格納されるビューの名前。

clip_schema_name

クリッピング定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。

xform_schema_name

変換済の出力データが格納されるビューに適用されるスキーマの名前。


使用上の注意

このプロシージャでは、CREATE_CLIPで作成しINSERT_CLIP_WINSOR_TAILまたはINSERT_CLIP_TRIM_TAILでクリッピング定義を書き込んだ、クリッピング定義表を使用して問合せ作成処理を実行し、次の形式のクリッピング定義式を作成します。

CASE WHEN "col" < lcut THEN lval
     WHEN "col" > rcut THEN rval
                       ELSE "col"
END "col"

colの値は引用された識別子となるため、大文字と小文字が区別されることに注意してください。colの値が同じである行が変換定義表内に複数存在する場合は、変換動作が未定義状態なので、問合せの作成でどの変換定義が使用されるかわかりません。また、NULL値は変更されません。

Winsorizationの例: col = 'my_col'、lcut = –1.5、lval = –1.5、rcut = 4.5、rval = 4.5の場合、次の式が生成されます。

CASE WHEN "my_col" < –1.5 THEN -1.5
     WHEN "my_col" >  4.5 THEN 4.5
                          ELSE "my_col"
END "my_col"

次の簡単なプロシージャ・コールの例では、clip_table内のクリッピング定義による変換定義に基づき、build_tableに対して変換問合せを実行するビュー・オブジェクトbuild_viewを作成します。

BEGIN
    DBMS_DATA_MINING_TRANSFORM.XFORM_CLIP(
    'clip_table', 'build_table', 'build_view');
END;

XFORM_COL_REMプロシージャ

このプロシージャは、データ表から列を削除するビューを作成します。変換定義表で指定された属性(列)のみが削除され、その他の属性は変更されません。

構文

DBMS_DATA_MINING_TRANSFORM.XFORM_COL_REM (
     rem_table_name     IN       VARCHAR2,
     data_table_name    IN       VARCHAR2,
     xform_view_name    IN       VARCHAR2,
     rem_schema_name    IN       VARCHAR2 DEFAULT NULL,
     data_schema_name   IN       VARCHAR2 DEFAULT NULL,
     xform_schema_name  IN       VARCHAR2 DEFAULT NULL);

パラメータ

表39-36 XFORM_COL_REMプロシージャのパラメータ

パラメータ 説明

rem_table_name

列削除定義表の名前。

data_table_name

データが保存されている表の名前。

xform_view_name

変換済の出力データが格納されるビューの名前。

rem_schema_name

列削除定義表のスキーマ。

data_schema_name

データ表のスキーマ。

xform_schema_name

変換ビューのスキーマ。



XFORM_EXPR_NUMプロシージャ

入力データ表の列のうち、対象リストに指定され、除外リストに指定されていないNUMBER列に基づき、指定した式を適用するビューを作成します。その他の列は変更されません。

式は、出現するすべての列パターンを実際の列名に置き換えることによって、式パターンから構成されます。

構文

DBMS_DATA_MINING_TRANSFORM.XFORM_EXPR_NUM (
     expr_pattern       IN       VARCHAR2,
     data_table_name    IN       VARCHAR2,
     xform_view_name    IN       VARCHAR2,
     exclude_list       IN       COLUMN_LIST DEFAULT NULL,
     include_list       IN       COLUMN_LIST DEFAULT NULL,
     col_pattern        IN       VARCHAR2 DEFAULT ':col',
     data_schema_name   IN       VARCHAR2 DEFAULT NULL,
     xform_schema_name  IN       VARCHAR2 DEFAULT NULL);

パラメータ

表39-37 XFORM_EXPR_NUMプロシージャのパラメータ

パラメータ 説明

expr_pattern

式パターン。

data_table_name

データが保存されている表の名前。

xform_view_name

変換済の出力データが格納されるビューの名前。

exclude_list

除外する列のリスト。

include_list

含める列のリスト。

col_pattern

列パターン。

data_schema_name

データ表のスキーマ。

xform_schema_name

変換ビューのスキーマ。


  1. 2つのNUMBERCN1CN3、1つのCHARCC2および式パターンTO_CHAR(:col)が含まれている表TABの場合は、次の問合せが生成されます。

    SELECT TO_CHAR("CN1") "CN1", "CC2", TO_CHAR("CN3") "CN3"
           FROM TAB
    
  2. このプロシージャは、正規化されたデータを[0..1]の範囲にクリッピング(Winsorization)する場合に使用します。つまり、1より大きいxの値は1になり、0(ゼロ)より小さいxの値は0(ゼロ)になります。

    例1の表と次のパターンの場合:

    CASE WHEN :col < 0 THEN 0 WHEN :col > 1 THEN 1 ELSE :col END

    次の問合せが生成されます。

    SELECT CASE WHEN "CN1" < 0 THEN 0 WHEN "CN1" > 1 THEN 1
                ELSE "CN1" END "CN1",
            "CC2",
          CASE WHEN "CN3" < 0 THEN 0 WHEN "CN3" > 1 THEN 1
               ELSE "CN3" END "CN3"
          FROM TAB
    

XFORM_EXPR_STRプロシージャ

このプロシージャは、入力データ表の列のうち、対象リストに指定され、除外リストに指定されていないVARCHAR2列またはCHAR列に基づき、指定した式を適用するビューを作成します。その他の列は変更されません。

NUMBERのかわりにCHARおよびVARCHAR2列に適用される以外は、xform_expr_numと同様です。 「XFORM_EXPR_NUMプロシージャ」を参照してください。

構文

DBMS_DATA_MINING_TRANSFORM.XFORM_EXPR_STR (
     expr_pattern       IN       VARCHAR2,
     data_table_name    IN       VARCHAR2,
     xform_view_name    IN       VARCHAR2,
     exclude_list       IN       COLUMN_LIST DEFAULT NULL,
     include_list       IN       COLUMN_LIST DEFAULT NULL,
     col_pattern        IN       VARCHAR2 DEFAULT ':col',
     data_schema_name   IN       VARCHAR2 DEFAULT NULL,
     xform_schema_name  IN       VARCHAR2 DEFAULT NULL);

パラメータ

表39-38 XFORM_EXPR_STRプロシージャのパラメータ

パラメータ 説明

expr_pattern

式パターン。

data_table_name

データが保存されている表の名前。

xform_view_name

変換済の出力データが格納されるビューの名前。

exclude_list

除外する列のリスト。

include_list

含める列のリスト。

col_pattern

列パターン。

data_schema_name

データ表のスキーマ。

xform_schema_name

変換ビューのスキーマ。



XFORM_MISS_CATプロシージャ

このプロシージャは、質的属性の欠損値処理を実行するビューを作成します。XForm定義で指定された属性(列)のみが処理され、その他の属性は変更されません。

構文

DBMS_DATA_MINING_TRANSFORM.XFORM_MISS_CAT (
    miss_table_name       IN VARCHAR2,
    data_table_name       IN VARCHAR2,
    xform_view_name       IN VARCHAR2,
    miss_schema_name      IN VARCHAR2 DEFAULT NULL,
    data_schema_name      IN VARCHAR2 DEFAULT NULL,
    xform_schema_name     IN VARCHAR2 DEFAULT NULL;

パラメータ

表39-39 XFORM_MISS_CATプロシージャのパラメータ

パラメータ 説明

miss_table_name

CREATE_MISS_CATを使用して作成された質的属性の欠損値処理定義表の名前。

data_table_name

データが保存されている表の名前。

xform_view_name

変換済の出力データが格納されるビューの名前。

miss_schema_name

質的属性の欠損値処理定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。

xform_schema_name

変換済の出力データが格納されるビューに適用されるスキーマの名前。


使用上の注意

変換した列のデータ型は、CAST式にNVL関数を代入することによって維持されます。 たとえば、col = 'state'、val = 'MA'の場合、データ型はCHAR(2)になり、次の式が生成されます。

CAST (NVL("state", 'MA') AS CHAR(2)) "state"

次の簡単なプロシージャ・コールの例では、miss_table内の欠損値定義による変換定義に基づき、build_tableに対して変換問合せを実行するビュー・オブジェクトbuild_viewを作成します。

BEGIN
    DBMS_DATA_MINING_TRANSFORM.XFORM_MISS_CAT(
       'miss_table', 'build_table', 'build_view');
END;

XFORM_MISS_NUMプロシージャ

このプロシージャは、データ表内の量的属性の欠損値処理を実行するビューを作成します。XForm定義で指定された属性(列)のみが処理され、その他の属性は変更されません。

構文

DBMS_DATA_MINING_TRANSFORM.XFORM_MISS_NUM (
    miss_table_name       IN VARCHAR2,
    data_table_name       IN VARCHAR2,
    xform_view_name       IN VARCHAR2,
    miss_schema_name      IN VARCHAR2 DEFAULT NULL,
    data_schema_name      IN VARCHAR2 DEFAULT NULL,
    xform_schema_name     IN VARCHAR2 DEFAULT NULL;

パラメータ

表39-40 XFORM_MISS_NUMプロシージャのパラメータ

パラメータ 説明

miss_table_name

CREATE_MISS_NUMを使用して作成された量的属性の欠損値処理定義表の名前。

data_table_name

データが保存されている表の名前。

xform_view_name

変換済の出力データが格納されるビューの名前。

miss_schema_name

量的属性の欠損値処理定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。

xform_schema_name

変換済の出力データが格納されるビューに適用されるスキーマの名前。


次の簡単なプロシージャ・コールの例では、miss_table内の欠損値定義による変換定義に基づき、build_tableに対して変換問合せを実行するビュー・オブジェクトbuild_viewを作成します。

BEGIN
    DBMS_DATA_MINING_TRANSFORM.XFORM_MISS_NUM(
    'miss_table', 'build_table', 'build_view');
END;

XFORM_NORM_LINプロシージャ

このプロシージャでは、線形正規化を実行するビューを作成します。変換定義表で指定された属性(列)のみが変換され、その他の属性は変更されません。

構文

DBMS_DATA_MINING_TRANSFORM.XFORM_NORM_LIN (
     norm_table_name      IN VARCHAR2,
     data_table_name      IN VARCHAR2,
     xform_view_name      IN VARCHAR2,
     norm_schema_name     IN VARCHAR2 DEFAULT NULL,
     data_schema_name     IN VARCHAR2 DEFAULT NULL,
     xform_schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表39-41 XFORM_NORM_LINプロシージャのパラメータ

パラメータ 説明

norm_table_name

CREATE_NORM_LINプロシージャを使用して作成された正規化定義表の名前。

data_table_name

データが保存されている表の名前。

xform_view_name

変換済の出力データが格納されるビューの名前。

norm_schema_name

正規化定義表に適用されるスキーマの名前。

data_schema_name

入力データ表に適用されるスキーマの名前。

xform_schema_name

変換済の出力データが格納されるビューに適用されるスキーマの名前。


使用上の注意

このプロシージャは、CREATE_NORM_LINで作成し、INSERT_NORM_LIN_ZSCOREまたはINSERT_NORM_LIN_MINMAXで定義を書き込んだ、正規化定義表を使用して問合せ作成処理を実行し、次の形式の正規化定義式を作成します。

("col" - shift)/scale "col"

colの値は引用された識別子となるため、大文字と小文字が区別されることに注意してください。colの値が同じである行が変換定義表内に複数存在する場合は、変換動作が未定義状態なので、問合せの作成でどの変換定義が使用されるかわかりません。また、NULL値は変更されません。

たとえば、col = 'my_col'、shift = -1.5、scale = 20の場合、次の式が生成されます。

("my_col" - (-1.5))/20 "my_col"

次の簡単なプロシージャ・コールの例では、norm_minmax_table内の正規化定義に基づき、build_tableに対して変換問合せを実行するビューbuild_viewを作成します。

BEGIN
   DBMS_DATA_MINING_TRANSFORM.XFORM_NORM_LIN(
      'norm_minmax_table', 'build_table', 'build_view');
END;

XFORM_STACKプロシージャ

スタック定義で指定されているデータ表の変換を実行するビューを作成します。スタック定義で指定されている属性(列)のみが変換され、その他の属性は変更されません。

スタック定義内のすべての列が適用されます。式フィールドにNULLが指定されている列は除外されます。スタック定義内の列のうち、データ内に一致する列がない列がビューに追加されます。

構文

DBMS_DATA_MINING_TRANSFORM.XFORM_STACK (
     transform_list     IN     DM_TRANSFORMS,
     data_table_name    IN     VARCHAR2,
     xform_view_name    IN     VARCHAR2,
     data_schema_name   IN     VARCHAR2 DEFAULT NULL,
     xform_schema_name  IN     VARCHAR2 DEFAULT NULL);

パラメータ

表39-42 XFORM_STACKプロシージャのパラメータ

パラメータ 説明

transform_list

スタック定義。

data_table_name

データが保存されている表の名前。

xform_view_name

変換済の出力データが格納されるビューの名前。

data_schema_name

データ表のスキーマ。

xform_schema_name

変換ビューのスキーマ。