我使用人口普查数据来构建逻辑回归模型和SVM模型,首先,我将< = 50K转换为0,然后将50K转换为1以使数据二项式化。我尝试计算两种模型的精度和召回率,并比较哪种模型表现更好?但r表中SVM模型的表(test $ salary,pred1> 0.5)表示<范围表2 x 0> 警告信息: 在Ops.factor(pred1,0.5)中:'>'对因子没有意义 但类似的代码正在用于逻辑回归模型。我是R软件的新手,我希望我能从这里得到帮助。谢谢你们。欢迎任何帮助。 我希望这个问题足够清楚。
#setwd("C:/Users/)
Censusdata <- read.csv(file="census-data.csv", header=TRUE, sep=",")
library("dplyr", lib.loc="~/R/win-library/3.4")
df <- Censusdata[,]
# convert <=50K to 0, >50K to 1
df$salary <- as.numeric(factor(df$salary))-1
head(df,10)
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)
# 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)