5 Rモデルでの予測
OML4RモデルでOracle Machine Learning for Rの関数ore.predictを使用して、将来の動作を予測します。
- ore.predict関数について
予測モデルにより過去の動作に基づいて将来の動作を予測できます。 - ore.predict関数の使用
次の例では、ore.predict関数の使用方法を示します。
5.1 ore.predict関数について
予測モデルにより過去の動作に基づいて将来の動作を予測できます。
モデルを構築した後に、そのモデルを使用して新しいデータのスコアリング、すなわち予測を行います。
Rにより様々なモデルを構築できます。Rモデルを使用して新しい結果を予測するためにデータのスコアリングをするときは、スコアリングするデータはR data.frameにある必要があります。ore.predict関数を使用すると、Rモデルを使用してore.frameオブジェクトにあるデータベース常駐データをスコアリングできます。
ore.predict関数は、Oracle DatabaseでスコアリングするためにRベースのモデルを操作可能にする最短の方法を提供します。この関数には、PMMLまたは他のプラグインに対する依存性がありません。
ore.predict関数を使用してデータベースのデータをスコアリングすると、次のようなメリットがあります。
-
Rで生成されたモデルを使用してインデータベース・データをスコアリングできます。
スコアリングするデータは、
ore.frameオブジェクト内にあります。 -
計算エンジンとしてのOracle Databaseを最大限に活用できます。
データベースにより、業務用で高性能のスケーラブルなスコアリング・エンジンが提供されます。
-
アプリケーション・ワークフローを簡略化できます。
モデルからSQLのスコアリングまで1つのステップで移動できます。
ore.predict関数は汎用関数です。次のように使用します。
ore.predict(object, newdata, ...)
object引数の値は、表5-1にリストされているモデル・オブジェクトのいずれかです。newdata引数の値は、スコアリングするデータが含まれているore.frameオブジェクトです。ore.predict関数には、固有のRモデル・クラスで使用するためのメソッドがあります。...引数は、各種のメソッドで受け入れられる様々な追加の引数を表します。
関数ore.predictには、表にリストされているモデル・オブジェクトをサポートするメソッドがあります。
表5-1 ore.predict関数でサポートされているモデル
| モデルのクラス | モデルの説明 |
|---|---|
|
|
一般化線形モデル |
|
|
k-Meansクラスタリング・モデル |
|
|
線形回帰モデル |
|
|
|
|
|
多項対数線形モデル |
|
|
ニューラル・ネットワーク・モデル |
|
|
|
|
|
マトリクス上の主要コンポーネント分析 |
|
|
数値マトリクス上の主要コンポーネント分析 |
|
|
再帰分割および回帰ツリー・モデル |
ore.predictメソッドの関数シグネチャについては、help("ore.predict-kmeans")のように、次のものに対してhelp関数を呼び出してください。
-
ore.predict-glm -
ore.predict-kmeans -
ore.predict-lm -
ore.predict-matrix -
ore.predict-multinom -
ore.predict-nnet -
ore.predict-ore.model -
ore.predict-prcomp -
ore.predict-princomp -
ore.predict-rpart
親トピック: Rモデルでの予測
5.2 ore.predict関数の使用
次の例では、ore.predict関数の使用方法を示します。
例5-1 線形回帰モデルでのore.predict関数の使用方法
この例では、iris data.frameでlm関数を使用して、線形回帰モデルirisModelを構築します。データセットを一時表IRISおよび対応するore.frameプロキシIRISとしてデータベースにプッシュします。このモデルでore.predictを呼び出してモデルをスコアリングし、予測をIRIS ore.frameオブジェクトと結合します。最後に、結果のオブジェクトの最初の6行を表示します。
IRISModel <- lm(Sepal.Length ~ ., data = iris)
IRIS <- ore.push(iris)
IRIS_pred <- ore.predict(IRISModel, IRIS, se.fit = TRUE,
interval = "prediction")
IRIS <- cbind(IRIS, IRIS_pred)
head(IRIS)この例のリスト
R> IRISModel <- lm(Sepal.Length ~ ., data = iris) R> IRIS <- ore.push(iris) R> IRIS_pred <- ore.predict(IRISModel, IRIS, se.fit = TRUE, + interval = "prediction") R> IRIS <- cbind(IRIS, IRIS_pred) R> head(IRIS) Sepal.Length Sepal.Width Petal.Length Petal.Width Species PRED SE.PRED 1 5.1 3.5 1.4 0.2 setosa 5.004788 0.04479188 2 4.9 3.0 1.4 0.2 setosa 4.756844 0.05514933 3 4.7 3.2 1.3 0.2 setosa 4.773097 0.04690495 4 4.6 3.1 1.5 0.2 setosa 4.889357 0.05135928 5 5.0 3.6 1.4 0.2 setosa 5.054377 0.04736842 6 5.4 3.9 1.7 0.4 setosa 5.388886 0.05592364 LOWER.PRED UPPER.PRED 1 4.391895 5.617681 2 4.140660 5.373027 3 4.159587 5.386607 4 4.274454 5.504259 5 4.440727 5.668026 6 4.772430 6.005342 R> head(IRIS) Sepal.Length Sepal.Width Petal.Length Petal.Width Species PRED SE.PRED LOWER.PRED UPPER.PRED 1 5.1 3.5 1.4 0.2 setosa 5.004788 0.04479188 4.391895 5.617681 2 4.9 3.0 1.4 0.2 setosa 4.756844 0.05514933 4.140660 5.373027 3 4.7 3.2 1.3 0.2 setosa 4.773097 0.04690495 4.159587 5.386607 4 4.6 3.1 1.5 0.2 setosa 4.889357 0.05135928 4.274454 5.504259 5 5.0 3.6 1.4 0.2 setosa 5.054377 0.04736842 4.440727 5.668026 6 5.4 3.9 1.7 0.4 setosa 5.388886 0.05592364 4.772430 6.005342
例5-2 一般化線形回帰モデルでのore.predict関数の使用方法
この例では、infertデータセットを使用して一般化線形モデルを構築した後、そのモデルでore.predict関数を呼び出します。
infertModel <-
glm(case ~ age + parity + education + spontaneous + induced,
data = infert, family = binomial())
INFERT <- ore.push(infert)
INFERTpred <- ore.predict(infertModel, INFERT, type = "response",
se.fit = TRUE)
INFERT <- cbind(INFERT, INFERTpred)
head(INFERT)この例のリスト
R> infertModel <-
+ glm(case ~ age + parity + education + spontaneous + induced,
+ data = infert, family = binomial())
R> INFERT <- ore.push(infert)
R> INFERTpred <- ore.predict(infertModel, INFERT, type = "response",
+ se.fit = TRUE)
R> INFERT <- cbind(INFERT, INFERTpred)
R> head(INFERT)
education age parity induced case spontaneous stratum pooled.stratum
1 0-5yrs 26 6 1 1 2 1 3
2 0-5yrs 42 1 1 1 0 2 1
3 0-5yrs 39 6 2 1 0 3 4
4 0-5yrs 34 4 2 1 0 4 2
5 6-11yrs 35 3 1 1 1 5 32
6 6-11yrs 36 4 2 1 1 6 36
PRED SE.PRED
1 0.5721916 0.20630954
2 0.7258539 0.17196245
3 0.1194459 0.08617462
4 0.3684102 0.17295285
5 0.5104285 0.06944005
6 0.6322269 0.10117919
例5-3 ore.modelモデルでのore.predict関数の使用方法
この例では、irisデータセットを一時表IRISおよび対応するore.frameプロキシIRISとしてデータベースにプッシュします。ore.lm関数を使用して線形回帰モデルIRISModel2を構築します。モデルをスコアリングし、列がIRISに追加します。
IRIS <- ore.push(iris) IRISModel2 <- ore.lm(Sepal.Length ~ ., data = IRIS) IRIS$PRED <- ore.predict(IRISModel2, IRIS) head(IRIS, 3)
この例のリスト
R> IRIS <- ore.push(iris) R> IRISModel2 <- ore.lm(Sepal.Length ~ ., data = IRIS) R> IRIS$PRED <- ore.predict(IRISModel, IRIS) R> head(IRIS, 3) Sepal.Length Sepal.Width Petal.Length Petal.Width Species PRED 1 5.1 3.5 1.4 0.2 setosa 5.004788 2 4.9 3.0 1.4 0.2 setosa 4.756844 3 4.7 3.2 1.3 0.2 setosa 4.773097
親トピック: Rモデルでの予測