def test_misc(): X = np.random.standard_normal((40, 5)) power_L(X) Xa = rr.astransform(X) np.testing.assert_allclose(todense(Xa), X) reshapeA = adjoint(reshape((30, ), (6, 5))) assert_raises(NotImplementedError, todense, reshapeA)
def test_misc(): X = np.random.standard_normal((40, 5)) power_L(X) Xa = rr.astransform(X) np.testing.assert_allclose(todense(Xa), X) reshapeA = adjoint(reshape((30,), (6,5))) assert_raises(NotImplementedError, todense, reshapeA)
X_1 = np.hstack([X, np.ones((N, 1))]) transform = rr.affine_transform(-Y[:, np.newaxis] * X_1, np.ones(N)) C = 0.2 hinge = rr.positive_part(N, lagrange=C) hinge_loss = rr.linear_atom(hinge, transform) epsilon = 0.04 smoothed_hinge_loss = rr.smoothed_atom(hinge_loss, epsilon=epsilon) s = rr.selector(slice(0, P), (P + 1, )) sparsity = rr.l1norm.linear(s, lagrange=3.) quadratic = rr.quadratic.linear(s, coef=0.5) from regreg.affine import power_L ltransform = rr.linear_transform(X_1) singular_value_sq = power_L(X_1) # the other smooth piece is a quadratic with identity # for quadratic form, so its lipschitz constant is 1 lipschitz = 1.05 * singular_value_sq / epsilon + 1.1 problem = rr.container(quadratic, smoothed_hinge_loss, sparsity) solver = rr.FISTA(problem) solver.composite.lipschitz = lipschitz solver.debug = True solver.fit(backtrack=False) solver.composite.coefs fits = np.dot(X_1, problem.coefs) labels = 2 * (fits > 0) - 1 accuracy = (1 - np.fabs(Y - labels).sum() / (2. * N))
X_1 = np.hstack([X, np.ones((N,1))]) transform = rr.affine_transform(-Y[:,np.newaxis] * X_1, np.ones(N)) C = 0.2 hinge = rr.positive_part(N, lagrange=C) hinge_loss = rr.linear_atom(hinge, transform) epsilon = 0.04 smoothed_hinge_loss = rr.smoothed_atom(hinge_loss, epsilon=epsilon) s = rr.selector(slice(0,P), (P+1,)) sparsity = rr.l1norm.linear(s, lagrange=3.) quadratic = rr.quadratic.linear(s, coef=0.5) from regreg.affine import power_L ltransform = rr.linear_transform(X_1) singular_value_sq = power_L(X_1) # the other smooth piece is a quadratic with identity # for quadratic form, so its lipschitz constant is 1 lipschitz = 1.05 * singular_value_sq / epsilon + 1.1 problem = rr.container(quadratic, smoothed_hinge_loss, sparsity) solver = rr.FISTA(problem) solver.composite.lipschitz = lipschitz solver.debug = True solver.fit(backtrack=False) solver.composite.coefs