Changeset 740
- Timestamp:
- Jan 12, 2007, 4:17:22 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/regression_test.cc
r739 r740 187 187 *error << " testing regression::PolynomialWeighted" << std::endl; 188 188 regression::PolynomialWeighted pol_weighted(2); 189 // ok = equal(polynomial, pol_weighted, error) && ok; 189 regression::Polynomial polynomial2(2); 190 // ok = equal(polynomial2, pol_weighted, error) && ok; 190 191 191 192 ok = multidim(error) && ok; 193 194 if (!ok) 195 *error << "Test failed\n" << std::endl; 192 196 193 197 if (error!=&std::cerr) … … 392 396 } 393 397 398 w(0)=1.0; w(1)=1.0; w(2)=0.5; w(3)=0.2; w(4)=0.2; 399 mdw.fit(data,y,w); 400 double predict = mdw.predict(z); 401 double prediction_error2 = mdw.prediction_error2(z, 1.0); 402 double s2 = mdw.s2(1.0); 403 double standard_error2 = mdw.standard_error2(z); 404 405 w.scale(2); 406 mdw.fit(data,y,w); 407 if (fabs(mdw.predict(z)-predict)>10e-10){ 408 ok = false; 409 *error << "Error: predict not equal after rescaling.\n"; 410 *error << " predict = " << predict << " and after doubling weights.\n"; 411 *error << " predict = " << mdw.predict(z) << "\n"; 412 } 413 if (fabs(mdw.prediction_error2(z,2)-prediction_error2)>10e-7){ 414 ok = false; 415 *error << "Error: prediction_error2 not equal after rescaling.\n"; 416 *error << " predict_error2 = " << prediction_error2 417 << " and after doubling weights.\n"; 418 *error << " predict_error2 = " << mdw.prediction_error2(z,2) << "\n"; 419 } 420 if (fabs(mdw.s2(2)-s2)>10e-10){ 421 ok = false; 422 *error << "Error: s2 not equal after rescaling.\n"; 423 *error << " s2 = " << s2 << " and after doubling weights.\n"; 424 *error << " s2 = " << mdw.s2(2) << "\n"; 425 } 426 if (fabs(mdw.standard_error2(z)-standard_error2)>10e-7){ 427 ok = false; 428 *error << "Error: standard_error2 not equal after rescaling.\n"; 429 *error << " standard_error2 = " << standard_error2 430 << " and after doubling weights.\n"; 431 *error << " standard_error2 = " << mdw.standard_error2(z) << "\n"; 432 } 433 394 434 return ok; 395 435 } -
trunk/yat/regression/MultiDimensionalWeighted.cc
r739 r740 66 66 } 67 67 68 69 const utility::vector& MultiDimensionalWeighted::fit_parameters(void) const 70 { 71 return fit_parameters_; 72 } 73 68 74 double MultiDimensionalWeighted::predict(const utility::vector& x) const 69 75 { … … 75 81 const double w) const 76 82 { 77 return standard_error2(x) + s2_/w; 83 return standard_error2(x) + s2(w); 84 } 85 86 87 double MultiDimensionalWeighted::s2(const double w) const 88 { 89 return s2_/w; 78 90 } 79 91 -
trunk/yat/regression/MultiDimensionalWeighted.h
r739 r740 66 66 /// in @a x 67 67 /// 68 double prediction_error2(const utility::vector& x, const double w ) const;68 double prediction_error2(const utility::vector& x, const double w=1) const; 69 69 70 70 /// … … 76 76 /// @return parameters of fitted model 77 77 /// 78 utility::vector fit_parameters(void) { return fit_parameters_; } 78 const utility::vector& fit_parameters(void) const; 79 80 /// 81 /// @return variance of residuals 82 /// 83 double s2(const double w=1.0) const; 79 84 80 85 private: -
trunk/yat/regression/PolynomialWeighted.cc
r739 r740 33 33 34 34 PolynomialWeighted::PolynomialWeighted(size_t power) 35 : OneDimensionalWeighted(), mse_(0),power_(power)35 : OneDimensionalWeighted(), power_(power) 36 36 { 37 37 } … … 54 54 } 55 55 56 double PolynomialWeighted::s2(const double) const 56 57 const utility::vector& PolynomialWeighted::fit_parameters(void) const 57 58 { 58 return mse_; 59 return md_.fit_parameters(); 60 } 61 62 63 double PolynomialWeighted::s2(const double w=1.0) const 64 { 65 return md_.s2(w); 59 66 } 60 67 -
trunk/yat/regression/PolynomialWeighted.h
r739 r740 63 63 64 64 /// 65 /// @return parameters of the model 66 /// 67 /// @see MultiDimensional 68 /// 69 const utility::vector& fit_parameters(void) const; 70 71 /// 65 72 /// @return parameters for polynomial model 66 73 /// … … 90 97 private: 91 98 MultiDimensionalWeighted md_; 92 double mse_;93 99 size_t power_; 94 100
Note: See TracChangeset
for help on using the changeset viewer.