openModeller
Version 1.4.0
|
#include <environmental_distance.hh>
Public Member Functions | |
EnvironmentalDistance () | |
~EnvironmentalDistance () | |
int | initialize () |
int | done () const |
Scalar | getValue (const Sample &x) const |
Protected Member Functions | |
virtual void | _getConfiguration (ConfigurationPtr &) const |
virtual void | _setConfiguration (const ConstConfigurationPtr &) |
Private Types | |
enum | DistanceType { EuclideanDistance = FIRST_DISTANCE_TYPE, MahalanobisDistance, ManhattanDistance, ChebyshevDistance } |
Private Member Functions | |
void | _calc_covariance_matrix () |
Scalar | _distance (const Sample &x, const Sample &y) const |
bool | _init_distance_type () |
Scalar | _poz (Scalar z) const |
Scalar | _pochisq (Scalar x, int df) const |
Private Attributes | |
bool | _done |
int | _layer_count |
int | _presence_count |
std::vector< Sample > | _presence_points |
Scalar | _par_dist |
int | _par_dist_type |
int | _par_point_qnt |
bool | _use_chisq |
Matrix * | _cov_matrix |
Matrix * | _cov_matrix_inv |
Sample | _average_point |
Definition at line 38 of file environmental_distance.hh.
enum EnvironmentalDistance::DistanceType [private] |
Definition at line 71 of file environmental_distance.hh.
Definition at line 118 of file environmental_distance.cpp.
References _cov_matrix, _cov_matrix_inv, AlgorithmImpl::_normalizerPtr, DATA_MAX, and DATA_MIN.
Definition at line 124 of file environmental_distance.cpp.
References _cov_matrix, _cov_matrix_inv, _par_dist_type, and MahalanobisDistance.
void EnvironmentalDistance::_calc_covariance_matrix | ( | ) | [private] |
Definition at line 308 of file environmental_distance.cpp.
References _average_point, _cov_matrix, _cov_matrix_inv, _layer_count, _presence_count, _presence_points, Log::error(), and Log::instance().
Referenced by _init_distance_type(), and _setConfiguration().
Scalar EnvironmentalDistance::_distance | ( | const Sample & | x, |
const Sample & | y | ||
) | const [inline, private] |
Definition at line 352 of file environmental_distance.cpp.
References _layer_count, _par_dist_type, _use_chisq, ChebyshevDistance, EuclideanDistance, MahalanobisDistance, ManhattanDistance, and Sample::norm().
Referenced by _init_distance_type(), and getValue().
void EnvironmentalDistance::_getConfiguration | ( | ConfigurationPtr & | config | ) | const [protected, virtual] |
Reimplemented from AlgorithmImpl.
Definition at line 559 of file environmental_distance.cpp.
References _average_point, _done, _par_dist, and _presence_points.
bool EnvironmentalDistance::_init_distance_type | ( | ) | [private] |
Definition at line 418 of file environmental_distance.cpp.
References _calc_covariance_matrix(), _distance(), _layer_count, _par_dist, _par_dist_type, _use_chisq, ChebyshevDistance, DATA_MAX, DATA_MIN, EuclideanDistance, Log::info(), Log::instance(), MahalanobisDistance, ManhattanDistance, PARDISTMAX, PARDISTMIN, and Sample::resize().
Referenced by initialize().
Scalar EnvironmentalDistance::_pochisq | ( | Scalar | x, |
int | df | ||
) | const [private] |
Compute probability of chi square value for the result not being due to chance. Code based on a C implementation in the public domain written by Gary Perlman from the Wang Institute, Tyngsboro, MA: http://www.stat.uchicago.edu/~mcpeek/software/CCQLSpackage1.3/chisq.c Original notes: Adapted from: Hill, I. D. and Pike, M. C. Algorithm 299 Collected Algorithms for the CACM 1967 p. 243 Updated for rounding errors based on remark in ACM TOMS June 1985, page 185
x | obtained chi-square value |
df | degrees of freedom (number of environmental variables - 1) |
Definition at line 519 of file environmental_distance.cpp.
References _poz(), BIGX, ex, I_SQRT_PI, and LOG_SQRT_PI.
Referenced by getValue().
Scalar EnvironmentalDistance::_poz | ( | Scalar | z | ) | const [private] |
Compute probability of probability of normal z value. Code based on a C implementation in the public domain written by Gary Perlman from the Wang Institute, Tyngsboro, MA: http://www.stat.uchicago.edu/~mcpeek/software/CCQLSpackage1.3/z.c Original notes: Adapted from a polynomial approximation in: Ibbetson D, Algorithm 209 Collected Algorithms of the CACM 1963 p. 616 This routine has six digit accuracy, so it is only useful for absolute z values < 6. For z values >= to 6.0, poz() returns 0.0
z | normal z value |
Definition at line 488 of file environmental_distance.cpp.
References Z_MAX.
Referenced by _pochisq().
void EnvironmentalDistance::_setConfiguration | ( | const ConstConfigurationPtr & | config | ) | [protected, virtual] |
Reimplemented from AlgorithmImpl.
Definition at line 576 of file environmental_distance.cpp.
References _average_point, _calc_covariance_matrix(), _done, _layer_count, _par_dist, _par_dist_type, _par_point_qnt, _presence_count, _presence_points, _use_chisq, Log::error(), AlgorithmImpl::getParameter(), Log::instance(), MahalanobisDistance, PARDIST, PARDISTTYPE, PARPOINTQNT, and Sample::size().
int EnvironmentalDistance::done | ( | ) | const [inline, virtual] |
Return != 0 if algorithm finished.
Reimplemented from AlgorithmImpl.
Definition at line 45 of file environmental_distance.hh.
Scalar EnvironmentalDistance::getValue | ( | const Sample & | x | ) | const [virtual] |
The algorithm must return the occurrence probability at the given environment conditions.
x | Environmental conditions. |
Implements AlgorithmImpl.
Definition at line 224 of file environmental_distance.cpp.
References _average_point, _distance(), _layer_count, _par_dist, _par_point_qnt, _pochisq(), _presence_count, _presence_points, and _use_chisq.
int EnvironmentalDistance::initialize | ( | ) | [virtual] |
Initiate a new training.
Implements AlgorithmImpl.
Definition at line 146 of file environmental_distance.cpp.
References _average_point, _done, _init_distance_type(), _layer_count, _par_dist, _par_dist_type, _par_point_qnt, _presence_count, _presence_points, AlgorithmImpl::_samp, _use_chisq, ChebyshevDistance, Log::debug(), Log::error(), EuclideanDistance, AlgorithmImpl::getParameter(), Log::instance(), MahalanobisDistance, ManhattanDistance, PARDIST, PARDISTMAX, PARDISTMIN, PARDISTTYPE, PARPOINTQNT, and Log::warn().
Sample EnvironmentalDistance::_average_point [private] |
Definition at line 68 of file environmental_distance.hh.
Referenced by _calc_covariance_matrix(), _getConfiguration(), _setConfiguration(), getValue(), and initialize().
Matrix* EnvironmentalDistance::_cov_matrix [private] |
Definition at line 66 of file environmental_distance.hh.
Referenced by _calc_covariance_matrix(), EnvironmentalDistance(), and ~EnvironmentalDistance().
Matrix* EnvironmentalDistance::_cov_matrix_inv [private] |
Definition at line 67 of file environmental_distance.hh.
Referenced by _calc_covariance_matrix(), EnvironmentalDistance(), and ~EnvironmentalDistance().
bool EnvironmentalDistance::_done [private] |
Definition at line 50 of file environmental_distance.hh.
Referenced by _getConfiguration(), _setConfiguration(), and initialize().
int EnvironmentalDistance::_layer_count [private] |
Definition at line 51 of file environmental_distance.hh.
Referenced by _calc_covariance_matrix(), _distance(), _init_distance_type(), _setConfiguration(), getValue(), and initialize().
Scalar EnvironmentalDistance::_par_dist [private] |
Definition at line 56 of file environmental_distance.hh.
Referenced by _getConfiguration(), _init_distance_type(), _setConfiguration(), getValue(), and initialize().
int EnvironmentalDistance::_par_dist_type [private] |
Definition at line 57 of file environmental_distance.hh.
Referenced by _distance(), _init_distance_type(), _setConfiguration(), initialize(), and ~EnvironmentalDistance().
int EnvironmentalDistance::_par_point_qnt [private] |
Definition at line 58 of file environmental_distance.hh.
Referenced by _setConfiguration(), getValue(), and initialize().
int EnvironmentalDistance::_presence_count [private] |
Definition at line 52 of file environmental_distance.hh.
Referenced by _calc_covariance_matrix(), _setConfiguration(), getValue(), and initialize().
std::vector<Sample> EnvironmentalDistance::_presence_points [private] |
Definition at line 53 of file environmental_distance.hh.
Referenced by _calc_covariance_matrix(), _getConfiguration(), _setConfiguration(), getValue(), and initialize().
bool EnvironmentalDistance::_use_chisq [private] |
Definition at line 60 of file environmental_distance.hh.
Referenced by _distance(), _init_distance_type(), _setConfiguration(), getValue(), and initialize().