[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