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 Rsys.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$nclusdm$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}'