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}'
関連トピック