Skip to content

Commit 78f1850

Browse files
authored
fix LASSO (#346)
* fix lasso doc typo * fix lasso optimizer bug
1 parent 58a8624 commit 78f1850

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

src/linear/lasso.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ pub struct LassoSearchParameters {
166166
/// The maximum number of iterations
167167
pub max_iter: Vec<usize>,
168168
#[cfg_attr(feature = "serde", serde(default))]
169-
/// The maximum number of iterations
169+
/// If false, force the intercept parameter (beta_0) to be zero.
170170
pub fit_intercept: Vec<bool>,
171171
}
172172

src/linear/lasso_optimizer.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ impl<T: FloatNumber, X: Array2<T>> InteriorPointOptimizer<T, X> {
5353
let lambda = lambda.max(T::epsilon());
5454

5555
//parameters
56+
let max_ls_iter = 100;
5657
let pcgmaxi = 5000;
5758
let min_pcgtol = T::from_f64(0.1).unwrap();
5859
let eta = T::from_f64(1E-3).unwrap();
@@ -68,7 +69,6 @@ impl<T: FloatNumber, X: Array2<T>> InteriorPointOptimizer<T, X> {
6869
y.to_owned()
6970
};
7071

71-
let mut max_ls_iter = 100;
7272
let mut pitr = 0;
7373
let mut w = Vec::zeros(p);
7474
let mut neww = w.clone();
@@ -170,7 +170,7 @@ impl<T: FloatNumber, X: Array2<T>> InteriorPointOptimizer<T, X> {
170170
s = T::one();
171171
let gdx = grad.dot(&dxu);
172172

173-
let lsiter = 0;
173+
let mut lsiter = 0;
174174
while lsiter < max_ls_iter {
175175
for i in 0..p {
176176
neww[i] = w[i] + s * dx[i];
@@ -195,7 +195,7 @@ impl<T: FloatNumber, X: Array2<T>> InteriorPointOptimizer<T, X> {
195195
}
196196
}
197197
s = beta * s;
198-
max_ls_iter += 1;
198+
lsiter += 1;
199199
}
200200

201201
if lsiter == max_ls_iter {

0 commit comments

Comments
 (0)