h2o randomForest 变量重要性
h2o randomForest variable importance
我正在使用 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)
然后您可以通过执行以下操作查看您的困惑 matrix/relative 和缩放重要性 table:
> 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
谢谢,希望对您有所帮助!
我正在使用 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)
然后您可以通过执行以下操作查看您的困惑 matrix/relative 和缩放重要性 table:
> 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
谢谢,希望对您有所帮助!