K倍交叉验证是对模型的性能进行评估,可以用来防止过拟合,比如对决策树节点数目的确定或是回归模型参数个数地决定等情况。
1.对于一些特殊数据来说,在调用glm()方法时候,会出现两种常见错误
Warning: glm.fit: algorithm did not converge
Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
Warning messages:
1: glm.fit:算法没有聚合
2: glm.fit:拟合機率算出来是数值零或一
针对第一种,一般是因为在回归拟合的时候次数少,control=list(maxit=100)修改次数为100即可;
第二种一般就是数据已经分散好了,可以理解为一种过拟合,由于数据的原因,在回归系数的优化搜索过程中,使得分类的种类属于某一种类(y=1)的线性拟合值趋于大,分类种类为另一 类(y=0)的线性拟合值趋于小。
以鸢尾花数据为例子,
这里写代码片
testdata$y <- c(1:80)
qplot(pl,y,data =testdata,colour =factor(species));
R中logistics回归分析以及K-CV
这种情况直接就可以划分了,无需回归分析

2.建立好回归模型,调用predict()进行评价,根据包里面的解释:
R中logistics回归分析以及K-CV
默认是线性预测因子的尺度; 若是
type= “response“<==>“响应”是响应变量的规模。
所以predict(log.glm) 返回的是”β0+β1x1+…βmxm”,而predict(log.glm,typee= “response“)返回的是P值。下图是我做的认为验证
R中logistics回归分析以及K-CV

R中logistics回归分析以及K-CV

R中logistics回归分析以及K-CV

3。下来就是通过K倍交叉验证评价模型好坏了,cv.glm(log.glm,trian,K=10)
R中logistics回归分析以及K-CV
可以得到错误率;

4.最后可以画ROC曲线,由于cv.glm只有错误率没有P值,所以自己编了一个程序作了CV,得到图为:
R中logistics回归分析以及K-CV

有一个疑问,就是做ROC曲线的时候,是不是把test_data分别带入相同模型五个不同的参数中得P值(以5倍交叉验证为例)??

自己也是蛮笨的,为了这个事情搞了一天半,加油吧,感情上是个loser,学习上盼望有点建树吧。

相关文章:

  • 2021-07-11
  • 2021-05-01
  • 2022-12-23
  • 2022-12-23
  • 2021-04-25
  • 2021-10-10
  • 2021-09-17
  • 2021-04-14
猜你喜欢
  • 2021-11-17
  • 2022-01-08
  • 2021-11-23
  • 2021-08-02
  • 2021-07-10
  • 2021-09-19
相关资源
相似解决方案