使用R完成逻辑斯蒂回归分类 直接上代码,如下:

时间:2022-05-04
本文章向大家介绍使用R完成逻辑斯蒂回归分类 直接上代码,如下:,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
data_sample <- iris[51:150,];
m <- dim(data_sample)[1]  
#获取数据集记录条数
val <- sample(m, size =round(m/3), replace = FALSE, prob= 
rep(1/m, m))  #抽样,选取三分之二的数据作为训练集。  
iris.learn <- 
data_sample[-val,]  #选取训练集  
iris.valid <- 
data_sample[val,]   #选取验证集 
#调用glm函数训练逻辑斯蒂二元模型
#glm()提供正态、指数、gamma、逆高斯、Poisson、二项分布。我们的logistic回归使用的是二项分布族binomial。Binomial族默认连接函数为logit,可设置为probit。
logit.fit 
<- glm(Species~Petal.Width+Petal.Length,
 family = binomial(link = 
'logit'),
 data = iris.learn);
#生成测试数据集,实际上直接使用iris.valid
dfrm <- 
data.frame(Petal.Width=iris.valid$Petal.Width,
 Petal.Length=iris.valid$Petal.Length);
real_sort <- iris.valid$Species;  #测试数据集实际类别
prdict_res <- predict(logit.fit, type="response", newdata=dfrm);  
#预测数据产生概率
data.frame(predict=prdict_res, real=real_sort);  
#查看数据产生概率和实际分类的关系
data.frame(predict=ifelse(prdict_res>0.5, "virginica", 
"versicolor"), real=real_sort);  
#根据数据产生概率生成预测分类
table(data.frame(predict=ifelse(prdict_res>0.5, 
"virginica", "versicolor"), real=real_sort));  #计算分类准确度