12 #ifndef MLPACK_CORE_CV_METRICS_R2SCORE_IMPL_HPP 13 #define MLPACK_CORE_CV_METRICS_R2SCORE_IMPL_HPP 18 template<
bool AdjustedR2>
19 template<
typename MLAlgorithm,
typename DataType,
typename ResponsesType>
22 const ResponsesType& responses)
24 util::CheckSameSizes(data, (
size_t) responses.n_cols,
"R2Score::Evaluate()",
27 ResponsesType predictedResponses;
29 model.Predict(data, predictedResponses);
31 double meanResponses = arma::mean(responses);
34 double residualSumSquared = arma::accu(arma::square(responses -
38 double totalSumSquared = arma::accu(arma::square(responses - meanResponses));
41 if (residualSumSquared == 0.0)
42 return totalSumSquared ? 1.0 : DBL_MIN;
47 double rsq = 1 - (residualSumSquared / totalSumSquared);
48 return (1 - ((1 - rsq) * ((data.n_cols - 1) /
49 (data.n_cols - data.n_rows - 1))));
54 return 1 - residualSumSquared / totalSumSquared;
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
static double Evaluate(MLAlgorithm &model, const DataType &data, const ResponsesType &responses)
Run prediction and calculate the R squared or Adjusted R squared error.
Definition: r2_score_impl.hpp:20