Skip to content

Commit 8fcd509

Browse files
use only JAX for ElasticNet2Regressor
1 parent 7d7ba42 commit 8fcd509

13 files changed

+705
-253
lines changed

examples/elasticnet2regressor.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = .2, random_state = 13)
1818

19-
regr = ns.ElasticNet2Regressor(solver="lbfgs")
19+
regr = ns.ElasticNet2Regressor(solver="cd")
2020

2121
start = time()
2222
regr.fit(X_train, y_train)
@@ -25,11 +25,12 @@
2525

2626
print(f"RMSE for {datasets_names[i]} : {root_mean_squared_error(preds, y_test)}")
2727

28-
regr = ns.ElasticNet2Regressor(solver="cd")
28+
regr = ns.ElasticNet2Regressor(solver="cd", type_loss='quantile')
2929

3030
start = time()
3131
regr.fit(X_train, y_train)
3232
preds = regr.predict(X_test)
3333
print("Elapsed: ", time()-start)
3434

3535
print(f"RMSE for {datasets_names[i]} : {root_mean_squared_error(preds, y_test)}")
36+

examples/glm_regression.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
plt.plot(obj.optimizer.results[2])
3131
print(obj.beta_)
3232
print("RMSE: ")
33-
print(np.sqrt(obj.score(X_test, y_test))) # RMSE
33+
print(obj.score(X_test, y_test)) # RMSE
3434

3535

3636
print(f"\n Example 2 -----")
@@ -49,7 +49,7 @@
4949
plt.plot(obj2.optimizer.results[2])
5050
print(obj2.beta_)
5151
print("RMSE: ")
52-
print(np.sqrt(obj2.score(X_test, y_test))) # RMSE
52+
print(obj2.score(X_test, y_test)) # RMSE
5353

5454
print(f"\n Example 3 -----")
5555

@@ -66,7 +66,7 @@
6666
plt.plot(obj3.optimizer.results[2])
6767
print(obj3.beta_)
6868
print("RMSE: ")
69-
print(np.sqrt(obj2.score(X_test, y_test))) # RMSE
69+
print(obj2.score(X_test, y_test)) # RMSE
7070

7171
print(f"\n Example 4 -----")
7272

@@ -82,7 +82,7 @@
8282
plt.plot(obj4.optimizer.results[2])
8383
print(obj4.beta_)
8484
print("RMSE: ")
85-
print(np.sqrt(obj4.score(X_test, y_test))) # RMSE
85+
print(obj4.score(X_test, y_test)) # RMSE
8686

8787
print(f"\n Example 5 -----")
8888

@@ -102,4 +102,4 @@
102102
plt.plot(obj5.optimizer.results[2])
103103
print(obj5.beta_)
104104
print("RMSE: ")
105-
print(np.sqrt(obj5.score(X_test, y_test))) # RMSE
105+
print(obj5.score(X_test, y_test)) # RMSE
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
import os
2+
import numpy as np
3+
import nnetsauce as ns
4+
from sklearn.datasets import load_diabetes
5+
from sklearn.model_selection import train_test_split
6+
from time import time
7+
import matplotlib.pyplot as plt
8+
9+
print(f"\n ----- Running: {os.path.basename(__file__)}... ----- \n")
10+
11+
diabetes = load_diabetes()
12+
X = diabetes.data
13+
y = diabetes.target
14+
15+
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=2020)
16+
17+
print(f"\n Example 1 -----")
18+
opt = ns.Optimizer(type_optim="sgd",
19+
learning_rate=0.1,
20+
batch_prop=0.25,
21+
verbose=0)
22+
obj = ns.GLMRegressor(n_hidden_features=3,
23+
lambda1=1e-2, alpha1=0.5,
24+
lambda2=1e-2, alpha2=0.5,
25+
family="quantile",
26+
optimizer=opt)
27+
28+
start = time()
29+
obj.fit(X_train, y_train)
30+
print(f"\n Elapsed: {time() - start}")
31+
plt.plot(obj.optimizer.results[2])
32+
print(obj.beta_)
33+
print("RMSE: ")
34+
print(obj.score(X_test, y_test)) # RMSE
35+
36+
37+
print(f"\n Example 2 -----")
38+
opt2 = ns.Optimizer(type_optim="scd",
39+
learning_rate=0.01,
40+
batch_prop=0.8,
41+
verbose=1)
42+
obj2 = ns.GLMRegressor(n_hidden_features=5,
43+
lambda1=1e-2, alpha1=0.5,
44+
lambda2=1e-2, alpha2=0.5,
45+
family="quantile",
46+
optimizer=opt2)
47+
48+
start = time()
49+
obj2.fit(X_train, y_train)
50+
print(f"\n Elapsed: {time() - start}")
51+
plt.plot(obj2.optimizer.results[2])
52+
print(obj2.beta_)
53+
print("RMSE: ")
54+
print(obj2.score(X_test, y_test)) # RMSE
55+
56+
print(f"\n Example 3 -----")
57+
58+
opt3 = ns.Optimizer(type_optim="scd",
59+
batch_prop=0.25,
60+
verbose=1)
61+
obj3 = ns.GLMRegressor(n_hidden_features=5,
62+
lambda1=1e-2, alpha1=0.1,
63+
lambda2=1e-1, alpha2=0.9,
64+
family="quantile",
65+
optimizer=opt3)
66+
start = time()
67+
obj3.fit(X_train, y_train)
68+
print(f"\n Elapsed: {time() - start}")
69+
plt.plot(obj3.optimizer.results[2])
70+
print(obj3.beta_)
71+
print("RMSE: ")
72+
print(obj2.score(X_test, y_test)) # RMSE
73+
74+
print(f"\n Example 4 -----")
75+
76+
opt4 = ns.Optimizer(type_optim="scd",
77+
learning_rate=0.01,
78+
batch_prop=0.8,
79+
verbose=0)
80+
obj4 = ns.GLMRegressor(optimizer=opt4,
81+
family="quantile")
82+
83+
start = time()
84+
obj4.fit(X_train, y_train)
85+
print(f"\n Elapsed: {time() - start}")
86+
plt.plot(obj4.optimizer.results[2])
87+
print(obj4.beta_)
88+
print("RMSE: ")
89+
print(obj4.score(X_test, y_test)) # RMSE
90+
91+
print(f"\n Example 5 -----")
92+
93+
opt5 = ns.Optimizer(type_optim="scd",
94+
learning_rate=0.1,
95+
batch_prop=0.5,
96+
verbose=0)
97+
obj5 = ns.GLMRegressor(optimizer=opt5,
98+
lambda1=1,
99+
alpha1=0.5,
100+
lambda2=1e-2,
101+
alpha2=0.1,
102+
family="quantile")
103+
104+
start = time()
105+
obj5.fit(X_train, y_train)
106+
print(f"\n Elapsed: {time() - start}")
107+
plt.plot(obj5.optimizer.results[2])
108+
print(obj5.beta_)
109+
print("RMSE: ")
110+
print(obj5.score(X_test, y_test)) # RMSE
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
import os
2+
import numpy as np
3+
import nnetsauce as ns
4+
from sklearn.datasets import load_diabetes
5+
from sklearn.model_selection import train_test_split
6+
from time import time
7+
import matplotlib.pyplot as plt
8+
9+
print(f"\n ----- Running: {os.path.basename(__file__)}... ----- \n")
10+
11+
diabetes = load_diabetes()
12+
X = diabetes.data
13+
y = diabetes.target
14+
15+
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=2020)
16+
17+
print(f"\n Example 1 -----")
18+
opt = ns.Optimizer(type_optim="sgd",
19+
learning_rate=0.1,
20+
batch_prop=0.25,
21+
verbose=0)
22+
obj = ns.GLMRegressor(n_hidden_features=3,
23+
lambda1=1e-2, alpha1=0.5,
24+
lambda2=1e-2, alpha2=0.5,
25+
family="quantile",
26+
level=95,
27+
optimizer=opt)
28+
29+
start = time()
30+
obj.fit(X_train, y_train)
31+
print(f"\n Elapsed: {time() - start}")
32+
plt.plot(obj.optimizer.results[2])
33+
print(obj.beta_)
34+
print("RMSE: ")
35+
print(obj.score(X_test, y_test)) # RMSE
36+
37+
38+
print(f"\n Example 2 -----")
39+
opt2 = ns.Optimizer(type_optim="scd",
40+
learning_rate=0.01,
41+
batch_prop=0.8,
42+
verbose=1)
43+
obj2 = ns.GLMRegressor(n_hidden_features=5,
44+
lambda1=1e-2, alpha1=0.5,
45+
lambda2=1e-2, alpha2=0.5,
46+
family="quantile",
47+
level=95,
48+
optimizer=opt2)
49+
50+
start = time()
51+
obj2.fit(X_train, y_train)
52+
print(f"\n Elapsed: {time() - start}")
53+
plt.plot(obj2.optimizer.results[2])
54+
print(obj2.beta_)
55+
print("RMSE: ")
56+
print(obj2.score(X_test, y_test)) # RMSE
57+
58+
print(f"\n Example 3 -----")
59+
60+
opt3 = ns.Optimizer(type_optim="scd",
61+
batch_prop=0.25,
62+
verbose=1)
63+
obj3 = ns.GLMRegressor(n_hidden_features=5,
64+
lambda1=1e-2, alpha1=0.1,
65+
lambda2=1e-1, alpha2=0.9,
66+
family="quantile",
67+
level=95,
68+
optimizer=opt3)
69+
start = time()
70+
obj3.fit(X_train, y_train)
71+
print(f"\n Elapsed: {time() - start}")
72+
plt.plot(obj3.optimizer.results[2])
73+
print(obj3.beta_)
74+
print("RMSE: ")
75+
print(obj2.score(X_test, y_test)) # RMSE
76+
77+
print(f"\n Example 4 -----")
78+
79+
opt4 = ns.Optimizer(type_optim="scd",
80+
learning_rate=0.01,
81+
batch_prop=0.8,
82+
verbose=0)
83+
obj4 = ns.GLMRegressor(optimizer=opt4,
84+
family="quantile",
85+
level=95)
86+
87+
start = time()
88+
obj4.fit(X_train, y_train)
89+
print(f"\n Elapsed: {time() - start}")
90+
plt.plot(obj4.optimizer.results[2])
91+
print(obj4.beta_)
92+
print("RMSE: ")
93+
print(obj4.score(X_test, y_test)) # RMSE
94+
95+
print(f"\n Example 5 -----")
96+
97+
opt5 = ns.Optimizer(type_optim="scd",
98+
learning_rate=0.1,
99+
batch_prop=0.5,
100+
verbose=0)
101+
obj5 = ns.GLMRegressor(optimizer=opt5,
102+
lambda1=1,
103+
alpha1=0.5,
104+
lambda2=1e-2,
105+
alpha2=0.1,
106+
family="quantile",
107+
level=95,)
108+
109+
start = time()
110+
obj5.fit(X_train, y_train)
111+
print(f"\n Elapsed: {time() - start}")
112+
plt.plot(obj5.optimizer.results[2])
113+
print(obj5.beta_)
114+
print("RMSE: ")
115+
print(obj5.score(X_test, y_test)) # RMSE

0 commit comments

Comments
 (0)