MTK++ Latest version: 0.2.0

BaseStats_boost.h
Go to the documentation of this file.
00001 
00033 #ifndef BASESTATS_h
00034 #define BASESTATS_h
00035 
00036 #include <iostream>
00037 #include <string>
00038 #include <vector>
00039 #include <fstream>
00040 #include <iomanip>
00041 #include <stdlib.h>
00042 #include <sstream>
00043 #include <math.h>
00044 
00045 #include "Utils/constants.h"
00046 #include "Utils/object.h"
00047 
00048 // - BOOST - //
00049 #include <boost/numeric/ublas/symmetric.hpp>
00050 #include <boost/numeric/ublas/matrix.hpp>
00051 #include <boost/numeric/ublas/io.hpp>
00052 #include <boost/numeric/ublas/banded.hpp> // for diagonal matrix
00053 #include <boost/numeric/bindings/blas/blas3.hpp>
00054 #include "boost/numeric/bindings/traits/ublas_matrix.hpp"
00055 #include "boost/numeric/bindings/traits/ublas_vector.hpp"
00056 
00057 namespace ublas  = boost::numeric::ublas;
00058 namespace blas   = boost::numeric::bindings::blas;
00059 
00060 class object;
00061 
00062 namespace MTKpp
00063 {
00064 // ============================================================
00065 // Class : BaseStats()
00066 // ------------------------------------------------------------
00073 // ============================================================
00074 class BaseStats : public object
00075 {
00076 public:
00080     BaseStats();
00081 
00083     //virtual ~BaseStats();
00084 
00091     double         meanColumn(ublas::matrix<double>& m, const int& i);
00092 
00099     double         meanRow(ublas::matrix<double>& m, const int& i);
00100 
00107     double         sumColumn(ublas::matrix<double>& m, const int& i);
00108 
00115     double         sumRow(ublas::matrix<double>& m, const int& i);
00116 
00123     double         maxColumn(ublas::matrix<double>& m, const int& i);
00124 
00132     double         maxColumn(ublas::matrix<double>& m, const int& i, int& r);
00133 
00140     double         maxRow(ublas::matrix<double>& m, const int& i);
00141 
00148     double         minColumn(ublas::matrix<double>& m, const int& i);
00149 
00157     double         minColumn(ublas::matrix<double>& m, const int& i, int& r);
00158 
00165     double         minRow(ublas::matrix<double>& m, const int& i);
00166 
00173     int getColumnCenters(ublas::matrix<double>& mat, ublas::matrix<double>& mat_centers);
00174 
00180     void           centerColumns(ublas::matrix<double>& m1, ublas::matrix<double>& m2);
00181 
00187     void           centerRows(ublas::matrix<double>& m1, ublas::matrix<double>& m2);
00188 
00194     void           zScoreColumns(ublas::matrix<double>& m1, ublas::matrix<double>& m2);
00195 
00201     void           zScoreRows(ublas::matrix<double>& m1, ublas::matrix<double>& m2);
00202 
00211     int            autoScale(ublas::matrix<double>& old_mat,
00212                              ublas::matrix<double>& new_mat,
00213                              ublas::matrix<double>& centers,
00214                              ublas::matrix<double>& stdDevs);
00215 
00222     double         varianceColumn(ublas::matrix<double>& m, const int& i);
00223 
00230     double         varianceRow(ublas::matrix<double>& m, const int& i);
00231 
00238     int getStdDevColumns(ublas::matrix<double>& mat, ublas::matrix<double>& stdDev_mat);
00239 
00246     double         standardDeviationColumn(ublas::matrix<double>& m, const int& i);
00247 
00254     double         standardDeviationRow(ublas::matrix<double>& m, const int& i);
00255 
00256     // - Covariances - //
00265     double         covarianceColumn(ublas::matrix<double>& m1, const int& i1,
00266                                       ublas::matrix<double>& m2, const int& i2);
00267 
00275     double         covarianceColumn(ublas::matrix<double>& m, const int& i, const int& j);
00276 
00286     void           covarianceMatrix(ublas::matrix<double>& A, ublas::matrix<double>& CovMat);
00287     void           covarianceMatrix(ublas::matrix<double>& A, ublas::matrix<double, ublas::column_major>& CovMat);
00288 
00297     double         correlationCoefficientColumn(ublas::matrix<double>& m1, const int& i1,
00298                                                 ublas::matrix<double>& m2, const int& i2);
00299 
00308     double         rSquaredColumn(ublas::matrix<double>& m1, const int& i1,
00309                                   ublas::matrix<double>& m2, const int& i2);
00310 
00320     double         AdjustedRSquaredColumn(ublas::matrix<double>& Ys, const int& i1,
00321                        ublas::matrix<double>& Y_Pred, const int& i2, const int& i3);
00322 
00331     double         RMSE(ublas::matrix<double>& Ys, const int& i,
00332                         ublas::matrix<double>& Y_Pred, const int& j);
00333 
00342     double         MSE(ublas::matrix<double>& Ys, const int& i,
00343                        ublas::matrix<double>& Y_Pred, const int& j);
00344 
00353     double         UnsignedError(ublas::matrix<double>& Ys, const int& i,
00354                                  ublas::matrix<double>& Y_Pred, const int& j);
00355 
00364     double         SignedError(ublas::matrix<double>& Ys, const int& i,
00365                                ublas::matrix<double>& Y_Pred, const int& j);
00366 
00380     double         SumSquaredDeviationsColumn(ublas::matrix<double>& Ys, const int& i);
00381 
00395     double         SumSquaredRegressionColumn(ublas::matrix<double>& Ys,
00396                                               ublas::matrix<double>& Y_Pred);
00397 
00411     double         SumSquaredResidualErrorsColumn(ublas::matrix<double> &Ys,
00412                      ublas::matrix<double> &Y_Pred,
00413                      ublas::matrix<double>& Residuals);
00414 
00429     double         SumSquaredResidualErrorsColumn(ublas::matrix<double> &Ys,
00430                      const int& c, ublas::matrix<double> &Y_Pred, const int& d);
00431 };
00432 
00433 } // MTKpp namespace
00434 
00435 #endif // BASESTATS_H
00436 

Generated on Fri Dec 23 2011 09:28:49 for MTK++ by Doxygen 1.7.5.1