[mlpack-git] master: debug median imputation and listwise deletion (a340f69)

gitdub at mlpack.org gitdub at mlpack.org
Mon Jul 25 12:18:57 EDT 2016


Repository : https://github.com/mlpack/mlpack
On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/ecbfd24defe31d9f39708c0b4c6ad352cd46ed5c...7eec0609aa21cb12aeed3cbcaa1e411dad0359f2

>---------------------------------------------------------------

commit a340f69411b6a6d16106023e4bbcceb9d4688322
Author: Keon Kim <kwk236 at gmail.com>
Date:   Sat Jul 2 09:00:40 2016 +0900

    debug median imputation and listwise deletion


>---------------------------------------------------------------

a340f69411b6a6d16106023e4bbcceb9d4688322
 src/mlpack/core/data/imputation_methods/listwise_deletion.hpp |  7 +++++--
 src/mlpack/core/data/imputation_methods/median_imputation.hpp |  4 ++--
 src/mlpack/core/data/map_policies/missing_policy.hpp          |  2 +-
 src/mlpack/methods/preprocess/preprocess_imputer_main.cpp     |  4 ++--
 src/mlpack/tests/imputation_test.cpp                          | 10 +++++-----
 5 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/src/mlpack/core/data/imputation_methods/listwise_deletion.hpp b/src/mlpack/core/data/imputation_methods/listwise_deletion.hpp
index a2de05d..f957a85 100644
--- a/src/mlpack/core/data/imputation_methods/listwise_deletion.hpp
+++ b/src/mlpack/core/data/imputation_methods/listwise_deletion.hpp
@@ -30,6 +30,7 @@ class ListwiseDeletion
   {
     // initiate output
     output = input;
+    size_t count = 0;
 
     if (transpose)
     {
@@ -37,7 +38,8 @@ class ListwiseDeletion
       {
          if (input(dimension, i) == mappedValue)
          {
-           output.shed_row(i);
+           output.shed_col(i - count);
+           count++;
          }
       }
     }
@@ -47,7 +49,8 @@ class ListwiseDeletion
       {
         if (input(i, dimension) == mappedValue)
         {
-          output.shed_col(dimension);
+           output.shed_row(i - count);
+           count++;
         }
       }
     }
diff --git a/src/mlpack/core/data/imputation_methods/median_imputation.hpp b/src/mlpack/core/data/imputation_methods/median_imputation.hpp
index 0a59103..05eff34 100644
--- a/src/mlpack/core/data/imputation_methods/median_imputation.hpp
+++ b/src/mlpack/core/data/imputation_methods/median_imputation.hpp
@@ -38,7 +38,7 @@ class MedianImputation
       {
         if (input(dimension, i) == mappedValue)
         {
-          output(dimension, i) = medianMat(0, i);
+          output(dimension, i) = medianMat(dimension, 0);
         }
       }
     }
@@ -49,7 +49,7 @@ class MedianImputation
       {
         if (input(i, dimension) == mappedValue)
         {
-          output(i, dimension) = medianMat(i, 0);
+          output(i, dimension) = medianMat(0, dimension);
         }
       }
     }
diff --git a/src/mlpack/core/data/map_policies/missing_policy.hpp b/src/mlpack/core/data/map_policies/missing_policy.hpp
index a38d877..970a0ee 100644
--- a/src/mlpack/core/data/map_policies/missing_policy.hpp
+++ b/src/mlpack/core/data/map_policies/missing_policy.hpp
@@ -34,7 +34,7 @@ class MissingPolicy
   explicit MissingPolicy(std::set<std::string> missingSet) :
     missingSet(std::move(missingSet))
   {
-    Log::Debug << "MissingPolicy()" << std::endl;
+    Log::Debug << "MissingPolicy(missingSet)" << std::endl;
     // Nothing to initialize here.
   }
 
diff --git a/src/mlpack/methods/preprocess/preprocess_imputer_main.cpp b/src/mlpack/methods/preprocess/preprocess_imputer_main.cpp
index 7334407..015ad96 100644
--- a/src/mlpack/methods/preprocess/preprocess_imputer_main.cpp
+++ b/src/mlpack/methods/preprocess/preprocess_imputer_main.cpp
@@ -90,12 +90,12 @@ int main(int argc, char** argv)
 
   arma::mat input;
   // Policy tells how the DatasetMapper should map the values.
-  // can be specified by passing map_policy classes as template parameters
-  // ex) DatasetMapper<IncrementPolicy> info;
   std::set<std::string> missingSet;
   missingSet.insert(missingValue);
+  Log::Debug << "initalize MissingPolicy(missingSet)" << endl;
   MissingPolicy policy(missingSet);
   using MapperType = DatasetMapper<MissingPolicy>;
+  Log::Debug << "initalize info(policy)" << endl;
   DatasetMapper<MissingPolicy> info(policy);
 
   Load<double, MissingPolicy>(inputFile, input, info, policy, true, true);
diff --git a/src/mlpack/tests/imputation_test.cpp b/src/mlpack/tests/imputation_test.cpp
index 8c759bd..6abbe1d 100644
--- a/src/mlpack/tests/imputation_test.cpp
+++ b/src/mlpack/tests/imputation_test.cpp
@@ -91,7 +91,7 @@ BOOST_AUTO_TEST_CASE(CustomImputationTest)
   BOOST_REQUIRE_CLOSE(outputT(2, 3), 8.0, 1e-5);
 
   // not transposed
-  imputer.Apply(input, output, mappedValue, customValue, 1/*dimension*/, false);
+  imputer.Apply(input, output, mappedValue, customValue, 1, false);
 
   BOOST_REQUIRE_CLOSE(output(0, 0), 3.0, 1e-5);
   BOOST_REQUIRE_CLOSE(output(0, 1), 99.0, 1e-5);
@@ -122,7 +122,7 @@ BOOST_AUTO_TEST_CASE(MeanImputationTest)
   MeanImputation<double> imputer;
 
   // transposed
-  imputer.Apply(input, outputT, mappedValue, 0/*dimension*/, true);
+  imputer.Apply(input, outputT, mappedValue, 0, true);
 
   BOOST_REQUIRE_CLOSE(outputT(0, 0), 3.0, 1e-5);
   BOOST_REQUIRE_CLOSE(outputT(0, 1), 2.5, 1e-5);
@@ -138,7 +138,7 @@ BOOST_AUTO_TEST_CASE(MeanImputationTest)
   BOOST_REQUIRE_CLOSE(outputT(2, 3), 8.0, 1e-5);
 
   // not transposed
-  imputer.Apply(input, output, mappedValue, 1/*dimension*/, false);
+  imputer.Apply(input, output, mappedValue, 1, false);
 
   BOOST_REQUIRE_CLOSE(output(0, 0), 3.0, 1e-5);
   BOOST_REQUIRE_CLOSE(output(0, 1), 7.0, 1e-5);
@@ -169,7 +169,7 @@ BOOST_AUTO_TEST_CASE(MedianImputationTest)
   MedianImputation<double> imputer;
 
   // transposed
-  imputer.Apply(input, outputT, mappedValue, 1/*dimension*/, true);
+  imputer.Apply(input, outputT, mappedValue, 1, true);
 
   BOOST_REQUIRE_CLOSE(outputT(0, 0), 3.0, 1e-5);
   BOOST_REQUIRE_CLOSE(outputT(0, 1), 0.0, 1e-5);
@@ -185,7 +185,7 @@ BOOST_AUTO_TEST_CASE(MedianImputationTest)
   BOOST_REQUIRE_CLOSE(outputT(2, 3), 8.0, 1e-5);
 
   // not transposed
-  imputer.Apply(input, output, mappedValue, 1/*dimension*/, false);
+  imputer.Apply(input, output, mappedValue, 1, false);
 
   BOOST_REQUIRE_CLOSE(output(0, 0), 3.0, 1e-5);
   BOOST_REQUIRE_CLOSE(output(0, 1), 6.0, 1e-5);




More information about the mlpack-git mailing list