h2o randomForest 变量重要性
Posted
技术标签:
【中文标题】h2o randomForest 变量重要性【英文标题】:h2o randomForest variable importance 【发布时间】:2015-07-25 09:30:05 【问题描述】:我正在使用 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) 为什么输出中没有混淆矩阵?
感谢您的帮助!
【问题讨论】:
您的结果 (y
) 变量是否连续?输出状态为Classification: FALSE
。混淆矩阵仅适用于分类结果变量。
【参考方案1】:
首先,我建议下载最新版本的 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
谢谢,希望对您有所帮助!
【讨论】:
相对重要性告诉你什么?较高的值是否意味着该变量对预测目标变量相对于其他变量的贡献最大?还是反之亦然?那么,在您的示例中,petal_len 的相对重要性 id 越高,是否意味着它是最重要的?以上是关于h2o randomForest 变量重要性的主要内容,如果未能解决你的问题,请参考以下文章
r R脚本采用H2o模型权重和偏差,并通过NeuralNetTools旧的变量重要性函数发送它们......并且第一个ti