[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