介绍
本篇内容主要讲解“R语言逻辑回归,民国曲线与十折如何实现交叉验证”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“R语言逻辑回归,民国曲线与十折如何实现交叉验证”吧!
<强> 1。测试集和训练集3、7分组强>
australian & lt;作用;read.csv (“australian.csv" as.is =, T, 9=?“,头=TRUE) #读取行数 时间=N 长度(澳大利亚$ Y),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0.7 #印第安纳=1的是概率出现的行,印第安纳州=2是0.3概率出现的行 印第安纳州=样本(2 N取代=TRUE,概率=c (0.7, 0.3)) #生成训练集(这里训练集和测试集随机设置为原数据集的70%,30%) aus_train & lt;作用;澳大利亚(印第安纳州==1) #生成测试集 aus_test & lt;作用;澳大利亚(印第安纳州==2)
<强> 2。生成模型,结果导出强>
#生成罗技模型,用glm函数 #用训练集数据生成罗技模型,用glm函数 #家庭:每一种响应分布(指数分布族)允许各种关联函数将均值和线性预测器关联起来。常用的家庭:双(链接=& # 39;分对数# 39;)——响应变量服从二项分布,连接函数为分对数,即物流回归 漠视pre & lt;作用;(Y ~,家庭=二项(=link “logit"), data =, aus_train) 总结(前) #测试集的真实值 real & lt;作用;aus_test $ Y #预测函数可以获得模型的预测值。这里预测所需的模型对象为前,预测对象newdata为测试集,预测所需类型类型选择响应,对响应变量的区间进行调整 预测只& lt;作用;predict.glm (pre, type=& # 39;响应# 39;,newdata=https://www.yisu.com/zixun/aus_test) #按照预测值为1的概率,> 0.5的返回1,其余返回0 预测=ifelse(预测。> 0.5,1,0) #数据中加入预测值一列 aus_test预测美元=预测 #导出结果为csv格式 # write.csv (aus_test aus_test.csv)
<强> 3。模型检验强>
# #模型检验 res & lt;作用;data.frame(真实的,预测) #训练数据的行数,也就是样本数量 时间=n nrow (aus_train), #计算Cox-Snell拟合优度 R2 & lt;安康;1-exp ((pre deviance-pre null.deviance美元)/n), 猫(“Cox-Snell  R2=? R2,“\ n") #计算Nagelkerke拟合优度,我们在最后输出这个拟合优度值 R2<强> 4。准确率和精度强>
true_value=https://www.yisu.com/zixun/aus_test [15] predict_value=aus_test [16] #计算模型精确度 错误=predict_value-true_value 精度=(nrow (aus_test)和(abs(错误)))/nrow (aus_test) #精确度,判断正确的数量占总数的比例 #计算精度、召回和F-measure #一般来说,精度就是检索出来的条目(比如:文档,网页等)有多少是准确的,回忆就是所有准确的条目有多少被检索出来了 #和混淆矩阵结合、精密计算的是所有被检索到的物品(TP + FP)中,“应该被检索到的物品(TP)”占的比例;召回计算的是所有检索到的物品(TP)占所有“应该被检索到的项目(TP + FN)”的比例。 精度=sum (true_value & predict_value)/(predict_value)和#真实值预测值全为1/预测值全为1 - - -提取出的正确信息条数/提取出的信息条数 回忆=sum (predict_value & true_value)/(true_value)和#真实值预测值全为1/真实值全为1 - - -提取出的正确信息条数/样本中的信息条数 # P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure(又称为f值) F_measure=2 *精度*回忆/(精度+召回)# F-Measure是精度和召回加权调和平均,是一个综合评价指标 #输出以上各结果 打印(精度) 打印(精度) 打印(回忆) 打印(F_measure) #混淆矩阵,显示结果依次为TP, FN, FP, TN 表(true_value predict_value)<强> 5。中华民国曲线的几个方法强>
#中华民国曲线 1 #,方法 # install.packages (“ROCR"), 库(ROCR), pred & lt;安康;预测(预测true_value), #预测值(0.5二分类之前的预测值)和真实值, 性能(pred & # 39; AUC # 39;) @y.values # AUC值 perf & lt;作用;性能(pred & # 39; tpr # 39;, & # 39;玻璃钢# 39;) 情节(性能) 2 #方法 # install.packages (“pROC") 库(触发) modelroc & lt;作用;roc (true_value预测。) 情节(modelroc, print.auc=TRUE,, auc.polygon=TRUE, legacy.axes=TRUE,,网格=c (0.1, 0.2), ,grid.col=c (“green",,“red"),, max.auc.polygon=TRUE, ,auc.polygon.col=皊kyblue",, print.thres=TRUE), #画出民国曲线,标出坐标,并标出AUC的值 3 #方法,按中华民国定义 TPR=代表(0,1000) 玻璃钢=代表(0,1000) p=预测。 (小姐:1:1000拷贝) {大敌; ,p0=i/1000; ,ypredR语言逻辑回归,民国曲线与十折如何实现交叉验证