Classes | |
class | op_princomp_cov |
Functions | |
template<typename eT > | |
static void | op_princomp_cov::direct_princomp_cov (Mat< eT > &coeff_out, Col< eT > &latent_out, Col< eT > &explained_out, const Mat< eT > &in) |
principal component analysis of a covariance matrix -- 3 arguments version computation is done via singular value decomposition coeff_out -> principal component coefficients latent_out -> principal component variances explained_out -> percentage of the total variance explained by each principal component | |
template<typename eT > | |
static void | op_princomp_cov::direct_princomp_cov (Mat< eT > &coeff_out, Col< eT > &latent_out, const Mat< eT > &in) |
principal component analysis of a covariance matrix -- 2 arguments version computation is done via singular value decomposition coeff_out -> principal component coefficients latent_out -> principal component variances | |
template<typename eT > | |
static void | op_princomp_cov::direct_princomp_cov (Mat< eT > &coeff_out, const Mat< eT > &in) |
principal component analysis of a covariance matrix -- 1 argument version computation is done via singular value decomposition coeff_out -> principal component coefficients | |
template<typename T > | |
static void | op_princomp_cov::direct_princomp_cov (Mat< std::complex< T > > &coeff_out, Col< T > &latent_out, Col< T > &explained_out, const Mat< std::complex< T > > &in) |
principal component analysis of a covariance matrix -- 3 arguments complex version computation is done via singular value decomposition coeff_out -> principal component coefficients latent_out -> principal component variances explained_out -> percentage of the total variance explained by each principal component | |
template<typename T > | |
static void | op_princomp_cov::direct_princomp_cov (Mat< std::complex< T > > &coeff_out, Col< T > &latent_out, const Mat< std::complex< T > > &in) |
principal component analysis of a covariance matrix -- 2 arguments complex version computation is done via singular value decomposition coeff_out -> principal component coefficients latent_out -> principal component variances | |
template<typename T > | |
static void | op_princomp_cov::direct_princomp_cov (Mat< std::complex< T > > &coeff_out, const Mat< std::complex< T > > &in) |
principal component analysis of a covariance matrix -- 1 argument complex version computation is done via singular value decomposition coeff_out -> principal component coefficients | |
template<typename T1 > | |
static void | op_princomp_cov::apply (Mat< typename T1::elem_type > &out, const Op< T1, op_princomp_cov > &in) |
void op_princomp_cov::direct_princomp_cov | ( | Mat< eT > & | coeff_out, | |
Col< eT > & | latent_out, | |||
Col< eT > & | explained_out, | |||
const Mat< eT > & | in | |||
) | [inline, static, inherited] |
principal component analysis of a covariance matrix -- 3 arguments version computation is done via singular value decomposition coeff_out -> principal component coefficients latent_out -> principal component variances explained_out -> percentage of the total variance explained by each principal component
Definition at line 33 of file op_princomp_cov_meat.hpp.
References arma_print(), cov(), Mat< eT >::reset(), sum(), and svd().
00039 { 00040 arma_extra_debug_sigprint(); 00041 00042 // computation of the covariance matrix 00043 const Mat<eT> in_cov = cov(in); 00044 00045 // singular value decomposition 00046 Mat<eT> U; 00047 00048 const bool svd_ok = svd(U, latent_out, coeff_out, in_cov); 00049 00050 if(svd_ok == false) 00051 { 00052 arma_print("princomp_cov(): singular value decomposition failed"); 00053 00054 coeff_out.reset(); 00055 latent_out.reset(); 00056 explained_out.reset(); 00057 00058 return; 00059 } 00060 00061 explained_out = (eT(100) * latent_out) / sum(latent_out); 00062 }
void op_princomp_cov::direct_princomp_cov | ( | Mat< eT > & | coeff_out, | |
Col< eT > & | latent_out, | |||
const Mat< eT > & | in | |||
) | [inline, static, inherited] |
principal component analysis of a covariance matrix -- 2 arguments version computation is done via singular value decomposition coeff_out -> principal component coefficients latent_out -> principal component variances
Definition at line 75 of file op_princomp_cov_meat.hpp.
References arma_print(), cov(), Mat< eT >::reset(), and svd().
00080 { 00081 arma_extra_debug_sigprint(); 00082 00083 // computation of the covariance matrix 00084 const Mat<eT> in_cov = cov(in); 00085 00086 // singular value decomposition 00087 Mat<eT> U; 00088 00089 const bool svd_ok = svd(U, latent_out, coeff_out, in_cov); 00090 00091 if(svd_ok == false) 00092 { 00093 arma_print("princomp_cov(): singular value decomposition failed"); 00094 00095 coeff_out.reset(); 00096 latent_out.reset(); 00097 00098 return; 00099 } 00100 00101 }
void op_princomp_cov::direct_princomp_cov | ( | Mat< eT > & | coeff_out, | |
const Mat< eT > & | in | |||
) | [inline, static, inherited] |
principal component analysis of a covariance matrix -- 1 argument version computation is done via singular value decomposition coeff_out -> principal component coefficients
Definition at line 113 of file op_princomp_cov_meat.hpp.
References arma_print(), cov(), Mat< eT >::reset(), and svd().
Referenced by apply(), and princomp_cov().
00117 { 00118 arma_extra_debug_sigprint(); 00119 00120 // computation of the covariance matrix 00121 const Mat<eT> in_cov = cov(in); 00122 00123 // singular value decomposition 00124 Mat<eT> U; 00125 Col<eT> s; 00126 00127 const bool svd_ok = svd(U, s, coeff_out, in_cov); 00128 00129 if(svd_ok == false) 00130 { 00131 arma_print("princomp_cov(): singular value decomposition failed"); 00132 00133 coeff_out.reset(); 00134 00135 return; 00136 } 00137 00138 }
void op_princomp_cov::direct_princomp_cov | ( | Mat< std::complex< T > > & | coeff_out, | |
Col< T > & | latent_out, | |||
Col< T > & | explained_out, | |||
const Mat< std::complex< T > > & | in | |||
) | [inline, static, inherited] |
principal component analysis of a covariance matrix -- 3 arguments complex version computation is done via singular value decomposition coeff_out -> principal component coefficients latent_out -> principal component variances explained_out -> percentage of the total variance explained by each principal component
Definition at line 152 of file op_princomp_cov_meat.hpp.
References arma_print(), cov(), Mat< eT >::reset(), sum(), and svd().
00158 { 00159 arma_extra_debug_sigprint(); 00160 00161 typedef std::complex<T> eT; 00162 00163 // computation of the covariance matrix 00164 const Mat<eT> in_cov = cov(in); 00165 00166 // singular value decomposition 00167 Mat<eT> U; 00168 00169 const bool svd_ok = svd(U, latent_out, coeff_out, in_cov); 00170 00171 if(svd_ok == false) 00172 { 00173 arma_print("princomp_cov(): singular value decomposition failed"); 00174 00175 coeff_out.reset(); 00176 latent_out.reset(); 00177 explained_out.reset(); 00178 00179 return; 00180 } 00181 00182 explained_out = (T(100) * latent_out) / sum(latent_out); 00183 }
void op_princomp_cov::direct_princomp_cov | ( | Mat< std::complex< T > > & | coeff_out, | |
Col< T > & | latent_out, | |||
const Mat< std::complex< T > > & | in | |||
) | [inline, static, inherited] |
principal component analysis of a covariance matrix -- 2 arguments complex version computation is done via singular value decomposition coeff_out -> principal component coefficients latent_out -> principal component variances
Definition at line 196 of file op_princomp_cov_meat.hpp.
References arma_print(), cov(), Mat< eT >::reset(), and svd().
00201 { 00202 arma_extra_debug_sigprint(); 00203 00204 typedef std::complex<T> eT; 00205 00206 // computation of the covariance matrix 00207 const Mat<eT> in_cov = cov(in); 00208 00209 // singular value decomposition 00210 Mat<eT> U; 00211 00212 const bool svd_ok = svd(U, latent_out, coeff_out, in_cov); 00213 00214 if(svd_ok == false) 00215 { 00216 arma_print("princomp_cov(): singular value decomposition failed"); 00217 00218 coeff_out.reset(); 00219 latent_out.reset(); 00220 00221 return; 00222 } 00223 00224 }
void op_princomp_cov::direct_princomp_cov | ( | Mat< std::complex< T > > & | coeff_out, | |
const Mat< std::complex< T > > & | in | |||
) | [inline, static, inherited] |
principal component analysis of a covariance matrix -- 1 argument complex version computation is done via singular value decomposition coeff_out -> principal component coefficients
Definition at line 236 of file op_princomp_cov_meat.hpp.
References arma_print(), cov(), Mat< eT >::reset(), and svd().
00240 { 00241 arma_extra_debug_sigprint(); 00242 00243 typedef std::complex<T> eT; 00244 00245 // computation of the covariance matrix 00246 const Mat<eT> in_cov = cov(in); 00247 00248 // singular value decomposition 00249 Mat<eT> U; 00250 Col<T> s; 00251 00252 const bool svd_ok = svd(U, s, coeff_out, in_cov); 00253 00254 if(svd_ok == false) 00255 { 00256 arma_print("princomp_cov(): singular value decomposition failed"); 00257 00258 coeff_out.reset(); 00259 00260 return; 00261 } 00262 00263 }
void op_princomp_cov::apply | ( | Mat< typename T1::elem_type > & | out, | |
const Op< T1, op_princomp_cov > & | in | |||
) | [inline, static, inherited] |
Definition at line 271 of file op_princomp_cov_meat.hpp.
References direct_princomp_cov(), unwrap_check< T1 >::M, and Op< T1, op_type >::m.
00275 { 00276 arma_extra_debug_sigprint(); 00277 00278 typedef typename T1::elem_type eT; 00279 00280 const unwrap_check<T1> tmp(in.m, out); 00281 const Mat<eT>& A = tmp.M; 00282 00283 op_princomp_cov::direct_princomp_cov(out, A); 00284 }