分类分析--逻辑回归(二分类)


分类分析--逻辑回归

逻辑回归(logistic regression)是广义线性模型的一种,可根据一组数值变量预测二元输出,即逻辑回归只适用于二分类 ,R中的基本函数glm()可用于拟合逻辑回归模型。glm()函数自动将预测变量中的分类变量编码为相应的虚拟变量。威斯康星乳腺癌数据中的全部预测变量都是数值变量,因此不必要对其编码。

1)使用glm()进行逻辑回归

#拟合逻辑回归,基于df.train数据框中的数据构造逻辑回归模型

fit.logit <- glm(class~., data=df.train, family=binomial())       

summary(fit.logit)      #检查模型

 

 

  

结果分析:模型中有三个预测变量(sizeUniformityshapeUniformitysingleEpithelialCellSize)的系数未通过显著性检验(即p值大于0.1)。从预测的角度来说,我们一般不会将这些变量纳入最终模型。当这类不包含相关信息的变量特别多时,可以直接将其认定为模型中的噪声。

#对训练集外样本单元进行分类,采用基于df.train建立的模型来对df.validate数据集中的样本单元分类。predict()函数默认输出肿瘤为恶性的对数概率,指定参数type="response"即可得到预测肿瘤为恶性的概率。样本单元中,概率大于0.5的被分为恶性肿瘤类,概率小于等于0.5的被分为良性肿瘤类。

prob <- predict(fit.logit, df.validate, type="response")      

logit.pred <- factor(prob > .5, levels=c(FALSE, TRUE),

                       labels=c("benign", "malignant"))

#评估预测准确性,给出预测与实际情况对比的交叉表(即混淆矩阵,confusion matrix

logit.perf <- table(df.validate$class, logit.pred,dnn=c("Actual", "Predicted"))

logit.perf

 

结果分析:模型正确判别了129个类别为良性的患者和69个类别为恶性的患者。在验证集上,正确分类的模型(即准确率,accuracy)为(129+69)/205=96.6%


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM