diff --git a/fastlib2/contrib/dongryel/regression/dense_lpr.h b/fastlib2/contrib/dongryel/regression/dense_lpr.h index fb843d0da6..c82d305b75 100644 --- a/fastlib2/contrib/dongryel/regression/dense_lpr.h +++ b/fastlib2/contrib/dongryel/regression/dense_lpr.h @@ -925,15 +925,24 @@ class DenseLpr { void ComputeConfidenceBands_(const Matrix &queries, Vector *query_regression_estimates, ArrayList *query_confidence_bands, - Vector *query_magnitude_weight_diagrams) { + Vector *query_magnitude_weight_diagrams, + bool queries_equal_references) { // Initialize the storage for the confidene bands. query_confidence_bands->Init(queries.n_cols()); for(index_t q = 0; q < queries.n_cols(); q++) { DRange &q_confidence_band = (*query_confidence_bands)[q]; - double spread = z_score_ * (*query_magnitude_weight_diagrams)[q] * - sqrt(rset_variance_); + double spread; + + if(queries_equal_references) { + spread = z_score_ * (*query_magnitude_weight_diagrams)[q] * + sqrt(rset_variance_); + } + else { + spread = z_score_ * (1 + (*query_magnitude_weight_diagrams)[q]) * + sqrt(rset_variance_); + } q_confidence_band.lo = (*query_regression_estimates)[q] - spread; q_confidence_band.hi = (*query_regression_estimates)[q] + spread; @@ -1062,7 +1071,8 @@ class DenseLpr { // Compute the confidence band around each query point. ComputeConfidenceBands_(queries, query_regression_estimates, query_confidence_bands, - query_magnitude_weight_diagrams); + query_magnitude_weight_diagrams, + (query_influence_values != NULL)); } public: diff --git a/fastlib2/contrib/dongryel/regression/dense_lpr_main.cc b/fastlib2/contrib/dongryel/regression/dense_lpr_main.cc index b0b863dd50..3dcde0e7a8 100644 --- a/fastlib2/contrib/dongryel/regression/dense_lpr_main.cc +++ b/fastlib2/contrib/dongryel/regression/dense_lpr_main.cc @@ -56,7 +56,7 @@ int main(int argc, char *argv[]) { // Store the results computed by the tree-based results. Vector fast_lpr_results; - if(!strcmp(fx_param_str_req(lpr_module, "mode"), "dt-dense-quick")) { + if(!strcmp(fx_param_str_req(lpr_module, "method"), "dt-dense-quick")) { printf("Running the DT-DENSE-LPR with Deng and Moore's prune rule.\n"); DenseLpr fast_lpr; fast_lpr.Init(references, reference_targets, lpr_module); diff --git a/fastlib2/contrib/dongryel/regression/naive_lpr.h b/fastlib2/contrib/dongryel/regression/naive_lpr.h index 6150a147ff..ec71b716c4 100644 --- a/fastlib2/contrib/dongryel/regression/naive_lpr.h +++ b/fastlib2/contrib/dongryel/regression/naive_lpr.h @@ -222,15 +222,24 @@ class NaiveLpr { void ComputeConfidenceBands_(const Matrix &queries, Vector *query_regression_estimates, ArrayList *query_confidence_bands, - Vector *query_magnitude_weight_diagrams) { + Vector *query_magnitude_weight_diagrams, + bool queries_equal_references) { // Initialize the storage for the confidene bands. query_confidence_bands->Init(queries.n_cols()); for(index_t q = 0; q < queries.n_cols(); q++) { DRange &q_confidence_band = (*query_confidence_bands)[q]; - double spread = z_score_ * (*query_magnitude_weight_diagrams)[q] * - sqrt(rset_variance_); + double spread; + + if(queries_equal_references) { + spread = z_score_ * (*query_magnitude_weight_diagrams)[q] * + sqrt(rset_variance_); + } + else { + spread = z_score_ * (1 + (*query_magnitude_weight_diagrams)[q]) * + sqrt(rset_variance_); + } q_confidence_band.lo = (*query_regression_estimates)[q] - spread; q_confidence_band.hi = (*query_regression_estimates)[q] + spread; @@ -293,7 +302,8 @@ class NaiveLpr { ComputeConfidenceBands_(queries, query_regression_estimates, query_confidence_bands, - query_magnitude_weight_diagrams); + query_magnitude_weight_diagrams, + (query_influence_values != NULL)); } /** @brief Initialize the bandwidth by either fixed bandwidth