带有插入符号的决策树中属性使用的奇怪结果

时间:2019-05-29 09:06:07

标签: r machine-learning decision-tree r-caret c5.0

我想知道什么变量对我的决策树模型很重要。

我通过使用插入符号包的train()获得了模型。 但是对于致命变量,属性使用的结果却很奇怪。

下面是我的代码。

set.seed(123)
ctrl <- trainControl(method = "cv", classProbs = TRUE, summaryFunction=twoClassSummary)
mDt <- train(metS ~ ., data= df_train, method = "C5.0", metric="ROC", trControl = ctrl); mDt

我通过使用C5imp()获得了属性用法。 (使用summary(mDt)得出的结果是相同的。)

C5imp(mDt$finalModel)

属性使用结果如下:

  • 年龄100.00
  • 体重指数100.00
  • 高度100.00
  • 体重100.00
  • job7 98.90
  • piHeatScore 83.81
  • dailyAlcoholIntake_final 82.96
  • pi4.L 67.14
  • familyIncome ^ 9
  • pi17.C 60.33
  • pi6.C 59.72
  • pi13.L 56.53
  • ...

奇怪的是,一个因子变量(例如“ pi4”:具有5个级别“ 1” <“ 2” <“ 3” <“ 4” <“ 5”)的Ord.factor具有多种属性用法。 (例如“ pi4.L”,“ pi4.Q”,“ pi4.C”,“ pi ^ 4”)

对于无序因素,这是相似的。例如,“婚姻”是具有6个级别的因子(“ 1”,“ 2”,“ 3”,“ 4”,“ 5”,“ 6”),并且为“ marriage2”显示了属性用法, 'marriage3','marriage4','marriage5'和'marriage6'。

但是,结果应如下所示:

(以下结果是通过使用具有相同数据的C5.0()获得的。对于一个因子变量,显示了一种属性用法。)

mTemp <- C5.0(df_train[,-1], df_train$metS) 
C5imp(mTemp)
  • 体重指数100.00
  • 年龄32.37
  • pi6 27.28
  • pi13 16.92
  • pi9 15.76
  • 职位9.07
  • pi14 2.88
  • ...

我认为这是由C5.0()和train()应用C5.0方法时的差异引起的。

我想使用插入符号包的train(),因为它会自动应用交叉验证等。

请帮助我。

0 个答案:

没有答案