37.7 DBMS_DATA_MINING.APPLY
DBMS_DATA_MINING
のAPPLY
プロシージャは、スコアリングの結果を表に直接書き込むバッチでの適用操作です。
その表の列は、機械学習ファンクションに依存します。
APPLY
によるスコアリングでは、SQLスコアリング関数によるスコアリングと同じ結果が生成されます。たとえば、分類では各ケースの予測と確率が生成され、クラスタリングでは各ケースのクラスタIDと確率が生成されます。異なっているのは、スコアリング結果の取得方法と、その取得に使用できるメカニズムです。
APPLY
によって作成される出力表の列を次の表に示します。
表37-2 APPLY出力表
機械学習手法 | 出力列 |
---|---|
分類 |
|
回帰 |
|
異常検出 |
|
クラスタリング |
|
特徴抽出 |
|
APPLY
の出力はスコアリング・データとは別に保存されるため、スコアリング結果の行を含めた問合せをサポートするには、出力とスコアリング・データを結合する必要があります。したがって、APPLY
で使用されるモデルにはケースIDが必要となります。
ケースIDは、SQLスコアリング関数で適用されるモデルには不要です。同様に、スコアリング結果はSQL問合せ内でリアルタイムに生成および使用されるため、保存や結合も不要です。
次の例は、APPLY
による異常検出を示しています。このAPPLY
出力表の問合せは、表の最初の10名の顧客を戻します。各顧客について、典型的(1)または異常(0)である確率が示されます。SVMO_SH_Clas_sampleモデルは、oml4sql-anomaly-detection-1class-svm.sql
の例によって作成されます。
例37-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