#此函数可由模型输出的预测值和实际值计算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)
}