我正在使用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)为什么输出中没有混淆矩阵?
感谢您的帮助!
首先,我建议下载最新版本的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
谢谢,希望这会有所帮助!