使用随机森林是否可以确定哪些特征是将特定样本分类为 A 类的驱动特征?
我知道我可以问哪些特征对执行任何样本的分类更重要,但我可以问这个特定样本吗?例如,为什么样本 1 被归类为 A?它的哪些功能更像 A 类而不是 B 类?
问这个关于随机森林的问题是否有意义?
关于如何在 python 中使用 sklearn 的奖励积分:)
使用随机森林是否可以确定哪些特征是将特定样本分类为 A 类的驱动特征?
我知道我可以问哪些特征对执行任何样本的分类更重要,但我可以问这个特定样本吗?例如,为什么样本 1 被归类为 A?它的哪些功能更像 A 类而不是 B 类?
问这个关于随机森林的问题是否有意义?
关于如何在 python 中使用 sklearn 的奖励积分:)
变量重要性解释了袋外交叉验证预测误差的增加。仅考虑一个样本的预测误差变化是可能的,但没有意义。由于只能正确或错误地预测一个样本,因此这样的术语将非常不稳定和粗略。
您可以查看“局部变量重要性”、“部分依赖图”或“特征贡献”。这是我的包 forestFloor 中使用功能贡献的示例。每个图显示预测类概率的变化作为每个变量的函数。对于 iris 数据集,没有强变量交互作用。因此,模型结构可以归结为二维可视化。R 平方项量化了模型结构与这种仅解释/可视化的主要影响的偏差程度。
library(forestFloor)
library(randomForest)
data(iris)
X = iris[,!names(iris) %in% "Species"]
Y = iris[,"Species"]
rf = randomForest(X,Y,
keep.forest=TRUE, #mandatory for classification
replace=FALSE, #if TRUE use trimTrees::cinbag, not randomForest
keep.inbag=TRUE, #mandatory always for forestFloor
sampsize =15 ) #optional:smaller trees smoother model structure
ff = forestFloor(rf.fit = rf, # mandatory
X = X, # mandatory
calc_np = "sad monkey", # this input takes no effect for classification
binary_reg = FALSE) # can change two class classification to regression
# Thus cannot be TRUE for IRIS (three class)
plot(ff,plot_GOF=TRUE,cex=.7,
colLists=list(c("#FF0000A5"),
c("#00FF0050"),
c("#0000FF35")))