r语言对模型输出预测值与实际值计算R2,MS残,RMSE和NRMSD,实现模型评估

#此函数可由模型输出的预测值和实际值计算r2或均方根误差RMSE或归一化后的均方根偏差NRMSD
#公式参考吴今朝译《R语言机器学习》323-324页
r2.test<-function(y_actual,y_predicted){
  avr_y_actual <- mean(y_actual)
  ss_total <- sum((y_actual - avr_y_actual)^2)
  ss_regression <- sum((y_predicted - avr_y_actual)^2)
  ss_residuals <- sum((y_actual - y_predicted)^2)
  rsquare <- 1 - ss_residuals / ss_total
  #return(rsquare)#当模型偏差过大,rsquare很小时,不采用rsquare统计
  n1<-length(y_actual)
  n2<-length(y_predicted)#要求n1==n2
  meansquare<-ss_residuals/(n1-2)
  #参考王辰勇译《线性回归分析导论》12页
  #return(meansquare)#MS残
  RMSE<-(ss_residuals/n1)^0.5
  NRMSD<-RMSE/avr_y_actual
  return(NRMSD)
  }

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值