您可以通过多种方式使用随机森林计算变量的重要性。
我。平均减少杂质 (MDI) / Gini 重要性:
这利用了随机森林模型或决策树。在训练一棵树时,它是通过每个特征减少树中加权杂质的程度来衡量的。对于森林,可以平均每个特征的杂质减少,并根据此度量对特征进行排名。这是使用 R 的相同示例。
fit <- randomForest(Target ~.,importance = T,ntree = 500, data=training_data)
var.imp1 <- data.frame(importance(fit, type=2))
var.imp1$Variables <- row.names(var.imp1)
varimp1 <- var.imp1[order(var.imp1$MeanDecreaseGini,decreasing = T),]
par(mar=c(10,5,1,1))
giniplot <- barplot(t(varimp1[-2]/sum(varimp1[-2])),las=2,
cex.names=1,
main="Gini Impurity Index Plot")
输出将如下所示:Gini Importance Plot
二。排列重要性或平均精度降低 (MDA):通过移除该特征与目标之间的关联来评估每个特征的排列重要性或平均精度降低 (MDA)。这是通过随机排列特征值并测量由此产生的误差增加来实现的。相关特征的影响也被移除。 R中的示例:
fit <- randomForest(Target ~.,importance = T,ntree = 500, data=training_data)
var.imp1 <- data.frame(importance(fit, type=1))
var.imp1$Variables <- row.names(var.imp1)
varimp1 <- var.imp1[order(var.imp1$MeanDecreaseGini,decreasing = T),]
par(mar=c(10,5,1,1))
giniplot <- barplot(t(varimp1[-2]/sum(varimp1[-2])),las=2,
cex.names=1,
main="Permutation Importance Plot")
这两个是直接使用随机森林的。有一些更易于使用的指标用于变量重要性计算目的。 'Boruta' 方法和证据权重 (WOE) 和信息价值 (IV) 也可能会有所帮助。