6.7 DBMS_DATA_MINING.Apply
DBMS_DATA_MININGのAPPLYプロシージャは、スコアリングの結果を表に直接書き込むバッチでの適用操作です。
表の列は、マイニング機能によって異なります。
APPLYによるスコアリングでは、SQLスコアリング関数によるスコアリングと同じ結果が生成されます。たとえば、分類では各ケースの予測と確率が生成され、クラスタリングでは各ケースのクラスタIDと確率が生成されます。異なっているのは、スコアリング結果の取得方法と、その取得に使用できるメカニズムです。
APPLYによって作成される出力表の列を次の表に示します。
表6-2 APPLY出力表
| マイニング機能 | 出力列 |
|---|---|
|
分類 |
|
|
回帰 |
|
|
異常検出 |
|
|
クラスタリング |
|
|
特徴抽出 |
|
APPLYの出力はスコアリング・データとは別に保存されるため、スコアリング結果の行を含めた問合せをサポートするには、出力とスコアリング・データを結合する必要があります。したがって、APPLYで使用されるモデルにはケースIDが必要となります。
ケースIDは、SQLスコアリング関数で適用されるモデルには不要です。同様に、スコアリング結果はSQL問合せ内でリアルタイムに生成および使用されるため、保存や結合も不要です。
次の例は、APPLYによる異常検出を示しています。このAPPLY出力表の問合せは、表の最初の10名の顧客を戻します。各顧客について、典型的(1)または異常(0)である確率が示されます。
例6-15 DBMS_DATA_MINING.APPLYを使用した異常検出
EXEC dbms_data_mining.apply
('SVMO_SH_Clas_sample','svmo_sh_sample_prepared',
'cust_id', 'one_class_output');
SELECT * from one_class_output where rownum < 11;
CUST_ID PREDICTION PROBABILITY
---------- ---------- -----------
101798 1 .567389309
101798 0 .432610691
102276 1 .564922469
102276 0 .435077531
102404 1 .51213544
102404 0 .48786456
101891 1 .563474346
101891 0 .436525654
102815 0 .500663683
102815 1 .499336317