为变量重要性和绘图实施varImp
我试图为下面的模型绘制可变的重要性分数 分数输出很好,但没有正确绘制-我需要在代码中添加另一个参数吗 下面是代码和分数输出为变量重要性和绘图实施varImp,r,r-caret,R,R Caret,我试图为下面的模型绘制可变的重要性分数 分数输出很好,但没有正确绘制-我需要在代码中添加另一个参数吗 下面是代码和分数输出 library(caret) #GENERALISED LINEAR MODEL LR_swim <- lm(racetime_mins ~ event_date+ event_month +year +event_id + gender + distance_new + New_Condition+ raceNo_U
library(caret)
#GENERALISED LINEAR MODEL
LR_swim <- lm(racetime_mins ~ event_date+ event_month +year +event_id +
gender + distance_new + New_Condition+
raceNo_Updated +
handicap_mins +points+
Wind_Speed_knots+
Air_Temp_Celsius +Water_Temp_Celsius +Wave_Height_m,
data = SwimmingTrain)
family=gaussian(link = "identity")
varImp2<-varImp(object=LR_swim)
plot(varImp2,main="Variable Importance")
我的看起来像
应该看起来像
根据您想要的结果,您的目标是从数据框中绘制一个数字列,按列中的值在y轴上排序。我将使用
mtcars
数据集作为示例
library(caret)
LR_mtcars <- glm(mpg ~ ., data = mtcars, family = gaussian)
varImp2 <- varImp(LR_mtcars)
然后我们可以绘制这些值。对于绘图的第一次迭代,我们将x轴和y轴的标题以及y轴的标签留空。然后,我们随后将其添加回
plot(x = varImp2$Overall, y = varImp2$labels, main = "Variable Importance",
yaxt = "n", ylab = "", xlab = "")
axis(2, at = 1:nrow(varImp2), labels = levels(varImp2$labels), las = 2)
title(xlab = "Importance")
这给了我们
根据您想要的结果,您的目标是从数据框中绘制一个数字列,按列中的值在y轴上排序。我将使用
mtcars
数据集作为示例
library(caret)
LR_mtcars <- glm(mpg ~ ., data = mtcars, family = gaussian)
varImp2 <- varImp(LR_mtcars)
然后我们可以绘制这些值。对于绘图的第一次迭代,我们将x轴和y轴的标题以及y轴的标签留空。然后,我们随后将其添加回
plot(x = varImp2$Overall, y = varImp2$labels, main = "Variable Importance",
yaxt = "n", ylab = "", xlab = "")
axis(2, at = 1:nrow(varImp2), labels = levels(varImp2$labels), las = 2)
title(xlab = "Importance")
这给了我们
在命令中,我询问了
varImp2
的行名是否为绘图中所需的x值,但您没有告诉我。在任何情况下,假设行名是您要指定的y值,这些代码为您提供了所需的绘图,您可以自己安排x和y
library(ggplot2)
ggplot(data= varImp2, aes(x=rownames(varImp2),y=Overall)) +
geom_bar(position="dodge",stat="identity",width = 0, color = "black") +
coord_flip() + geom_point(color='skyblue') + xlab(" Importance Score")+
ggtitle("Variable Importance") +
theme(plot.title = element_text(hjust = 0.5)) +
theme(panel.background = element_rect(fill = 'white', colour = 'black'))
在命令中,我询问了
varImp2
的行名是否为绘图中所需的x值,但您没有告诉我。在任何情况下,假设行名是您要指定的y值,这些代码为您提供了所需的绘图,您可以自己安排x和y
library(ggplot2)
ggplot(data= varImp2, aes(x=rownames(varImp2),y=Overall)) +
geom_bar(position="dodge",stat="identity",width = 0, color = "black") +
coord_flip() + geom_point(color='skyblue') + xlab(" Importance Score")+
ggtitle("Variable Importance") +
theme(plot.title = element_text(hjust = 0.5)) +
theme(panel.background = element_rect(fill = 'white', colour = 'black'))
您能在您的问题中添加
类(vaImp2)
和头(varImp2)
吗?因此,我们可以看到上面添加的vaImp2
@maydin的格式和类型!您是否尝试过绘图(varImp2[,1],main=“Variable Importance”)?我现在添加了绘图的外观,我要查找的是y轴上的变量和X轴上的重要性分数。您的数据集中只有一列称为“总体”…所以我不知道另一列是什么?是否要使用行名作为x值,即使它们是字符?是否可以在问题中添加类(vaImp2)
和头(varImp2)
?因此,我们可以看到上面添加的vaImp2
@maydin的格式和类型!您是否尝试过绘图(varImp2[,1],main=“Variable Importance”)?我现在添加了绘图的外观,我要查找的是y轴上的变量和X轴上的重要性分数。您的数据集中只有一列称为“总体”…所以我不知道另一列是什么?是否要使用行名称作为x值,即使它们是字符?