使用多核时,插入包的性能极差

时间:2014-03-27 12:08:47

标签: r performance multicore r-caret

我正在阅读这本书" Applied Predictive Modeling"由caret包的作者。

关于svm培训的第一个例子需要几个小时才能在我的64位i7 16 GB xubuntu桌面上运行[我在4小时后放弃]。因为这是一个玩具"数据集[800行,42个变量],肯定有一种方法可以在合理的时间内运行它。

library(caret)
data(GermanCredit)

library(doMC)
registerDoMC(8)

GermanCredit <- GermanCredit[, -nearZeroVar(GermanCredit)]
GermanCredit$CheckingAccountStatus.lt.0 <- NULL
GermanCredit$SavingsAccountBonds.lt.100 <- NULL
GermanCredit$EmploymentDuration.lt.1 <- NULL
GermanCredit$EmploymentDuration.Unemployed <- NULL
GermanCredit$Personal.Male.Married.Widowed <- NULL
GermanCredit$Property.Unknown <- NULL
GermanCredit$Housing.ForFree <- NULL

## Split the data into training (80%) and test sets (20%)
set.seed(100)
inTrain <- createDataPartition(GermanCredit$Class, p = .8)[[1]]
GermanCreditTrain <- GermanCredit[ inTrain, ]
GermanCreditTest  <- GermanCredit[-inTrain, ]

set.seed(1056)
svmFit = train(Class ~ ., 
           data = GermanCreditTrain,
           method = "svmRadial")

问题:如果此代码正确,如何在合理的时间内运行?

1 个答案:

答案 0 :(得分:0)

我在Linux上遇到了令人难以置信的svmRadial性能。事实证明,对我来说问题也在于使用多核DoMCsvmRadial在单个核心上运行良好。 kernlab函数是caret中唯一表现出我见过的行为的函数。这非常令人沮丧,因为为了让SVM功能正常工作,我不得不为我的整个脚本删除多核。