6.7 DBMS_DATA_MINING.Apply

DBMS_DATA_MININGAPPLYプロシージャは、スコアリングの結果を表に直接書き込むバッチでの適用操作です。

表の列は、マイニング機能によって異なります。

APPLYによるスコアリングでは、SQLスコアリング関数によるスコアリングと同じ結果が生成されます。たとえば、分類では各ケースの予測と確率が生成され、クラスタリングでは各ケースのクラスタIDと確率が生成されます。異なっているのは、スコアリング結果の取得方法と、その取得に使用できるメカニズムです。

APPLYによって作成される出力表の列を次の表に示します。

表6-2 APPLY出力表

マイニング機能 出力列

分類

CASE_ID

PREDICTION

PROBABILITY

回帰

CASE_ID

PREDICTION

異常検出

CASE_ID

PREDICTION

PROBABILITY

クラスタリング

CASE_ID

CLUSTER_ID

PROBABILITY

特徴抽出

CASE_ID

FEATURE_ID

MATCH_QUALITY

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