RALG_BUILD_FUNCTION
RALG_BUILD_FUNCTION
設定は、R言語を使用したOracle Machine Learning for SQLモデルを作成する場合に、既存の登録済Rスクリプトの名前を指定するために使用します。
RALG_BUILD_FUNCTION
設定とALGO_EXTENSIBLE_LANG
設定の両方を指定する必要があります。このRスクリプトでは、最初の引数としてトレーニング・データ用のR data.frame
オブジェクトを受け取るR関数を定義します。この関数は、Oracle Machine Learningモデル・オブジェクトを返します。最初のデータ引数は必須です。RALG_BUILD_FUNCTION
は、追加のモデル作成パラメータを受け入れることができます。
ノート:
入力パラメータの有効な入力は、数値および文字列のスカラー・データ型です。例6-3 RALG_BUILD_FUNCTIONの例
この例は、モデルの作成に使用するRスクリプトMY_LM_BUILD_SCRIPT
の名前の指定方法を示しています。
Begin
insert into model_setting_table values
(dbms_data_mining.ralg_build_function,'MY_LM_BUILD_SCRIPT');
End;
/
RスクリプトMY_LM_BUILD_SCRIPT
により、LMモデルを作成するR関数が定義されます。既存のOracle Machine Learning for Rセキュリティ制限を使用するOracle Machine Learning for Rスクリプト・リポジトリにスクリプトMY_LM_BUILD_SCRIPT
を登録する必要があります。Oracle Machine Learning for Rのsys.rqScriptCreate
プロシージャを使用してこのスクリプトを登録できます。Oracle Machine Learning for Rでは、Rスクリプトを登録するにはRQADMIN
ロールが必要です。
次に例を示します。
Begin
sys.rqScriptCreate('MY_LM_BUILD_SCRIPT', 'function(data, formula, model.frame) {lm(formula = formula, data=data, model = as.logical(model.frame)}');
End;
/
クラスタリングと特徴抽出の機械学習ファンクションのモデルを作成する際には、返却するRモデルでR属性のdm$nclus
とdm$nfeat
を設定して、それぞれでクラスタ数と特徴数を指定する必要があります。
RスクリプトMY_KM_BUILD_SCRIPT
では、クラスタリング用のk-Meansモデルを作成するR関数を定義します。R属性dm$nclus
には、返されるクラスタリング・モデルに応じたクラスタ数を設定します。
'function(dat) {dat.scaled <- scale(dat)
set.seed(6543); mod <- list()
fit <- kmeans(dat.scaled, centers = 3L)
mod[[1L]] <- fit
mod[[2L]] <- attr(dat.scaled, "scaled:center")
mod[[3L]] <- attr(dat.scaled, "scaled:scale")
attr(mod, "dm$nclus") <- nrow(fit$centers)
mod}'
RスクリプトMY_PCA_BUILD_SCRIPT
により、PCAモデルを作成するR関数が定義されます。R属性dm$nfeat
には、返される特徴抽出モデルに応じた特徴数を設定します。
'function(dat) {
mod <- prcomp(dat, retx = FALSE)
attr(mod, "dm$nfeat") <- ncol(mod$rotation)
mod}'
関連トピック