RALG_WEIGHT_FUNCTION
RALG_WEIGHT_FUNCTION設定は、スコアリング内の各属性の重みまたは寄与率を計算する、既存の登録済Rスクリプトの名前を指定するために使用します。指定したRスクリプトは、寄与率を評価するためにSQL関数PREDICTION_DETAILSで使用されます。
               
指定したRスクリプトでは、モデル・オブジェクトの最初の入力引数と、スコアリング・データのR data.frameの2番目の入力引数が含まれているR関数を定義します。機械学習ファンクションが分類、クラスタリングまたは特徴抽出の場合は、3番目の入力引数でターゲット・クラス名、クラスタIDまたは特徴IDが渡され、その特定のクラス、クラスタまたは特徴の重みが計算されます。スクリプトにより、各属性の影響を与える重みが行内に含まれるdata.frameが戻されます。各行は、その入力スコアリングdata.frameに対応しています
                  
例6-12 RALG_WEIGHT_FUNCTIONの例
この例では、Rモデル属性の重みまたは寄与率を計算するRスクリプト
                  MY_PREDICT_WEIGHT_SCRIPTの名前をmodel_setting_tableで指定しています。Begin
insert into model_setting_table values
(dbms_data_mining.ralg_weight_function, 'MY_PREDICT_WEIGHT_SCRIPT');
End;
/Oracle Machine Learning for Rスクリプト・リポジトリでは、回帰用のスクリプト
                  MY_PREDICT_WEIGHT_SCRIPTは次のように登録されます。'function(mod, data) { coef(mod)[-1L]*data }'Oracle Machine Learning for Rスクリプト・リポジトリでは、ロジット分類用のスクリプト
               MY_PREDICT_WEIGHT_SCRIPTは次のように登録されます:'function(mod, dat, clas) {
   v <- predict(mod, newdata=dat, type = "response");
   v0 <- data.frame(v, 1-v); names(v0) <- c("0", "1");
   res <- data.frame(lapply(seq_along(dat),
   function(x, dat) {
   if(is.numeric(dat[[x]])) dat[,x] <- as.numeric(0)
   else dat[,x] <- as.factor(NA);
   vv <- predict(mod, newdata = dat, type = "response");
   vv = data.frame(vv, 1-vv); names(vv) <- c("0", "1");
   v0[[clas]] / vv[[clas]]}, dat = dat));
   names(res) <- names(dat);
   res}'関連トピック