私は車両識別番号(VIN)に基づいて車両(モデル)のタイプを予測しようとしています。 VINの最初の10桁には型のことが書かれているので、変数として使用します。私はそれのために、このRコードを使用意思決定ツリーでRの機械学習が遅い
positie_1_tm_3 positie_4 positie_5 positie_6 positie_7 positie_8 positie_9 positie_10 MODEL
MBL B 7 5 L 7 A 6 SKODA YETI
JNF A A E 1 1 U 2 NISSAN NOTE
VWZ Z Z 5 Z Z 9 4 VOLKSWAGEN FOX
F1D Z 0 V 0 6 4 2 RENAULT MEGANE
NAK U 8 1 1 C A 5 KIA SORENTO
F1B R 1 J 0 H 4 1 RENAULT CLIO
:以下のデータの例を参照してください。ツリーを作り、
#make stratisfied train and test set:
library(caret)
train.index <- createDataPartition(VIN1$MODEL, p = .6, list = FALSE)
train <- VIN1[ train.index,]
overige_data <- VIN1[-train.index,]
test.index<-createDataPartition(overige_data$MODEL, p = .5, list = FALSE)
test<-overige_data[test.index,]
testset2<-overige_data[-test.index,]
#make decision three :
library(rpart)
library(rpart.plot)
library(rattle)
library(RColorBrewer)
tree<- rpart(MODEL ~., train, method="class")
しかし、最後の1を、すでに2週間以上実行されています。 データセットは約300万行であるため、トレーニングセットは約1,800万行です。それはrpartのためにあまりにも多くのデータか、または別の問題があるので、それはずっと長く実行されていますか?
私はそれがデータセットのサイズだと思う。私は50k x 20のデータフレームで6時間のトレーニングを見ました。ベンチマークのためのより小さいセットでトレーニングすることができますか、またはジョブを複数のマシンに分割できますか?あなたはパラレルモードで走っていますか? – varontron
私はすべてのタイプの車両で訓練しなければならないので、より小さなセットはオプションではなく、複数のマシンにジョブを分割することはできません。私はパラレルモードでの実行に慣れていませんでした。だから私はインターネットでそれについて読んだ。スクリプトをパラレルモードにするのは難しいですが、私はRのプロではありません。しかし、大きなデータでよりうまくやっているrxDTreeアルゴリズムについては何かを見つけました。たぶん私はこのアルゴリズムを試すことができます。しかし、私はそれが革命の有償アルゴリズムだと思っています。したがって、スクリプトを並列実行するためのヒントやサンプルスクリプトがあれば、私は聞いてうれしいです。 – Donald
明確にするために、パフォーマンスを評価するために小さなセットを訓練することを提案しました。あなたはおそらく合計ランタイムを外挿することができますが、1000行を訓練することができます。また、この質問に対する回答を既に暗示していることはわかりましたが(つまり「いいえ」)、次元削減の機会はありますか?クラスタリング?共直線性? – varontron