diff --git a/src/mlpack/methods/cf/normalization/overall_mean_normalization.hpp b/src/mlpack/methods/cf/normalization/overall_mean_normalization.hpp index 2b09af435c..dd6e7f4b2c 100644 --- a/src/mlpack/methods/cf/normalization/overall_mean_normalization.hpp +++ b/src/mlpack/methods/cf/normalization/overall_mean_normalization.hpp @@ -38,7 +38,10 @@ class OverallMeanNormalization data.row(2) -= mean; // The algorithm omits rating of zero. If normalized rating equals zero, // it is set to the smallest positive double value. - data.row(2).replace(0, std::numeric_limits::min()); + data.row(2).for_each([](double& x) { + if (x == 0) + x = std::numeric_limits::min(); + }); } /** diff --git a/src/mlpack/methods/cf/normalization/z_score_normalization.hpp b/src/mlpack/methods/cf/normalization/z_score_normalization.hpp index 977505787c..5875dc78dc 100644 --- a/src/mlpack/methods/cf/normalization/z_score_normalization.hpp +++ b/src/mlpack/methods/cf/normalization/z_score_normalization.hpp @@ -46,7 +46,10 @@ class ZScoreNormalization data.row(2) = (data.row(2) - mean) / stddev; // The algorithm omits rating of zero. If normalized rating equals zero, // it is set to the smallest positive double value. - data.row(2).replace(0, std::numeric_limits::min()); + data.row(2).for_each([](double& x) { + if (x == 0) + x = std::numeric_limits::min(); + }); } /**