R中SVM模型的查准率和查全率计算
利用人口普查数据建立logistic回归模型和SVM模型,首先将50K转换为1,使数据二项化。我试图计算两种模型的精确度和召回率,并比较哪种模型表现更好。但是支持向量机模型的R中SVM模型的查准率和查全率计算,r,R,利用人口普查数据建立logistic回归模型和SVM模型,首先将50K转换为1,使数据二项化。我试图计算两种模型的精确度和召回率,并比较哪种模型表现更好。但是支持向量机模型的表(test$salary,pred1>0.5)只给出错误值,没有真值(FALSE) 0 26 1 8) . 有人知道问题出在哪里吗 我是R软件的新手,我希望我能从这里得到帮助。非常感谢。欢迎任何帮助。我希望这个问题足够清楚 #setwd("C:/Users/) Censusdata <- read.cs
表(test$salary,pred1>0.5)
只给出错误值,没有真值(FALSE)
0 26
1 8) . 有人知道问题出在哪里吗
我是R软件的新手,我希望我能从这里得到帮助。非常感谢。欢迎任何帮助。我希望这个问题足够清楚
#setwd("C:/Users/)
Censusdata <- read.csv(file="census-data.csv", header=TRUE, sep=",")
library("dplyr", lib.loc="~/R/win-library/3.4")
# convert <=50K to 0, >50K to 1
data = Censusdata
data$salary<-as.numeric(factor(data$salary))-1
library(lattice)
library(ggplot2)
library(caret)
data <- Censusdata
indexes <- sample(1:nrow(data),size=0.7*nrow(data))
test <- data[indexes,]
train <- data[-indexes,]
#logistic regression model fit
model <- glm(salary ~ education.num + hours.per.week,family = binomial,data = test)
pred <- predict(model,data=train)
summary(model)
# calculate precision and recall
table(test$salary,pre >0.5)
# I get
FALSE TRUE
0 26 0
1 6 2
# for SVM model
model1 <- svm(salary ~ education.num + hours.per.week,family = binomial, data=test)
pred1 <- predict(model1,data=train)
table(test$salary,pred1 >0.5)
# I get the following
FALSE
0 26
1 8
#setwd(“C:/Users/)
Censusdata问题的一部分可能源于数据重命名不一致。例如,您将$salary
转换为df
的数值,而不是用于表的数据。(顺便说一句:我建议不要使用数据
作为变量名…或任何基本的R函数),谢谢你@r2evans的帮助。我将数据$salary转换为数字,这似乎有点有用,但我只得到SVM模型的假值,而没有真值。