-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.py
More file actions
99 lines (64 loc) · 1.48 KB
/
test.py
File metadata and controls
99 lines (64 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import numpy as np
import oglasso.oglasso as og
## ladmm
# m = 50
# n = 100
# grps = [[i] for i in range(n)]
# grate = 0.1
# comp = True
# sig2 = 0
# xstar,A,b = og.sim(m,n,grps,grate,comp,sig2)
# out = og.ladmm(xstar,A,b,lam=0.5,niter=1000)
# print(xstar)
# print(out[0])
# print(out[1])
## KISS
m = 50
n = 100
grps = [[i] for i in range(n)]
A = np.random.randn(m,n)
xstar = np.zeros((n,1))
xstar[[0,1,2]] = 10
b = A.dot(xstar) + np.random.randn(m,1)
x0 = np.zeros((n,1))
o1 = og.ladmm(x0,A,b,lam=100,niter=100,r=1)
o1[0]
o2 = og.admm(x0, A, b, grps, lam=100, niter = 100, r=1)
o2[1][1]
print('hi')
# try new sim function
m = 50
n = 100
G = [[i] for i in range(n)]
xstar = np.zeros((n,1))
xstar[0:25] = 10
x0 = np.zeros((n,1))
out = og.sim2test(m,n,G,xstar,x0,r=1,lam=1,eps=1e-1)
out = og.sim2test(m,n,G,xstar,x0,r=1,lam=10,eps=1e-1)
o1 = og.ladmm(x0,A,b,lam=100,niter=100,r=1)
o1[0]
o2 = og.admm(x0, A, b, grps, lam=100, niter = 100, r=1)
o2[1][1]
print('hi')
## low dimesional setting
## lasso setting
# m = 100
# n = 300
# grps = [[i] for i in range(n)]
# grate = 0.1
# comp = True
# sig2 = 1
# xstar,A,b = og.sim(m,n,grps,grate,comp,sig2)
# m = 100
# n = 300
# A = np.random.randn(m,n)
# xstar = np.array([1, 0, 0])
# grps = [[i] for i in range(n)]
# xstar = np.zeros(n)
# xstar[[1,3,5]] = 1
# b = A.dot(xstar) + 0*np.random.randn(m)
# x0 = xstar
# out = og.admm(x0,A,b,grps,niter=100,l=1000,r=1e1)
# out[0][0:10]
# ## non-overlapping group lasso
# ## overlapping group lasso