#'@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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.