DBMS_DATA_MINING_TRANSFORMパッケージには、データのマイニングの準備に使用できる変換ルーチンが含まれています。
|
関連項目:
|
この章では、次の項目について説明します。
DBMS_DATA_MINING_TRANSFORMの使用方法
Oracle Data Miningによるデータ変換
変換の種類
DBMS_DATA_MINING_TRANSFORMフレームワーク
データ型
この項では、DBMS_DATA_MINING_TRANSFORMパッケージの使用に関連する項目について説明します。
変換とは、データ・マイニングで使用される1つ以上の列を変更するSQL式のことです。
ほとんどのデータ・マイニング・アルゴリズムでは、なんらかの形式のデータ変換が必要です。 質的属性または量的属性、あるいはその両方について、なんらかの変換が必要になることがあります。モデルの作成、テストおよびスコアリングに使用されるすべてのデータ・セットに対して、同じ変換を行う必要があります。各データ・セットの変更の複製には、非常に時間がかかる場合があります。
Oracle Data Miningは、変換式をモデルに埋め込みます。モデルの作成に使用する変換は、モデルが適用されるすべてのデータ・セットに対して自動的に実行されます。モデルとともにその変換もデプロイするこの機能によって、モデルの使いやすさが大幅に向上し、モデル管理のプロセスも簡単になります。
Oracle Data Miningによって提供される自動データ準備モード(ADP)で、データ変換プロセスがさらに簡単になります。ADPを使用してモデルを作成すると、アルゴリズムの要件に従ってトレーニング・データが自動的に変換されます。この自動変換はモデルに埋め込まれます。 ADPを使用可能にするには、モデルの設定表でPREP_AUTO設定をPREP_AUTO_ONに設定します。
変換式のリストをDBMS_DATA_MINING.CREATE_MODELに渡すことによって、自動変換を補完できます。ユーザー独自の変換は、自動変換とともにモデルに埋め込まれます。 ADPがオフになっている場合は、CREATE_MODELに渡す変換のみが埋め込まれます。
DBMS_DATA_MINING_TRANSFORMのルーチンは、ユーザー独自の変換を作成する場合に役立つルーチンです。 これらのルーチンでニーズが満たされない場合は、それらのルーチンを変更するSQLを作成するか、または独自のルーチンを作成できます。
|
表記法に関する注意: この章では、数値集合を表すときに標準的な範囲表記法を使用します。
(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では、質的属性と量的属性のビニングがサポートされています。
ビンの内容は、ディシジョン・ツリー・モデルで計算されたグループです。
ビンの内容は、列内の各値の頻度に基づいています。ビンの数はユーザーが指定します。最初のビンに最も頻度の高い値、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スコアによる正規化は、データから計算される平均値と標準偏差に基づいて決定されます。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では、データの列をマイニング用に変換するためのフレームワークが提供されます。 このフレームワークは、CREATE、INSERT、STACKおよびXFORM操作で構成されます。出力を変更するか、またはこれらの操作の独自のバージョンを実装することができます。
DBMS_DATA_MINING_TRANSFORMフレームワークは、次の操作で構成されます。
変換定義表には、次のいずれかの変換を指定する場合に必要な列が含まれています。
ビニング
列削除
正規化
外れ値処理
欠損値処理
たとえば、ビニング変換表には、元の列値とそれぞれのビン割当て値を示す列が含まれています。
変換表の列は、INSERTルーチンによりデータが移入されるまで空になっています。
INSERT: 指定されたデータ・ソース用の変換表にデータを移入します。
たとえば、INSERTルーチンを使用して、指定されたデータ・ソース内の質的属性のビン割当て値を移入できます。 ビン割当て値は、監視ありビニングまたは上位n番までの頻度ベースのビニングを使用して計算されます。
特定のマイニングの問題についてのすべてのデータ属性が変換表に完全に表示されるまで、CREATEルーチンおよびINSERTルーチンを複数回コールできます。
STACK: 変換命令のリスト(スタック)に変換命令を追加します。
たとえば、STACKルーチンを使用して、ビニング変換表への移入を行う変換命令を変換命令のリストに追加できます。 STACKルーチンでは、指定されたデータ・ソースに対するすべての変換命令を単一のリストにアセンブルできます。
変換命令のリストは、CREATE_MODELまたは他のSTACKルーチンに渡すことができます。(「CREATE_MODELプロシージャ」を参照)
XFORM: 変換後の列を含むデータ表のビューを作成します。
たとえば、XFORMルーチンを使用して、ビニング変換表に基づいてビンに変換された列を含むビューを作成できます。
XFORMルーチンによって作成されたビューには、変換表内の列については変換後の値、他のすべての列については元の値が含まれます。 ビューは、モデルの作成、テストおよびスコアリングに使用できます。
この項では、DBMS_DATA_MINING_TRANSFORMで定義されているデータ型について説明します。
この型は、列名の引用符で囲まれた識別子および引用符で囲まれていない識別子を格納する場合に使用します。
TYPE COLUMN_LIST IS VARRAY(1000) OF VARCHAR2(32);
この型は、記述操作の結果を保持する場合に使用します。
SUBTYPE
DESCRIBE_LIST IS dbms_sql.DESC_TAB2;
この型は、変換式を格納する場合に使用します。
TYPE
EXPRESSION_REC IS RECORD (
...........);,
VARCHAR2とは異なり、EXPRESSION_RECは32Kより大きくなる可能性がある式に使用できます。
EXPRESSION_RECに書き込むには、SET_EXPRESSIONを使用します。 EXPRESSION_RECの内容を取得するには、GET_EXPRESSIONを使用します。
この型は、単一属性のメモリー内変換スタック定義を格納する場合に使用します。
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プロシージャ」を参照)
この型は、メモリー内スタック定義を格納する場合に使用します。
TYPE
TRANSFORM_LIST IS TABLE OF TRANSFORM_REC;
これらの定数は、ネストした列のデータ型を指定する場合に使用します。
NEST_NUM_COL_TYPE CONSTANT NUMBER := 100001; NEST_CAT_COL_TAYPE CONSTANT NUMBER := 100002;
表39-1 DBMS_DATA_MINING_TRANSFORMパッケージのサブプログラム
| サブプログラム | 用途 |
|---|---|
|
|
質的属性のビン定義表を作成します。 |
|
|
量的属性のビン定義表を作成します。 |
|
|
クリッピング定義表を作成します。 |
|
|
列削除定義表を作成します。 |
|
|
質的属性の欠損値処理定義表を作成します。 |
|
|
量的属性の欠損値処理定義表を作成します。 |
|
|
正規化定義表を作成します。 |
|
|
スタック定義を記述します。 |
|
|
変換式を戻します。 |
|
データから推定したビン数に基づいて、量的なビン定義表に適用します。 |
|
|
入力の質的データに基づいて頻度ベースのビニングを導出し、質的なビン定義表に適用します。 |
|
|
|
入力の量的データに基づいて等幅のビニングを導出し、量的なビン定義表に適用します。 |
|
|
入力の量的データに基づいてクオンタイルによるビニングを導出し、量的なビン定義表に適用します。 |
|
|
ビニング定義表に移入を行い、監視ありビニングを量的データおよび質的データの両方に適用します。 |
|
|
入力の量的データのテール値に基づいてトリミングを導出し、クリッピング定義表に適用します。 |
|
|
入力の量的データのテール値に基づいてWinsorizationを導出し、クリッピング定義表に適用します。 |
|
|
それぞれの欠損値に基づいてモードを導出し、質的属性の欠損値処理定義表に適用します。 |
|
|
それぞれの欠損値に基づいて平均値を導出し、量的属性の欠損値処理定義表に適用します。 |
|
|
入力の量的データに基づいて最小値と最大値による正規化を導出し、正規化定義表に適用します。 |
|
入力の量的データに基づいてスケールによる正規化を導出し、正規化定義表に適用します。 |
|
|
|
入力の量的データに基づいてZスコアによる正規化を導出し、正規化定義表に適用します。 |
|
|
変換式に追加します。 |
|
|
変換式を指定します。 |
|
|
質的属性のビニング式を変換リストに追加します。 |
|
|
量的属性のビニング式を変換リストに追加します。 |
|
|
クリッピング式を変換リストに追加します。 |
|
|
列削除式を変換リストに追加します。 |
|
|
質的属性の欠損値処理式を変換リストに追加します。 |
|
|
量的属性の欠損値処理式を変換リストに追加します。 |
|
|
線形正規化式を変換リストに追加します。 |
|
|
質的属性のビニング変換をデータに適用するビューを作成します。 |
|
|
量的属性のビニング変換をデータに適用するビューを作成します。 |
|
|
クリッピング変換をデータに適用するビューを作成します。 |
|
|
指定した列をデータから削除するビューを作成します。 |
|
|
データの数値列に変換式を適用するビューを作成します。 |
|
|
データの文字列に変換式を適用するビューを作成します。 |
|
|
データの質的属性に欠損値処理を実行するビューを作成します。 |
|
|
データの量的属性に欠損値処理を実行するビューを作成します。 |
|
|
データの量的属性に線形正規化を実行するビューを作成します。 |
|
|
スタック定義(変換リスト)に指定されているとおりにデータを変換するビューを作成します。 |
このプロシージャでは、質的属性のビン変換表を作成します。
構文
DBMS_DATA_MINING_TRANSFORM.CREATE_BIN_CAT (
bin_table_name IN VARCHAR2,
bin_schema_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表39-2 CREATE_BIN_CATプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ビン変換表の名前。 |
|
|
ビン変換表に適用されるスキーマの名前。 |
使用上の注意
このプロシージャによって作成された表は、質的属性のビン割当て値を格納するために使用できます。 表にデータを移入するには、次のINSERTルーチンを使用できます。
INSERT_BIN_CAT_FREQプロシージャ(頻度ベースのビニングの場合)
INSERT_BIN_SUPERプロシージャ(監視ありビニングの場合)
表39-3は、質的属性ビン定義表の列について説明しています。
表39-3 質的属性ビン定義表
| 列 | データ型 | 説明 |
|---|---|---|
|
|
|
ビニング対象の質的属性値を含む列。 |
|
|
|
列がネストされている場合の属性名。 |
|
|
|
ビニング対象の列の値。 |
|
|
|
値を含むビン。 |
例
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)
このプロシージャでは、量的属性のビン変換表を作成します。 この表は、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);
パラメータ
表39-4 CREATE_BIN_NUMプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ビン定義表の名前。 |
|
|
ビン定義表に適用されるスキーマの名前。 |
使用上の注意
生成されるビン定義表には、次の列があります。
| 列名 | データ型 |
|---|---|
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)
このプロシージャでは、クリッピング定義表を作成します。 この表は、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);
パラメータ
表39-5 CREATE_CLIPプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
クリッピング定義表の名前。 |
|
|
クリッピング定義表に適用されるスキーマの名前。 |
使用上の注意
作成されるクリッピング定義表には、次の列があります。
| 列名 | データ型 |
|---|---|
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
このプロシージャでは、列削除定義表を作成します。 この表は、STACK_COL_REM、XFORM_COL_REM、INSERT_BIN_SUPERおよびINSERT_AUTOBIN_NUM_EQWIDTHプロシージャによって使用されます。
構文
DBMS_DATA_MINING_TRANSFORM.CREATE_COL_REM (
rem_table_name VARCHAR2,
rem_schema_name VARCHAR2 DEFAULT NULL);
パラメータ
使用上の注意
作成される列削除定義表には、次の列が含まれています。
| 列名 | データ型 |
|---|---|
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)
このプロシージャは、質的属性の欠損値処理定義表を作成します。 この表は、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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
質的属性の欠損値処理定義表の名前。 |
|
|
質的属性の欠損値処理定義表に適用されるスキーマの名前。 |
使用上の注意
作成される質的属性の欠損値処理定義表には、次の列があります。
| 列名 | データ型 |
|---|---|
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)
このプロシージャは、量的属性の欠損値処理定義表を作成します。 この表は、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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
量的属性の欠損値処理定義表の名前。 |
|
|
量的属性の欠損値処理定義表に適用されるスキーマの名前。 |
使用上の注意
作成される量的属性の欠損値定義表には、次の列があります。
| 列名 | データ型 |
|---|---|
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
このプロシージャでは、線形正規化定義表を作成します。 この表は、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);
パラメータ
表39-9 CREATE_NORMALIZE_LINプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
正規化定義表の名前。 |
|
|
正規化定義表に適用されるスキーマの名前。 |
使用上の注意
作成される線形正規化定義表には、次の列があります。
| 列名 | データ型 |
|---|---|
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
このプロシージャは、スタック定義で指定されているデータ表の変換の詳細を示します。
スタック定義で指定された列のみが変換されます。その他の列は変更されません。
スタック定義内のすべての列が適用されます。式フィールドに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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
スタックされた変換のリスト。 |
|
|
マイニング・データが含まれている表。 |
|
|
スタックされた変換の詳細。 |
|
|
マイニング・データが含まれている表のスキーマ。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
使用上の注意
DM_NESTED_NUMERICALSの場合、col_typeの値はnest_num_col_typeです。 DM_NESTED_CATEGORICALSの場合、col_typeの値はnest_cat_col_typeです。
このファンクションは、式から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;
パラメータ
このプロシージャは、入力データ表の列のうち、除外リストに指定されていない数値列に基づき、量的属性に関する等幅のビン定義を導出します。次に、そのビン定義を、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_numがNULLまたは0(ゼロ)の場合、調整は行われません。パラメータmax_bin_numは、Nをmax_bin_num以下にするために使用します。 bin_numがNULLまたは0(ゼロ)の場合、調整は行われません。すべての値が整数値の列(離散列)の場合、Nは、確認された範囲max-min+1内の個別値の最大数以下になるように調整されます。
パラメータsample_sizeは、cntをsample_size以下にするために使用します。 sample_sizeがNULLまたは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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
ビンの最小数。デフォルトの数値は3です。 |
|
|
ビン数の推定値の上限を設定するビンの最大数。デフォルトは100です。 |
|
|
ビン定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。質的属性は自動的に除外されます。 |
|
|
表内の値の有効桁数。デフォルトは6です。 |
|
|
データ・サンプルのサイズ。デフォルトは50,000です。 |
|
|
ビン定義表に適用されるスキーマの名前。デフォルトはユーザー・スキーマです。 |
|
|
入力データ表に適用されるスキーマの名前。デフォルトはユーザー・スキーマです。 |
|
|
|
|
|
列削除定義表のスキーマ。 |
使用上の注意
特定の入力データ表に対して、ビンの個数を変えながら、このプロシージャをコールできます。 ビン定義の導出過程における個々のコールでは、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。
すべての値がNULL値である属性(列)、および一意の値を1つしか持たない属性(列)は無視されます。 bin_num、max_bin_numおよびsample_sizeの記号は、結果に影響を与えません。絶対値が使用されます。 Nの値の調整は、bin_num、max_bin_num、離散列の順に行われます。
例
ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出されるビン定義をnum_bin_tableに書き込みます。
BEGIN
DBMS_DATA_MINING_TRANSFORM.INSERT_AUTOBIN_NUM_EQUIWIDTH(
'num_bin_table', 'build_data_table');
END;
/
このプロシージャは、入力データ表の列のうち、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
ビンの個数。 |
|
|
ビン定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。 |
|
|
デフォルト値の個数。 |
|
|
ビンの支持水準(小数で指定)。 |
|
|
ビン定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
使用上の注意
特定の入力データ表に対して、ビンの個数を変えながら、このプロシージャを反復的にコールできます。ビン定義の導出過程における個々の反復処理では、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; /
このプロシージャでは、入力データ表の列のうち、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
ビンの個数。 |
|
|
ビン定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。 |
|
|
表内の値の有効桁数。詳細は、「使用上の注意」を参照してください。 |
|
|
ビン定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
使用上の注意
特定の入力データ表に対して、ビンの個数を変えながら、このプロシージャを反復的にコールできます。ビン定義の導出過程における個々の反復処理では、exclude_listパラメータを使用して1つ以上の属性(列名)を選択し、その属性を操作対象から除外できます。
すべての値がNULL値である属性(列)、および一意の値を1つしか持たない属性(列)は無視されます。 bin_num = 0、またはbin_numがNULLの場合、ビン定義は作成されません。
たとえば、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;
/
このプロシージャでは、入力データ表の列のうち、除外リストに指定されていない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_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;
このプロシージャは、入力データ表の列のうち、除外リストに指定されていないNUMBER、FLOAT、VARCHAR2または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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
ターゲット列の名前。 |
|
|
最大ビン数。 |
|
|
ビン定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。 |
|
|
量的属性ビン定義表のスキーマ。 |
|
|
質的属性ビン定義表のスキーマ。 |
|
|
データが含まれている表のスキーマ。 |
|
|
|
|
|
列削除定義表のスキーマ。 |
このプロシージャでは、入力データ表の列のうち、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
テール割合。 |
|
|
クリッピング定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。 |
|
|
クリッピング定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
使用上の注意
特定の入力データ表に対して、テール割合(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;
このプロシージャは、入力データ表の列のうち、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
テール割合。 |
|
|
クリッピング定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。 |
|
|
クリッピング定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
使用上の注意
特定の入力データ表に対して、テール割合(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;
このプロシージャは、入力データ表の列のうち、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
欠損値処理の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。 |
|
|
質的属性の欠損値処理定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
使用上の注意
exclude_listパラメータを使用して、欠損値処理が適用される質的属性を選択できます。選択したすべての属性内のNULL値は、その属性のモード(最も使用頻度の高い値)に置換されます。
NULLを他の値に置換する場合は、定義表を編集します。
例
ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての質的属性から導出される欠損値定義(モード)をmiss_tableに書き込みます。
BEGIN
DBMS_DATA_MINING_TRANSFORM.INSERT_MISS_CAT_MODE(
'miss_table', 'build_table');
END;
このプロシージャは、入力データ表の列のうち、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
不明値処理の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。 |
|
|
表内の値の有効桁数。 |
|
|
量的属性の欠損値処理定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
使用上の注意
exclude_listパラメータを使用して、欠損値処理が適用される量的属性を選択できます。選択したすべての属性内のNULL値は、その属性の平均値に置換されます。
NULLを他の値に置換する場合は、定義表を編集します。
例
ここで示すプロシージャ・コールの簡単な例では、build_table内のすべての量的属性から導出される欠損値定義(モード)をmiss_tableに書き込みます。
BEGIN
DBMS_DATA_MINING_TRANSFORM.INSERT_MISS_CAT_MODE(
'miss_table', 'build_table');
END;
このプロシージャでは、入力データ表の列のうち、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
正規化定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。 |
|
|
表内の値の有効桁数。 |
|
|
正規化定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
使用上の注意
特定の入力データ表に対して、このプロシージャを反復的にコールして正規化定義を導出できます。その導出過程における個々の反復処理では、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;
このプロシージャでは、入力データ表の列のうち、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
正規化定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。 |
|
|
表内の値の有効桁数。 |
|
|
正規化定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
使用上の注意
特定の入力データ表に対して、このプロシージャを反復的にコールして正規化定義を導出できます。その導出過程における個々の反復処理では、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;
このプロシージャでは、入力データ表の列のうち、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
正規化定義の導出過程における特定の反復処理で操作対象から除外する属性(列)のリスト。 |
|
|
表内の値の有効桁数。 |
|
|
正規化定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
使用上の注意
特定の入力データ表に対して、このプロシージャを反復的にコールしてビン定義を導出できます。その導出過程における個々の反復処理では、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;
/
このプロシージャは、式にVARCHAR2チャンクを追加します。NULLを追加すると、式が消去されます。
構文
DBMS_DATA_MINING_TRANSFORM.SET_EXPRESSION (
expression IN OUT NOCOPY EXPRESSION_REC,
chunk VARCHAR2 DEFAULT NULL);
パラメータ
このプロシージャは、属性の変換式および逆変換式を指定します。
新しい変換指定が変換リストに追加されます。
構文
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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
属性の変換リスト。 |
|
|
属性の名前。 |
|
|
|
|
|
SQL式。 |
|
|
モデルのディテールおよび監視ありモデルのターゲット(属性がターゲットの場合)の変換を読みやすさを考慮して元に戻すSQL式。 |
|
|
|
スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合、このプロシージャは、質的属性のビニング式を既存の式の上にスタックし、スタック定義を更新します。
変換定義内の列のうち、スタック定義内に一致するエントリがない列が(元の式またはネストされた属性の"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}の値が有効な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')}
スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合、このプロシージャは、量的属性のビニング式を既存の式の上にスタックし、スタック定義を更新します。
スタック定義内の列のうち、変換定義内に一致するエントリがない列または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}の値が有効な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')}
スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合は、クリッピング式を既存の式の上にスタックし、スタック定義を更新します。
スタック定義内の列のうち、変換定義内に一致するエントリがない列または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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
クリッピング定義表。 |
|
|
スタック定義。 |
|
|
クリッピング定義表のスキーマ。スキーマを指定しない場合は、独自のスキーマが想定されます。 |
例
変換定義:
{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}
スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合、このプロシージャは、既存の式ではなく列削除定義式(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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
列削除定義表の名前。 |
|
|
スタック定義。 |
|
|
列削除定義表のスキーマ。 |
例
変換定義:
{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}
スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合、このプロシージャは、質的属性の欠損値処理式を既存の式の上にスタックし、スタック定義を更新します。
スタック定義内の列のうち、変換定義内に一致するエントリがない列または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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
欠損値定義表の名前。 |
|
|
スタック定義。 |
|
|
欠損値定義表の名スキーマ。 |
例
変換定義:
{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}
スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合は、量的属性の欠損値処理式を既存の式の上にスタックし、スタック定義を更新します。
スタック定義内の列のうち、変換定義内に一致するエントリがない列または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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
欠損値定義表の名前。 |
|
|
スタック定義。 |
|
|
欠損値定義表の名スキーマ。 |
例
変換定義:
{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}
スタック定義内の各列のうち、変換定義内に一致するエントリがある列の場合は、線形正規化式を既存の式の上にスタックし、スタック定義を更新します。
スタック定義内の列のうち、変換定義内に一致するエントリがない列または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}
このプロシージャでは、質的属性をビンに区分するビューを作成します。変換定義表で指定された属性(列)のみが変換され、その他の属性は変更されません。
構文
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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
変換済の出力データが格納されるビューの名前。 |
|
|
リテラル・フラグ。 |
|
|
ビン定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
|
|
変換済の出力データが格納されるビューに適用されるスキーマの名前。 |
使用上の注意
このプロシージャでは、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パラメータは、引用符で囲まれた識別子となるため、大/小文字が区別されます。 colとvalの値が同じで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; /
このプロシージャでは、量的属性をビンに区分するビューを作成します。変換定義表で指定された属性(列)のみが変換され、その他の属性は変更されません。
構文
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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
変換済の出力データが格納されるビューの名前。 |
|
|
リテラル・フラグ。 |
|
|
ビン定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
|
|
変換済の出力データが格納されるビューに適用されるスキーマの名前。 |
使用上の注意
このプロシージャは、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; /
このプロシージャでは、クリッピングを実行するビューを作成します。変換定義表で指定された属性(列)のみがトリミングされ、その他の属性は変更されません。
構文
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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
変換済の出力データが格納されるビューの名前。 |
|
|
クリッピング定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
|
|
変換済の出力データが格納されるビューに適用されるスキーマの名前。 |
使用上の注意
このプロシージャでは、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;
このプロシージャは、データ表から列を削除するビューを作成します。変換定義表で指定された属性(列)のみが削除され、その他の属性は変更されません。
構文
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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
列削除定義表の名前。 |
|
|
データが保存されている表の名前。 |
|
|
変換済の出力データが格納されるビューの名前。 |
|
|
列削除定義表のスキーマ。 |
|
|
データ表のスキーマ。 |
|
|
変換ビューのスキーマ。 |
入力データ表の列のうち、対象リストに指定され、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
式パターン。 |
|
|
データが保存されている表の名前。 |
|
|
変換済の出力データが格納されるビューの名前。 |
|
|
除外する列のリスト。 |
|
|
含める列のリスト。 |
|
|
列パターン。 |
|
|
データ表のスキーマ。 |
|
|
変換ビューのスキーマ。 |
例
2つのNUMBER列CN1とCN3、1つのCHAR列CC2および式パターンTO_CHAR(:col)が含まれている表TABの場合は、次の問合せが生成されます。
SELECT TO_CHAR("CN1") "CN1", "CC2", TO_CHAR("CN3") "CN3"
FROM TAB
このプロシージャは、正規化されたデータを[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
このプロシージャは、入力データ表の列のうち、対象リストに指定され、除外リストに指定されていない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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
式パターン。 |
|
|
データが保存されている表の名前。 |
|
|
変換済の出力データが格納されるビューの名前。 |
|
|
除外する列のリスト。 |
|
|
含める列のリスト。 |
|
|
列パターン。 |
|
|
データ表のスキーマ。 |
|
|
変換ビューのスキーマ。 |
このプロシージャは、質的属性の欠損値処理を実行するビューを作成します。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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
変換済の出力データが格納されるビューの名前。 |
|
|
質的属性の欠損値処理定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
|
|
変換済の出力データが格納されるビューに適用されるスキーマの名前。 |
使用上の注意
変換した列のデータ型は、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定義で指定された属性(列)のみが処理され、その他の属性は変更されません。
構文
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内の欠損値定義による変換定義に基づき、build_tableに対して変換問合せを実行するビュー・オブジェクトbuild_viewを作成します。
BEGIN
DBMS_DATA_MINING_TRANSFORM.XFORM_MISS_NUM(
'miss_table', 'build_table', 'build_view');
END;
このプロシージャでは、線形正規化を実行するビューを作成します。変換定義表で指定された属性(列)のみが変換され、その他の属性は変更されません。
構文
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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データが保存されている表の名前。 |
|
|
変換済の出力データが格納されるビューの名前。 |
|
|
正規化定義表に適用されるスキーマの名前。 |
|
|
入力データ表に適用されるスキーマの名前。 |
|
|
変換済の出力データが格納されるビューに適用されるスキーマの名前。 |
使用上の注意
このプロシージャは、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;
スタック定義で指定されているデータ表の変換を実行するビューを作成します。スタック定義で指定されている属性(列)のみが変換され、その他の属性は変更されません。
スタック定義内のすべての列が適用されます。式フィールドに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);
パラメータ