[mlpack-svn] r11615 - mlpack/trunk/src/mlpack/methods/pca
fastlab-svn at coffeetalk-1.cc.gatech.edu
fastlab-svn at coffeetalk-1.cc.gatech.edu
Mon Feb 27 21:27:52 EST 2012
Author: rcurtin
Date: 2012-02-27 21:27:52 -0500 (Mon, 27 Feb 2012)
New Revision: 11615
Modified:
mlpack/trunk/src/mlpack/methods/pca/pca_main.cpp
Log:
Clean up some comments and the sanity check on the dimensionality should be the
upper limit, not the lower limit -- dimension < 0 is not possible with size_t.
Modified: mlpack/trunk/src/mlpack/methods/pca/pca_main.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/pca/pca_main.cpp 2012-02-28 01:38:05 UTC (rev 11614)
+++ mlpack/trunk/src/mlpack/methods/pca/pca_main.cpp 2012-02-28 02:27:52 UTC (rev 11615)
@@ -20,10 +20,10 @@
"eigenvalues.");
// Parameters for program.
-PARAM_STRING_REQ("input_file", "Input dataset to perform PCA on.", "");
-PARAM_STRING_REQ("output_file", "Output dataset to perform PCA on.", "");
-PARAM_INT("new_dimensionality", "Desired dimensionality of output dataset.",
- "", 0);
+PARAM_STRING_REQ("input_file", "Input dataset to perform PCA on.", "i");
+PARAM_STRING_REQ("output_file", "File to save modified dataset to.", "o");
+PARAM("new_dimensionality", "Desired dimensionality of output dataset. If 0, "
+ "no dimensionality reduction is performed.", "d", 0);
int main(int argc, char** argv)
{
@@ -41,19 +41,20 @@
{
// Validate the parameter.
newDimension = (size_t) CLI::GetParam<int>("new_dimensionality");
- if (newDimension < 1)
+ if (newDimension > dataset.n_rows)
{
- Log::Fatal << "Invalid value for new dimensionality (" << newDimension
- << ")! Must be greater than or equal to 1." << std::endl;
+ Log::Fatal << "New dimensionality (" << newDimension
+ << ") cannot be greater than existing dimensionality ("
+ << dataset.n_rows << ")!" << endl;
}
}
// Perform PCA.
PCA p;
- Log::Info << "Performing PCA on dataset..." << std::endl;
+ Log::Info << "Performing PCA on dataset..." << endl;
p.Apply(dataset, newDimension);
// Now save the results.
string outputFile = CLI::GetParam<string>("output_file");
- data::Save(outputFile.c_str(), dataset);
+ data::Save(outputFile, dataset);
}
More information about the mlpack-svn
mailing list