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

戻る
戻る
 
次へ
次へ
 

26 DBMS_DATA_MINING_TRANSFORM

DBMS_DATA_MINING_TRANSFORMパッケージには、データ・マイニング用のデータを準備するデータ変換ユーティリティが含まれています。 データの準備完了後、そのデータを使用して、DBMS_DATA_MININGパッケージまたはOracle Data Mining(ODM)Java APIでモデルを作成し、スコアリングできます。 モデルは、データ・マイニング用のSQLスコアリング・ファンクションを使用してもスコアリングできます。

DBMS_DATA_MINING_TRANSFORMは、オープンソースのPL/SQLパッケージです。 このパッケージのルーチンを使用して、データ・マイニング用のデータを準備できます。また、パブリック・ソース・コードを使用して独自のルーチンを開発することもできます。

ソース・コード、インタフェース定義およびインライン・ドキュメントは、$ORACLE_HOME/rdbms/admin/dbmsdmxf.sqlで入手できます。


関連項目:

  • 第25章「DBMS_DATA_MINING」。 このパッケージは、モデルの作成、スコアリング、エクスポートおよびインポート用のルーチンを提供します。 また、モデルに関する情報を戻す機能も提供します。

  • 第72章「DBMS_PREDICTIVE_ANALYTICS」。 このパッケージは、予測データ・マイニングのプロセス全体(データの前処理からモデルの作成、新しいデータのスコアリングに至るまで)を自動化します。

  • データ・マイニングのサンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

  • データ・マイニングの概要は、『Oracle Data Mining概要』を参照してください。

  • SQLおよびJavaでのデータ・マイニング・アプリケーションの開発については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。


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


DBMS_DATA_MINING_TRANSFORMパッケージの使用方法

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


概要

DBMS_DATA_MINING_TRANSFORMパッケージは、次の2つの役割を果たします。


注意:

DBMS_DATA_MINING_TRANSFORMパッケージは、Oracle Data Miningでは必要ありません。 前処理用のユーティリティを独自に開発したり、業務用にカスタマイズしたサードパーティ・ツールを使用することができます。

DBMS_DATA_MINING_TRANSFORMの基本的な設計思想は、データ・マイニングで通常使用する変換処理のほとんどをSQLで十分効率的に実行できるという事実に基づいています。 たとえば、CASE式またはDECODE関数を使用すれば、ビニングを実行できます。線形正規化は、(x - shift)/scale(xは変換対象のデータ値)という形式の単純な算術式で表現できます。

ただし、変換を実行する問合せが長くなる可能性があります。 問合せの作成を補助できる便利なルーチンがあればそれを使用することをお薦めします。 したがって、このパッケージは、最もよく使用されるマイニング変換に適用可能な問合せ作成サービスや、それ以外の変換を実行する場合でも容易に拡張可能なフレームワークを提供することを目的としています。


表記法に関する注意:

この章では、数値集合を表すときに標準的な範囲表記法を使用します。
  • [a,b]は、a以上かつb以下の実数の集合です。

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

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

添字は標準の表記法には準拠していないため、"XN"のかわりに"X_N"が使用されます。



関連項目:

Oracle Data Miningでは、データ・マイニングのサンプル・プログラムを使用できます。 これらのプログラムには、DBMS_DATA_MINING_TRANSFORMを使用したデータ変換のサンプルが含まれています。 サンプル・プログラムの使用手順については、『Oracle Data Mining管理者ガイド』を参照してください。


データ型

表26-1 データ型の要約

データ型 説明

Column_List

マイニング属性を表す列名のリスト。VARCHAR2(32)VARRAY(1000)のように定義します。



変換方式

DBMS_DATA_MINING_TRANSFORMパッケージでは、ビニング、正規化、Winsorization、クリッピング、および不明な値の変換がサポートされています。

ビニング

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

DBMS_DATA_MINING_TRANSFORMでは、カテゴリ属性と数値属性のビニングがサポートされています。 カテゴリ属性はVARCHAR2/CHARデータ型、数値属性はNUMBERデータ型を持ちます。

頻度が上位N番までのカテゴリ・ビニング

このビニング方式では、データから計算される値の発生頻度に基づいて、各属性のビン定義が決定されます。 ユーザーは、特定の数(N個)のビンを指定します。各ビン(bin_1, ..., bin_N)は、発生頻度が上位の値に対応します。 残りのすべての値は、bin_N+1に属します。


等幅の数値ビニング

このビニング方式では、データから計算される最小値と最大値に基づいて、各属性のビン定義が決定されます。 ユーザーは、特定の数(N個)のビンを指定します。bin_1,..., bin_Nの各ビンは、最小値から最大値までの範囲全体を等しい幅(inc = (max – min)/N)に分割したものです。bin_0は(–inf, min)の範囲に対応し、bin_(N+1)は(max, + inf)の範囲に対応します。 Nが指定されていない場合は、データから推定できます。


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

このビニング方式では、各クオンタイルの最小値に基づいて、各属性のビン定義が決定されます(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]の範囲にそれぞれ対応します。 左端と右端の値が等しいビンは破棄されます。


正規化

正規化とは、x_new = (x_old-shift)/scaleという式に基づき、連続値を特定の範囲([–1.0,1.0]、[0.0,1.0]など)に変換することを意味します。 正規化は数値属性のみに適用されます。

最小値と最大値による正規化

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


スケールによる正規化

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


Zスコアによる正規化

この正規化方式では、データから計算される平均値と標準偏差に基づいて、各属性の正規化定義が決定されます。 シフト(shift)の値はshift = meanという式で計算され、スケール(scale)の値はscale = standard deviationという式で計算されます。


Winsorizationとトリミング(クリッピング)

属性値の計算に異常値が大きく影響することがあります。 属性値の計算を適正化するには、データの前処理として異常値を除外するか、異常値の影響を最小限に抑える必要があります。

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

トリミングでは、テール値が除外されます。つまり、トリミングされた値は以降の値で無視されます。 トリミングを実行するには、テール値をNULLに設定します。

不明な値の処理

不明な値の処理には、データ内のNULL値を置換する処理が含まれます。 不明な値の処理は、属性値全体と比較して不明な値の割合が高い場合に推奨されます。 データ内の不明な値が比較的少ない場合は、データ・マイニングのために不明な値を削除できます。

不明な値を置換する際、置換する必要がある値を特定または推定できる場合は、NULLを置換できます。 NULLがランダムに省略されていると推定される場合は、それらを意味のある値に置換できます。

DBMS_DATA_MINING_TRANSFORM INSERTルーチンでは、数値属性のNULLを意味のある属性値に置換し、カテゴリ属性のNULLをモードに置換して不明な値を処理します。


変換の定義手順

DBMS_DATA_MINING_TRANSFORMは、CREATEINSERTおよびXFORM操作を定義するルーチンを提供します。 データ変換を定義するには、次の手順を実行します。

  1. CREATEルーチンを使用して、事前定義済の列セットを持つ変換定義表を作成します。

  2. INSERTルーチンを使用して、選択した属性の変換定義をその表に移入します。

  3. XFORMルーチンを使用して、変換定義表のビューを作成します。

変換定義表の作成

変換定義表を作成するには、次のプロシージャを使用します。

通常、変換定義表の正確性と整合性は適正な作成プロセスによって保証されます。 また、整合性制約メカニズムを利用して、変換定義表の整合性を維持することもできます。 その場合は、CREATEルーチンによって作成された表を変更するか、必要な整合性制約に基づいて手動で表を作成します。

変換の定義

各属性の変換を定義する(変換定義表に変換定義を挿入する)場合は、事前定義の方式(自動変換定義)によるデータ検査に基づいた方法が最もよく使用されます。 DBMS_DATA_MINING_TRANSFORMINSERTルーチンもよく使用されます。 たとえば、Zスコアによる正規化方式では、データの平均値と標準偏差を計算し、それらの値を線形正規化変換のパラメータ(シフトおよびスケール)として使用します。

変換定義表に移入するには、次のプロシージャを使用します。

特定の問題に関するすべてのマイニング属性を変換定義表によって完全に表現できるまで、これらのルーチンを何回かコールして、様々なデータソースの関連属性をすべて変換してください。

自動変換定義を実行した後、変換定義表に対してSQL DML文を発行すると、すべての変換定義または一部の変換定義を調整できます。こうして、きわめて柔軟な方法で独自の変換を定義できます。

INSERTルーチンでは、次に示す柔軟な方法で変換を定義できます。

変換済データを取り出す問合せの作成

問合せの作成には、事前定義された列を持つ単純な変換定義表が使用されます。 問合せ作成ルーチンはマクロのようなものであり、変換定義表はマクロ展開時に使用されるパラメータと考えてください。 C言語で#defineマクロを使用する場合と同様に、ルーチンのコール元は、マクロが正しく展開される(その結果、SQLの問合せとして有効である)ように留意してください。

変換問合せを示すビューを作成するには、次のプロシージャを使用します。

数値属性とカテゴリ属性の両方がデータに含まれている場合は、1つの変換ステップの結果を次のステップに渡す必要があります。 たとえば、XFORM_BIN_CATの結果をXFORM_BIN_NUMに渡します。また、その逆の渡し方も可能です。 このように変換結果をやり取りできるのは、数値属性変換ルーチンとカテゴリ属性変換ルーチンが別々の属性集合に作用するためです。


変換例

特定のデータ・マイニング問題のデータセットを取り扱うときは、すべてのマイニング操作において、共通の前処理と変換処理をマイニング・データに適用する必要があります。 たとえば、特定の変換定義に従ってモデル構築用データを前処理した場合は、テスト・データとスコアリング・データも同じ変換定義に従って前処理する必要があります。

次に例を示し、DBMS_DATA_MINING_TRANSFORMパッケージのルーチンの一般的な使用方法を説明します。 この例では、入力表に数値属性データとカテゴリ属性データの両方が含まれており、両方のデータについてビニングを行う必要があると想定します。 具体的な操作手順は次のとおりです。

  1. CREATE_BIN_NUMをコールして、空の数値ビン定義表を作成します。

  2. INSERT_BIN_NUM_EQWIDTHをコールして、入力の構築データ内のすべての数値属性に対する変換を定義します。 (この例では、説明を簡単にするため、すべての数値属性属性を10個のビンに区分するものとします)。 O-Clusterモデルに対してビニングを実行する場合は、INSERT_AUTOBIN_NUM_EQWIDTHを使用します。

  3. 次に、数値ビン定義表と構築データ表を入力として、XFORM_BIN_NUMをコールします。 生成されたオブジェクトは、数値ビニングを実行する構築データ表をSQL文の問合せによって表したビューです。 この出力オブジェクト(ビュー)にbuild_bin_num_viewという名前を付けます。

  4. カテゴリ属性もビニングする必要があるため、CREATE_BIN_CATをコールして、カテゴリ・ビン定義表を作成します。

  5. 次に、INSERT_BIN_CAT_FREQをコールして、すべてのカテゴリ属性に対する変換を定義します (この例では、説明を簡単にするため、すべてのカテゴリ属性を10個のビンに区分するものとします)。

  6. 最後のステップとして、カテゴリ・ビン定義表、およびXFORM_BIN_NUMからの出力ビュー(名前はbuild_bin_num_view)を入力パラメータに指定し、XFORM_BIN_CATをコールします。 これによって、数値属性の変換定義とカテゴリ属性の変換定義が結合されます。

  7. 生成されたオブジェクトは、構築データ表をSQL文の問合せによって表したビューで、ビン定義表の内容が適用されます。 DBMS_DATA_MININGパッケージのCREATE_MODELプロシージャへの入力データとして、このビューの名前を指定します。

この例で作成したモデルが分類モデルであるときに、そのモデルをスコアリング・データに適用(APPLY)する場合は、構築データと同じ方法でスコアリング・データを準備する必要があります。 次の手順に従って、スコアリング・データを簡単に準備できます。

  1. 最初に、数値ビン定義表とスコアリング・データ表を入力として、XFORM_BIN_NUMをコールします。 生成されたオブジェクトは、スコアリング・データ表をSQL文の問合せによって表したビューで、数値ビン定義表の内容も適用されます。 この出力オブジェクト(ビュー)にapply_bin_num_viewという名前を付けます。

  2. 次の(最後の)ステップとして、カテゴリ・ビン定義表、およびXFORM_BIN_NUMからの出力ビュー(名前はapply_bin_num_view)を入力パラメータに指定し、XFORM_BIN_CATをコールします。

  3. 生成されたオブジェクトは、スコアリング・データ表をSQL文の問合せによって表したビューで、ビン定義表の内容が適用されます。 DBMS_DATA_MININGパッケージのAPPLYプロシージャへの入力データとして、このビューの名前を指定します。


DBMS_DATA_MINING_TRANSFORMサブプログラムの要約

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

サブプログラム 説明

CREATE_BIN_CATプロシージャ


カテゴリ属性のビン定義表を作成します。

CREATE_BIN_NUMプロシージャ


数値属性のビン定義表を作成します。

CREATE_CLIPプロシージャ


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

CREATE_MISS_CATプロシージャ


カテゴリ属性の不明値処理定義表を作成します。

CREATE_MISS_NUMプロシージャ


数値属性の不明値処理定義表を作成します。

CREATE_NORM_LINプロシージャ


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

INSERT_AUTOBIN_NUM_EQWIDTHプロシージャ

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

INSERT_BIN_CAT_FREQプロシージャ

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

INSERT_BIN_NUM_EQWIDTHプロシージャ


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

INSERT_BIN_NUM_QTILEプロシージャ


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

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スコアによる正規化を導出し、正規化定義表に適用します。

XFORM_BIN_CATプロシージャ


カテゴリ・データをビンに区分した変換済データが格納されるビューを作成します。

XFORM_BIN_NUMプロシージャ


数値データをビンに区分した変換済データが格納されるビューを作成します。

XFORM_CLIPプロシージャ


数値データにクリッピングを適用した変換済データが格納されるビューを作成します。

XFORM_MISS_CATプロシージャ


カテゴリ属性の不明値処理を適用した変換済データが格納されるビューを作成します。

XFORM_MISS_NUMプロシージャ


数値属性の不明値処理を適用した変換済データが格納されるビューを作成します。

XFORM_NORM_LINプロシージャ


数値データを正規化した変換済データが格納されるビューを作成します。



CREATE_BIN_CATプロシージャ

このプロシージャでは、カテゴリ属性のビン定義表を作成します。 このビン定義表は、INSERT_BIN_CAT_FREQプロシージャとXFORM_BIN_CATプロシージャへの入力として使用されます。

構文

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

パラメータ

表26-3 CREATE_BIN_CATプロシージャのパラメータ

パラメータ 説明

bin_table_name

ビン定義表の名前。

bin_schema_name

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


使用上の注意

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

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

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

CREATE_BIN_NUMプロシージャ

このプロシージャでは、数値属性のビン定義表を作成します。 この表は、INSERT_BIN_NUM_EQWIDTHプロシージャ、INSERT_BIN_NUM_QTILEプロシージャ、INSERT_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);

パラメータ

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

パラメータ 説明

bin_table_name

ビン定義表の名前。

bin_schema_name

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


使用上の注意

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

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

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

CREATE_CLIPプロシージャ

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

構文

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

パラメータ

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

パラメータ 説明

clip_table_name

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

clip_schema_name

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


使用上の注意

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

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

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

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);

パラメータ

表26-6 CREATE_MISS_CATプロシージャのパラメータ

パラメータ 説明

miss_table_name

カテゴリ属性の不明値処理定義表の名前。

miss_schema_name

カテゴリ属性の不明値処理定義表に適用されるスキーマの名前。


使用上の注意

作成されるカテゴリ属性の不明値処理定義表には、次の列があります。

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

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

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);

パラメータ

表26-7 CREATE_MISS_NUMプロシージャのパラメータ

パラメータ 説明

miss_table_name

数値属性の不明値処理定義表の名前。

miss_schema_name

数値属性の不明値処理定義表に適用されるスキーマの名前。


使用上の注意

作成される数値属性の不明値定義表には、次の列があります。

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

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

CREATE_NORM_LINプロシージャ

このプロシージャでは、線形正規化定義表を作成します。 この表は、INSERT_NORM_LIN_MINMAXプロシージャ、INSERT_NORM_LIN_SCALEプロシージャ、INSERT_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);

パラメータ

表26-8 CREATE_NORMALIZE_LINプロシージャのパラメータ

パラメータ 説明

norm_table_name

正規化定義表の名前。

norm_schema_name

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


使用上の注意

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

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

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

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);

パラメータ

表26-9 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

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


使用上の注意

特定の入力データ表に対して、ビンの個数を変えながら、このプロシージャをコールできます。 ビン定義の導出過程における個々のコールでは、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番まで(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);

パラメータ

表26-10 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);

パラメータ

表26-11 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);

パラメータ

表26-12 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_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);

パラメータ

表26-13 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

ここで、q = 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);

パラメータ

表26-14 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);

パラメータ

表26-15 INSERT_MISS_CAT_MODEプロシージャのパラメータ

パラメータ 説明

miss_table_name

CREATE_MISS_CATを使用して作成されたカテゴリ属性の不明値処理定義表の名前。

data_table_name

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

exclude_list

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

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);

パラメータ

表26-16 INSERT_MISS_NUM_MEANプロシージャのパラメータ

パラメータ 説明

miss_table_name

CREATE_MISS_CATを使用して作成されたカテゴリ属性の不明値処理定義表の名前。

data_table_name

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

exclude_list

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

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);

パラメータ

表26-17 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);

パラメータ

表26-18 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);

パラメータ

表26-19 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;

/


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);

パラメータ

表26-20 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);

パラメータ

表26-21 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;

パラメータ

表26-22 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_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;

パラメータ

表26-23 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;

パラメータ

表26-24 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);

パラメータ

表26-25 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;