Methods added to the main driver

This commit is contained in:
Dongryeol Lee
2008-02-19 19:42:11 +00:00
parent 3abe70ef77
commit a7b3597053
3 changed files with 29 additions and 9 deletions
@@ -925,15 +925,24 @@ class DenseLpr {
void ComputeConfidenceBands_(const Matrix &queries,
Vector *query_regression_estimates,
ArrayList<DRange> *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:
@@ -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<EpanKernel, QuickPruneLpr> fast_lpr;
fast_lpr.Init(references, reference_targets, lpr_module);
@@ -222,15 +222,24 @@ class NaiveLpr {
void ComputeConfidenceBands_(const Matrix &queries,
Vector *query_regression_estimates,
ArrayList<DRange> *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