3.1.3 モデルの構築
このモデルは、トレーニング・データから学習することで、データを事前定義済のカテゴリに分類するように設計されています。
アルゴリズムの選択
次のデータベース内アルゴリズムのいずれかを選択して、分類の問題を解決できます:
- デシジョン・ツリー
 - 一般化線形モデル
 - Naive Bayes
 - ニューラル・ネットワーク
 - ランダム・フォレスト
 - サポート・ベクター・マシン
 
ここでは、SVM分類はバイナリ分類をサポートするアルゴリズムの1つであるため、Support Vector Machineアルゴリズムを使用します。
- データをトレイン・データ・セットおよびテスト・データ・セットに分割します。 トレイン・セットは、非表示のパターンを学習するようにモデルをトレーニングするために使用され、テスト・セットはトレーニング済モデルの評価に使用されます。 
DEMO_DFデータを、トレイン・データ・セットのレコードの60%、テスト・データ・セットの40%で分割します。sampleSize <- .4 * nrow(DEMO_DF) index <- sample(1:nrow(DEMO_DF),sampleSize) group <- as.integer(1:nrow(DEMO_DF) %in% index) rownames(DEMO_DF) <- DEMO_DF$CUST_ID DEMO_DF.train <- DEMO_DF[group==FALSE,] class(DEMO_DF.train) DEMO_DF.test <- DEMO_DF[group==TRUE,] class(DEMO_DF.test) 'ore.frame' 'ore.frame' - データを分割した後、トレイン内の行数を確認し、いずれかのデータセットに行が残っていないかどうかをテストします。
cat("\nTraining data: ") dim(DEMO_DF.train) cat("\nTest data: ") dim(DEMO_DF.test) Training data: 2700 13 Test data: 1800 13 - トレーニング・データを使用してSupport Vector Machineモデルを作成する
ore.odmSVM関数を使用してモデルを構築します。ore.odmSVM関数は、データベース内SVMアルゴリズムへのRインタフェースです。 次に、このモデルを用いて試験データを予測します。ore.exec( "BEGIN DBMS_DATA_MINING.DROP_MODEL(model_name => 'SVM_CLASSIFICATION_MODEL'); EXCEPTION WHEN OTHERS THEN NULL; END;" ) MOD <- ore.odmSVM( formula = AFFINITY_CARD ~ ., data = DEMO_DF.train, type = "classification", kernel.function = "system.determined", odm.settings = list(model_name = "SVM_CLASSIFICATION_MODEL") ) RES <- predict( object = MOD, data = DEMO_DF.test, type = c("raw", "class"), norm.votes = TRUE, cache.model = TRUE, supplemental.cols = c( "CUST_ID", "AFFINITY_CARD", "EDUCATION", "HOUSEHOLD_SIZE", "OCCUPATION", "YRS_RESIDENCE" ) ) 
親トピック: 分類ユース・ケース