逻辑回归解决分类问题,第一步要先确定特征,自变量,因变量
用R 的glm,原始数据读入
read.csv()#第一行为列名,header=T,列名是各自变量
先分训练集和测试集,7:3
train_sub = sample(nrow(data1),7/10*nrow(data1))
train_data = data1[train_sub,]
test_data = data1[-train_sub,]
用到的是glm()函数,公式如下
data1_logistic <- glm(f,data = train_data, family = "binomial")
f指的是回归公式,如果自变量比较少,可以手动键入公式,如果自变量比较多,那么可以先写一行代码生成公式:
f <- as.formula(paste('y ~',paste(bpname,collapse = ' + ')))
最后summary一下,得出结果。
评估回归训练模型常用ROC曲线:
library(pROC) pre <- predict.glm(data1_logistic, type = 'response', newdata = test_data) real <- test_data$y date_roc <- roc(real, pre) plot(date_roc, print.auc = TRUE, auc.polygon = TRUE, legacy.axes = TRUE, grid = c(0.1, 0.2), grid.col = c("green", "red"), max.auc.polygon = TRUE, auc.polygon.col = "skyblue", print.thres = TRUE, xlab = "特异度", ylab = "灵敏度", main = "逻辑回归结果")
结果AUC值越接近1,说明模型越好!