Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为变量重要性和绘图实施varImp_R_R Caret - Fatal编程技术网

为变量重要性和绘图实施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值,即使它们是字符?