Skip to content

Commit 7d7ba42

Browse files
Merge pull request #72 from Techtonique/thierrymoudiki-patch-1
Create elasticNet2Regressor.py
2 parents c2c6b02 + ecee642 commit 7d7ba42

File tree

11 files changed

+809
-11
lines changed

11 files changed

+809
-11
lines changed

examples/custombackprop.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import nnetsauce as ns
2+
import numpy as np
3+
from sklearn.metrics import root_mean_squared_error
4+
from sklearn.model_selection import train_test_split
5+
from sklearn.datasets import load_diabetes, fetch_california_housing
6+
from sklearn.linear_model import Ridge
7+
from time import time
8+
9+
load_datasets = [load_diabetes(), fetch_california_housing()]
10+
11+
datasets_names = ["diabetes", "housing"]
12+
13+
for i, data in enumerate(load_datasets):
14+
15+
X = data.data
16+
y= data.target
17+
18+
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = .2, random_state = 13)
19+
20+
regr = ns.CustomBackPropRegressor(base_model=Ridge(),
21+
type_grad="finitediff")
22+
23+
start = time()
24+
regr.fit(X_train, y_train)
25+
preds = regr.predict(X_test)
26+
print("Elapsed: ", time()-start)
27+
28+
print(f"RMSE for {datasets_names[i]} : {root_mean_squared_error(preds, y_test)}")
29+
30+
regr = ns.CustomBackPropRegressor(base_model=Ridge(),
31+
type_grad="finitediff",
32+
type_loss="quantile")
33+
34+
start = time()
35+
regr.fit(X_train, y_train)
36+
preds = regr.predict(X_test)
37+
print("Elapsed: ", time()-start)
38+
39+
print(f"RMSE for {datasets_names[i]} : {root_mean_squared_error(preds, y_test)}")

examples/elasticnet2regressor.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import nnetsauce as ns
2+
import numpy as np
3+
from sklearn.metrics import root_mean_squared_error
4+
from sklearn.model_selection import train_test_split
5+
from sklearn.datasets import load_diabetes, fetch_california_housing
6+
from time import time
7+
8+
load_datasets = [load_diabetes(), fetch_california_housing()]
9+
10+
datasets_names = ["diabetes", "housing"]
11+
12+
for i, data in enumerate(load_datasets):
13+
14+
X = data.data
15+
y= data.target
16+
17+
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = .2, random_state = 13)
18+
19+
regr = ns.ElasticNet2Regressor(solver="lbfgs")
20+
21+
start = time()
22+
regr.fit(X_train, y_train)
23+
preds = regr.predict(X_test)
24+
print("Elapsed: ", time()-start)
25+
26+
print(f"RMSE for {datasets_names[i]} : {root_mean_squared_error(preds, y_test)}")
27+
28+
regr = ns.ElasticNet2Regressor(solver="cd")
29+
30+
start = time()
31+
regr.fit(X_train, y_train)
32+
preds = regr.predict(X_test)
33+
print("Elapsed: ", time()-start)
34+
35+
print(f"RMSE for {datasets_names[i]} : {root_mean_squared_error(preds, y_test)}")

nnetsauce/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from .boosting.adaBoostClassifier import AdaBoostClassifier
44
from .custom.customClassifier import CustomClassifier
55
from .custom.customRegressor import CustomRegressor
6+
from .custom.customBackpropRegressor import CustomBackPropRegressor
67
from .datasets import Downloader
78
from .deep.deepClassifier import DeepClassifier
89
from .deep.deepRegressor import DeepRegressor
@@ -32,6 +33,7 @@
3233
from .ridge2.ridge2Classifier import Ridge2Classifier
3334
from .ridge2.ridge2Regressor import Ridge2Regressor
3435
from .ridge2.ridge2MultitaskClassifier import Ridge2MultitaskClassifier
36+
from .ridge2.elasticNet2Regressor import ElasticNet2Regressor
3537
from .rvfl.bayesianrvflRegressor import BayesianRVFLRegressor
3638
from .rvfl.bayesianrvfl2Regressor import BayesianRVFL2Regressor
3739
from .sampling import SubSampler
@@ -47,10 +49,12 @@
4749
"ClassicalMTS",
4850
"CustomClassifier",
4951
"CustomRegressor",
52+
"CustomBackPropRegressor",
5053
"DeepClassifier",
5154
"DeepRegressor",
5255
"DeepMTS",
5356
"Downloader",
57+
"ElasticNet2Regressor",
5458
"GLMClassifier",
5559
"GLMRegressor",
5660
"KernelRidge",

nnetsauce/base/base.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -352,12 +352,6 @@ def create_layer(self, scaled_X, W=None):
352352
seed=self.seed,
353353
)
354354

355-
# self.W_ = hash_sim[self.nodes_sim](
356-
# n_dims=n_features,
357-
# n_points=self.n_hidden_features,
358-
# seed=self.seed,
359-
# )
360-
361355
assert (
362356
scaled_X.shape[1] == self.W_.shape[0]
363357
), "check dimensions of covariates X and matrix W"

nnetsauce/custom/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from .custom import Custom
22
from .customClassifier import CustomClassifier
33
from .customRegressor import CustomRegressor
4+
from .customBackpropRegressor import CustomBackPropRegressor
45

5-
__all__ = ["Custom", "CustomClassifier", "CustomRegressor"]
6+
__all__ = ["Custom", "CustomClassifier",
7+
"CustomRegressor", "CustomBackPropRegressor"]

0 commit comments

Comments
 (0)