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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容