【发布时间】:2017-02-11 08:25:18
【问题描述】:
我正在尝试根据车辆识别号 (VIN) 来预测车辆(型号)的类型。 VIN 的前 10 个位置说明了类型,所以我将它们用作变量。请参阅以下数据示例:
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
我使用了这个 R 代码:
#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")
但是最后一个,制作树,已经运行了两个多星期。 数据集大约有 300 万行,因此训练集大约有 180 万行。运行这么久是因为 rpart 的数据太多还是有其他问题?
【问题讨论】:
-
我怀疑是数据集的大小。我已经看到在 50k x 20 数据帧上运行了 6 小时的训练。您可以在较小的集合上进行训练以进行基准测试,或者将工作拆分到多台机器上吗?您是否在并行模式下运行?
-
我必须在所有类型的车辆上进行训练,因此不能选择较小的集合,并且我不能将工作拆分到多台机器上。我不熟悉以并行模式运行。所以我在互联网上读到了它。我很难将我的脚本构建为并行模式,我不是 R 方面的专家。但我发现了一些关于 rxDTree 算法的东西,它在大数据方面做得更好,并且正在做一些已经并行的事情。也许我可以试试这个算法。但我看到这是革命的付费算法。因此,如果您有让我的脚本并行运行的提示或示例脚本,我很高兴听到。
-
为了澄清,我建议在较小的集合上进行训练以评估性能。您可以推断总运行时间,但在 1000 行上进行训练。另外,我意识到您已经暗示了这个问题的答案(即“否”),但是是否有任何降维的机会?聚类?共线性?
标签: r machine-learning rpart