R/RFR_red_MSE.R

Defines functions RFR_red_MSE

Documented in RFR_red_MSE

#'@title A function that run random forest regression over the model matrix
#'@description A function that calculate the reduction of relative mean squared error when adding the additional features using RFR.
#'10 folds cross validation is applied.
#'This is the feature importance in a non-linear regression prediction.
#'
#'@param MM a matrix of the model matrix.
#'@param p Number of parallels used.
#'@param k Number of folds of cross validation used.
#'
#'@return a vector for the reduction in MSE.
#'
#'@import perflite
#'
#'@export
RFR_red_MSE <- function(MM,p = 10,k = 30){
  return_vec = c()
  y_lst = list()
  X_lst = list()
  MM = na.omit(MM[,colnames(MM) != "X"])
  indx_basic = grepl("RV_.*|Monday|Y",colnames(MM))

  X_lst[["Ground"]] = MM[,indx_basic]
  X_lst[["add_V"]] = MM[,indx_basic|colnames(MM) == "V_raw"]
  X_lst[["add_TN"]] = MM[,indx_basic|colnames(MM) == "TN_raw"]
  X_lst[["add_V,TN"]] = MM[,indx_basic|colnames(MM) %in% c("V_raw","TN_raw")]

  X_lst[["add_Vfd"]] = MM[,indx_basic|colnames(MM) == "V_daily_stl"]
  X_lst[["add_TNfd"]] = MM[,indx_basic|colnames(MM) == "TN_daily_stl"]
  X_lst[["add_Vfd,TNfd"]] = MM[,indx_basic|colnames(MM) %in% c("V_daily_stl","TN_daily_stl")]

  X_lst[["add_Vfw"]] = MM[,indx_basic|colnames(MM) == "V_weekly_stl"]
  X_lst[["add_TNfw"]] = MM[,indx_basic|colnames(MM) == "TN_weekly_stl"]
  X_lst[["add_Vfw,TNfw"]] = MM[,indx_basic|colnames(MM) %in% c("V_weekly_stl","TN_weekly_stl")]

  for(i in names(X_lst)){
  y_lst[[i]] = MM[,"Y"]
  }

  return_vec <- performance_regression( y = y_lst,
                                        X = X_lst,
                                        pred_f = list(RFR=randomForest_regression),
                                        performance_metrices = "RRSE",
                                        k = k,
                                        p = p )$RFR
  Ground_tmp = return_vec[1]^2
  return_vec = -1*(return_vec^2 - Ground_tmp)
  return_vec[1] = Ground_tmp
  return(return_vec)
}
ZhenWei10/Sherry-Chapter1 documentation built on Oct. 31, 2019, 1:48 a.m.