全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6606 2
2016-10-17
以下是自己写的logistic回归的十折交叉验证代码,结果输出是i从1取到10的10个准确率precision的值
想设计一个程序自动输出,使准确率最大的i值,请问应该怎么写代码?

for(i in 1:10){

  fold_test <- australian[folds[[i]],]   #取folds[[i]]作为测试集
  fold_train <- australian[-folds[[i]],]   # 剩下的数据作为训练集

  print("**************")

  fold_pre <- glm(Y ~.,family=binomial(link='logit'),data=fold_train)
  fold_predict <- predict(fold_pre,type='response',newdata=fold_test)
  fold_predict =ifelse(fold_predict>0.5,1,0)
  fold_test$predict = fold_predict
  fold_true_value=fold_test[,15]
  fold_predict_value=fold_test[,16]   
  fold_retrieved=sum(fold_predict_value)   
  fold_precision=sum(fold_true_value & fold_predict_value)/fold_retrieved
  print(fold_precision)
}

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-10-17 14:41:23
max=0
num=0

for(i in 1:10){
  
  fold_test <- australian[folds[[i]],]   #取folds[[i]]作为测试集
  fold_train <- australian[-folds[[i]],]   # 剩下的数据作为训练集
  
  print("**************")
  
  fold_pre <- glm(Y ~.,family=binomial(link='logit'),data=fold_train)
  fold_predict <- predict(fold_pre,type='response',newdata=fold_test)
  fold_predict =ifelse(fold_predict>0.5,1,0)
  fold_test$predict = fold_predict
  fold_true_value=fold_test[,15]
  fold_predict_value=fold_test[,16]   
  fold_retrieved=sum(fold_predict_value)   
  fold_precision=sum(fold_true_value & fold_predict_value)/fold_retrieved
  print(i)
  print(fold_precision)

  if(fold_precision>max)
    {
    max=fold_precision  
    num=i
    }
  
}

print(max)
print(num)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-10-17 14:42:24
135792486 发表于 2016-10-17 14:41
max=0
num=0
自己编了一个 if 函数写好了,想问这里有别的函数可以实现吗? 比如whichmax() 类似这样的R自带的函数?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群