logit2.R-20170913

library(caret) 
library(MASS)
library(glmnet)
data=as.matrix(oadata2)
colnames(data)=c('y','x1','x2','x17',paste("x",3:16,sep=""))

c=10 #验证c次
set.seed(5000)
r3=matrix(0,c,1)
a=matrix(0,c,2)
merror=matrix(0,c,1)
pea=matrix(0,c,1)

for (k in 1:c) {
  # index1=createDataPartition(data[,1], time=1, p=0.8, list=F) #分成3份
  # train1=data[index1, ] #train1=train集
  # train2=data[-index1, ]
  # index2=createDataPartition(train2[,1], time=1, p=0.5, list=F)
  # train3=data[index2, ] #train3=调整参数train集
  # test=data[-index2, ] #test集
  # colnames(train1)=c('y','x1','x2','x17',paste("x",3:16,sep=""))
  # colnames(train3)=c('y','x1','x2','x17',paste("x",3:16,sep=""))
  # colnames(test)=c('y','x1','x2','x17',paste("x",3:16,sep=""))
  index1=createDataPartition(data[,1], time=1, p=0.8, list=F) #分成2份
  train=data[index1, ] #train1=train集
  test=data[-index1, ]
  colnames(train)=c('y','x1','x2','x17',paste("x",3:16,sep=""))
  colnames(test)=c('y','x1','x2','x17',paste("x",3:16,sep=""))
  
  # CV for 11 alpha value,取alpha的值
  p=10 #alpha精度为1/p
  mse=matrix(0,p,1)
  for (i in 0:p) {
    li=cv.glmnet(x=train[,2:18],y=as.factor(train[,1]), family="multinomial", alpha=i/p,
                 intercept=FALSE, type.measure="mse")
    yhat=predict(li, s=li$lambda.1se, newx=train[,2:18],type="response")
    mse[i]=mean((train[,1]-yhat)^2)
  }
  a[k,1]=which.min(mse) #取mse最小的alpha对应的第几次
  a[k,2]=min(mse)
  #logit, Elastic Net, alpha=k/10
  l=cv.glmnet(x=test[,2:18],y=as.factor(test[,1]), family="multinomial",alpha=a[k,1]/p,
              intercept=FALSE, type.measure="mse")
  beta=coef(l,s=l$lambda.min) #确定的系数
  l.ytest=rowSums(predict(l,s=l$lambda.min,newx=test[,2:18],type="response")*c(0,1,2,3,4))
  merror[k,1]=mean((l.ytest-test[,1])^2) 
  r3[k]=(length(l.ytest)-length(which(l.ytest!=test[,1])))/length(l.ytest)
}

mean(r3) #平均分类误差

al=a[which.min(a[,2]),1]
lf=cv.glmnet(x=data[,2:18],y=as.factor(data[,1]), family="multinomial",alpha=al/p,
            intercept=FALSE, type.measure="mse")
beta=coef(l,s=lf$lambda.min)#最终系数

library("kernlab")
#svm,kernel=RBF
s=ksvm(train[,2:18],as.factor(train[,1]),kernel = "rbfdot")
s.ytest=predict(s,test[,2:18],type = "decision")
s.mse=mean((s.ytest-test[,1])^2)
print(s.mse)
k =function(x, y) {
  (sum(test[,2:18]*test[,1]) + 1) * exp(0.01 * sum((test[,2:18]-test[,1])^2))
  }
class(k) ="kernel"
data("promotergene")
gene <- ksvm(test[,2:18],as.factor(test[,1]), kernel = k, C = 1, cross = 5)
gene
  
library(GPfit)
library(lhs)
  g=GP_fit(train[,2:18], train[,1])
  gpre=predict.GP(g,test[,1])
  g.ytest = gpre$Y_hat;
  g.mse = gpre$MSE;
  g.completedata =gpre$complete_data;


  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园悬赏任务平台对字典管理、论坛管理、任务资讯任务资讯公告管理、接取用户管理、任务管理、任务咨询管理、任务收藏管理、任务评价管理、任务订单管理、发布用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园悬赏任务平台程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园悬赏任务平台的开发让用户查看任务信息变得容易,让管理员高效管理任务信息。 校园悬赏任务平台具有管理员角色,用户角色,这几个操作权限。 校园悬赏任务平台针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理任务信息,管理任务资讯公告信息等内容。 校园悬赏任务平台针对用户设置的功能有:查看并修改个人信息,查看任务信息,查看任务资讯公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看任务,删除任务操作,新增任务操作,修改任务操作。任务资讯公告信息管理页面提供的功能操作有:新增任务资讯公告,修改任务资讯公告,删除任务资讯公告操作。任务资讯公告类型管理页面显示所有任务资讯公告类型,在此页面既可以让管理员添加新的任务资讯公告信息类型,也能对已有的任务资讯公告类型信息执行编辑更新,失效的任务资讯公告类型信息也能让管理员快速删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值