gpt4 book ai didi

r - 如何找到哪些列影响 R 中的预测

转载 作者:行者123 更新时间:2023-12-01 02:03:55 27 4
gpt4 key购买 nike

比如说,我正在使用朴素贝叶斯在 R 中开发机器学习模型。所以我将使用 naiveBayes 包构建一个模型,如下所示

model <- naiveBayes(Class ~ ., data = HouseVotes84)

我还可以通过打印模型来打印模型的权重。

我按如下方式进行预测,这给了我一个作为预测的类
predict(model, HouseVotes84[1:10,], type = "raw")

但是,我的问题是,有没有办法查看哪些列对这个预测影响最大?因此,我可以了解导致学生不及格的最重要因素是什么,例如,如果这是响应变量,而各种可能的因素是其他预测变量列。

我的问题是对于 R 中的任何包,上面的 naiveBayes 只是一个例子。

最佳答案

答案取决于您想如何做 feature selection .

如果它是模型构建过程的一部分而不是一些事后分析,您可以使用 caret与其 feature selection wrapper使用递归特征消除、遗传算法等或使用单变量分析过滤来确定要建模的最佳特征子集的方法。

如果它是仅基于您的预测的事后分析的一部分。然后这取决于您使用的模型类型。 caret还支持this functionality仅适用于兼容型号!

对于 svm ,除了线性内核,确定系数的重要性非常高non-trivial .我不知道有任何尝试对 svm 进行某种特征排名的尝试。一般而言,无论语言如何(请告诉我它是否存在!!)。

rpart (如问题中的标记)您可以直观地查看节点。节点越高越重要。这可以在 caret 中完成包裹:

library(rpart)
library(caret)
fit <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
caret::varImp(fit)
# Overall
#Age 5.896114
#Number 3.411081
#Start 8.865279

naiveBayes您可以从模型输出中看到它。你只需要非常努力地凝视:
data(HouseVotes84, package = "mlbench")
model <- naiveBayes(Class ~ ., data = HouseVotes84)
model
#
#Naive Bayes Classifier for Discrete Predictors
#
#Call:
#naiveBayes.default(x = X, y = Y, laplace = laplace)
#
#A-priori probabilities:
#Y
# democrat republican
# 0.6137931 0.3862069
#
#Conditional probabilities:
# V1
#Y n y
# democrat 0.3953488 0.6046512
# republican 0.8121212 0.1878788
#
# V2
#Y n y
# democrat 0.4979079 0.5020921
# republican 0.4932432 0.5067568

非常简短的一瞥表明,至少 V1看起来比 V2 更好的变量.

关于r - 如何找到哪些列影响 R 中的预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34123242/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com