决策树模型长时间运行

时间:2016-03-08 23:52:23

标签: python r machine-learning decision-tree

我正在使用R中的rpart包运行我的决策树模型。这就是我正在做的事情,

  1. 使用read.csv
  2. 加载我的数据
  3. 删除不需要的列
  4. 将我的数据集拆分为培训和测试
  5. 在训练集上安装我的模型 - 这一整天都在运行。
  6. 以下是我的数据集摘要。

    'data.frame':   117919 obs. of  7 variables:
     $ Database          : Factor w/ 2 levels "DBIL","DBPD": 1 1 1 1 1 1 1 1 1 1 ...
     $ Market_Description: Factor w/ 1 level "MY (PM)": 1 1 1 1 1 1 1 1 1 1 ...
     $ Manufacturer      : Factor w/ 21 levels "21 Century","Abbott Lab",..: 4 3 4 4 4 4 3 3 3 3 ...
     $ Brand             : Factor w/ 133 levels "","21 Century",..: 34 26 34 34 34 34 26 26 26 26 ...
     $ Sub_Brand         : Factor w/ 194 levels "","0-6 Bulan",..: 9 6 9 9 9 9 6 6 6 6 ...
     $ Age_Group         : Factor w/ 5 levels "","Adultenr",..: 1 1 1 1 1 1 1 1 1 1 ...
     $ FMT_Category      : Factor w/ 10 levels "Adult Powders (excl Super Bev)",..: 5 5 5 5 5 5 5 5 5 5 ...
    

    这是我的模型脚本..

    fit <- rpart(FMT_Category~Database+Market_Description+Manufacturer+Brand+Sub_Brand+Age_Group, data=trainingset)
    

    仅有117919次观察。我检查了我的R中的memory.limit,它说8065,mem_used也说40 MB。我没有收到任何错误,但模型一直运行一天。所以我不知道该在这里查看什么。我希望R至少给一些蹩脚的树,所以我可以从那里开始。我认为这与因素有关,所以我用stringAsFactors = FALSE读取数据。它仍然永远运行。我在我的python脚本和weka中尝试了相同的数据,它运行速度快,没​​有任何错误。请让我知道我错过了什么,或者指出我应该检查的正确方向。

    编辑 - 我刚才注意到问题是Brand和Sub_Brand中的级别数,这使得模型永远运行,因为它必须以递归方式运行。有任何处理此事的建议吗?

2 个答案:

答案 0 :(得分:1)

  1. 使用Brand和Sub_Brand作为整数。
  2. 摆脱只有1级的Market_Description,对决策树模型没有帮助。

答案 1 :(得分:0)

您可以将H2O package用于决策树,随机森林和神经网络。 请参阅h2o.gbmh2o.randomForest。此软件包允许您使用所有计算机资源。

你可以鳍和例子:

library(h2o)
conn <- h2o.init()
demo(h2o.randomForest)