|
PLearn 0.1
|
#include <plearn/vmat/VMat.h>#include <plearn/vmat/AutoVMatrix.h>#include <plearn_learners/unsupervised/PCA.h>
Go to the source code of this file.
Functions | |
| bool | compare (PCA &classical, PCA &incremental, VMat data, int start, int end) |
| int | main (int argc, char **argv) |
Definition at line 8 of file incremental_pca.cc.
References PLearn::PCA::eigenvals, PLearn::endl(), i, PLearn::is_equal(), PLearn::TVec< T >::length(), PLearn::PCA::setTrainingSet(), PLearn::VMat::subMatRows(), and PLearn::PCA::train().
Referenced by findRelevantWeights(), main(), and sortedIndexList().
{
classical.setTrainingSet ( data.subMatRows(start, end-start), false );
incremental.setTrainingSet( data.subMatRows(0, end) , false );
cout << "From " << start << " to " << end << endl;
classical.train();
incremental.train();
bool equal = true;
for ( int i=0; i < classical.eigenvals.length(); i++ )
if ( not is_equal( classical.eigenvals[i],
incremental.eigenvals[i] ) )
{
cerr << "classical.eigenvals[" << i << "] = "
<< classical.eigenvals[i] << endl
<< "incremental.eigenvals[" << i << "] = "
<< incremental.eigenvals[i] << endl
<< endl;
equal = false;
}
if ( equal )
cout << "OK.\n===\n" << endl;
else
cout << "FAILED!!!" << endl;
return equal;
}


Definition at line 40 of file incremental_pca.cc.
References PLearn::PCA::_horizon, PLearn::PCA::algo, PLearn::PCA::build(), compare(), PLearn::endl(), i, PLearn::PLearnError::message(), PLearn::PCA::ncomponents, PLearn::PCA::normalize_warning, and PLearn::PLearner::report_progress.
{
try{
PCA classical;
classical.ncomponents = 3;
classical.report_progress = 0;
classical.normalize_warning = 0;
classical.build();
PCA incremental;
incremental.algo = "incremental";
incremental._horizon = 10;
incremental.ncomponents = 3;
incremental.report_progress = 0;
incremental.normalize_warning = 0;
incremental.build();
VMat data = new AutoVMatrix( "PLEARNDIR:examples/data/test_suite/multi_gaussian_data.amat" );
compare( classical, incremental, data, 0, 10 );
compare( classical, incremental, data, 10, 20 );
for ( int i=11; i <= 20; i++ )
compare( classical, incremental, data, i, i+10 );
}
catch(const PLearnError& e)
{
cerr << "FATAL ERROR: " << e.message() << endl;
}
catch (...)
{
cerr << "FATAL ERROR: uncaught unknown exception" << endl;
}
return 0;
}

1.7.4