[mlpack-git] master: Rename Regress() to Train(), and allow retraining. (fd41611)
gitdub at big.cc.gt.atl.ga.us
gitdub at big.cc.gt.atl.ga.us
Thu Dec 3 10:50:08 EST 2015
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/5858f46c3113651f598596bade89c1b838410652...c829fc1a2415f3dddb672431bb51ff05cbc40a76
>---------------------------------------------------------------
commit fd416114472470506567bd3f3e70609da0673310
Author: ryan <ryan at ratml.org>
Date: Thu Dec 3 10:48:47 2015 -0500
Rename Regress() to Train(), and allow retraining.
>---------------------------------------------------------------
fd416114472470506567bd3f3e70609da0673310
src/mlpack/methods/lars/lars.cpp | 21 +++++++++++++++------
src/mlpack/methods/lars/lars.hpp | 8 ++++----
.../methods/local_coordinate_coding/lcc_impl.hpp | 2 +-
.../methods/sparse_coding/sparse_coding_impl.hpp | 2 +-
4 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/src/mlpack/methods/lars/lars.cpp b/src/mlpack/methods/lars/lars.cpp
index fa23f91..f3b9df0 100644
--- a/src/mlpack/methods/lars/lars.cpp
+++ b/src/mlpack/methods/lars/lars.cpp
@@ -36,13 +36,22 @@ LARS::LARS(const bool useCholesky,
tolerance(tolerance)
{ /* Nothing left to do */ }
-void LARS::Regress(const arma::mat& matX,
- const arma::vec& y,
- arma::vec& beta,
- const bool transposeData)
+void LARS::Train(const arma::mat& matX,
+ const arma::vec& y,
+ arma::vec& beta,
+ const bool transposeData)
{
Timer::Start("lars_regression");
+ // Clear any previous solution information.
+ betaPath.clear();
+ lambdaPath.clear();
+ activeSet.clear();
+ isActive.clear();
+ ignoreSet.clear();
+ isIgnored.clear();
+ matUtriCholFactor.reset();
+
// This matrix may end up holding the transpose -- if necessary.
arma::mat dataTrans;
// dataRef is row-major.
@@ -63,7 +72,7 @@ void LARS::Regress(const arma::mat& matX,
// Initialize yHat and beta.
beta = arma::zeros(dataRef.n_cols);
arma::vec yHat = arma::zeros(dataRef.n_rows);
- arma::vec yHatDirection = arma::vec(dataRef.n_rows);
+ arma::vec yHatDirection(dataRef.n_rows);
bool lassocond = false;
@@ -93,7 +102,7 @@ void LARS::Regress(const arma::mat& matX,
// Compute the Gram matrix. If this is the elastic net problem, we will add
// lambda2 * I_n to the matrix.
- if (matGram.n_elem == 0)
+ if (matGram.n_elem != dataRef.n_cols * dataRef.n_cols)
{
// In this case, matGram should reference matGramInternal.
matGramInternal = trans(dataRef) * dataRef;
diff --git a/src/mlpack/methods/lars/lars.hpp b/src/mlpack/methods/lars/lars.hpp
index 2682311..dca181d 100644
--- a/src/mlpack/methods/lars/lars.hpp
+++ b/src/mlpack/methods/lars/lars.hpp
@@ -131,10 +131,10 @@ class LARS
* @param beta Vector to store the solution (the coefficients) in.
* @param transposeData Set to false if the data is row-major.
*/
- void Regress(const arma::mat& data,
- const arma::vec& responses,
- arma::vec& beta,
- const bool transposeData = true);
+ void Train(const arma::mat& data,
+ const arma::vec& responses,
+ arma::vec& beta,
+ const bool transposeData = true);
/**
* Predict y_i for each data point in the given data matrix, using the
diff --git a/src/mlpack/methods/local_coordinate_coding/lcc_impl.hpp b/src/mlpack/methods/local_coordinate_coding/lcc_impl.hpp
index f90f65c..02f475d 100644
--- a/src/mlpack/methods/local_coordinate_coding/lcc_impl.hpp
+++ b/src/mlpack/methods/local_coordinate_coding/lcc_impl.hpp
@@ -123,7 +123,7 @@ void LocalCoordinateCoding<DictionaryInitializer>::OptimizeCode()
// Run LARS for this point, by making an alias of the point and passing
// that.
arma::vec beta = codes.unsafe_col(i);
- lars.Regress(dictPrime, data.unsafe_col(i), beta, false);
+ lars.Train(dictPrime, data.unsafe_col(i), beta, false);
beta %= invW; // Remember, beta is an alias of codes.col(i).
}
}
diff --git a/src/mlpack/methods/sparse_coding/sparse_coding_impl.hpp b/src/mlpack/methods/sparse_coding/sparse_coding_impl.hpp
index 9e04f52..35b0806 100644
--- a/src/mlpack/methods/sparse_coding/sparse_coding_impl.hpp
+++ b/src/mlpack/methods/sparse_coding/sparse_coding_impl.hpp
@@ -111,7 +111,7 @@ void SparseCoding<DictionaryInitializer>::OptimizeCode()
// place the result directly into that; then we will not need to have an
// extra copy.
arma::vec code = codes.unsafe_col(i);
- lars.Regress(dictionary, data.unsafe_col(i), code, false);
+ lars.Train(dictionary, data.unsafe_col(i), code, false);
}
}
More information about the mlpack-git
mailing list