R 做多元逻辑回归

逻辑回归解决分类问题,第一步要先确定特征,自变量,因变量

用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,说明模型越好!

你可能感兴趣的:(R 做多元逻辑回归)