我正在使用h2o包来创建randomForest回归模型。我对变量重要性有一些问题。我正在创建的模型就在这里。一切正常。
有些变量是数字的,但有些是绝对的。
RandomForest <- h2o.randomForest(x = c("Year", "Month", "Day", "Time", "Show", "Gen",
"D", "Lead"), y = "Ratio", data = data.hex, importance=T, stat.type = "GINI",
ntree = 50, depth = 50, nodesize = 5, oobee = T, classification = FALSE, type = "BigData")
但是,当我想看到变量重要性时,输出看起来像这样。
Classification: FALSE
Number of trees: 50
Tree statistics:
Min. Max. Mean.
Depth 30 40 33.26
Leaves 20627 21450 21130.24
Variable importance:
Year Month Day Time Show Gen D Lead
Relative importance 20536.64 77821.76 26742.55 67476.75 283447.3 60651.24 87440.38 3658.625
Standard Deviation NA NA NA NA NA NA NA NA
Z-Scores NA NA NA NA NA NA NA NA
Overall Mean-squared Error:
我想知道的是: 1)为什么可能存在NA值。 2)实际相对重要性意味着什么。不应该在1到100之间吗? 3)为什么输出中没有混淆矩阵?
感谢您的帮助!
答案 0 :(得分:4)
首先,我建议下载最新版本的H20-3。这可以解决您获得标准偏差的NA值的问题。 相对重要性量化了特定预测因子对其他个体预测因子在预测响应变量中所做贡献的贡献。你可能想到的数字需要在1到100之间,这是重要性。 最后,您在输出中没有得到混淆矩阵的原因是您有回归模型而不是分类模型。混淆矩阵仅针对分类模型生成。
您可以通过运行以下命令在R中运行随机林示例:
library(h2o)
conn <- h2o.init()
demo(h2o.randomForest)
然后,您可以通过执行以下操作来查看混淆矩阵/相对和缩放重要性表:
> h2o.confusionMatrix(iris.rf)
Confusion Matrix - (vertical: actual; across: predicted):
Iris-setosa Iris-versicolor Iris-virginica Error Rate
Iris-setosa 50.000000 0.000000 0.000000 0.0000 = 0 / 50
Iris-versicolor 0.000000 47.000000 3.000000 0.0600 = 3 / 50
Iris-virginica 0.000000 6.000000 44.000000 0.1200 = 6 / 50
Totals 50.000000 53.000000 47.000000 0.0600 = 9 / 150
> h2o.varimp(iris.rf)
Variable Importances:
variable relative_importance scaled_importance percentage
1 petal_len 1926.421509 1.000000 0.445738
2 petal_wid 1756.277710 0.911679 0.406370
3 sepal_len 493.782562 0.256321 0.114252
4 sepal_wid 145.390717 0.075472 0.033641
谢谢,希望这会有所帮助!