@@ -97,7 +97,7 @@ def gradient_descent(X, y, max_iter=100, tol=1e-14, family=Logistic, **kwargs):
97
97
stepSize = 1.0
98
98
recalcRate = 10
99
99
backtrackMult = firstBacktrackMult
100
- beta = np .zeros ( p )
100
+ beta = np .zeros_like ( X . _meta , shape = p )
101
101
102
102
for k in range (max_iter ):
103
103
# how necessary is this recalculation?
@@ -161,7 +161,7 @@ def newton(X, y, max_iter=50, tol=1e-8, family=Logistic, **kwargs):
161
161
"""
162
162
gradient , hessian = family .gradient , family .hessian
163
163
n , p = X .shape
164
- beta = np .zeros ( p ) # always init to zeros?
164
+ beta = np .zeros_like ( X . _meta , shape = p )
165
165
Xbeta = dot (X , beta )
166
166
167
167
iter_count = 0
@@ -387,7 +387,7 @@ def proximal_grad(X, y, regularizer='l1', lamduh=0.1, family=Logistic,
387
387
stepSize = 1.0
388
388
recalcRate = 10
389
389
backtrackMult = firstBacktrackMult
390
- beta = np .zeros ( p )
390
+ beta = np .zeros_like ( X . _meta , shape = p )
391
391
regularizer = Regularizer .get (regularizer )
392
392
393
393
for k in range (max_iter ):
@@ -406,8 +406,8 @@ def proximal_grad(X, y, regularizer='l1', lamduh=0.1, family=Logistic,
406
406
# Compute the step size
407
407
lf = func
408
408
for ii in range (100 ):
409
- beta = regularizer .proximal_operator (obeta - stepSize * gradient , stepSize * lamduh )
410
- step = obeta - beta
409
+ beta = regularizer .proximal_operator (- stepSize * gradient + obeta , stepSize * lamduh )
410
+ step = - beta + obeta
411
411
Xbeta = X .dot (beta )
412
412
413
413
Xbeta , beta = persist (Xbeta , beta )
0 commit comments