Skip to content

Commit

Permalink
Merge pull request #116 from Hector-hedb12/issue_104_ElasticNet
Browse files Browse the repository at this point in the history
Issue 104: primitive for `sklearn.linear_model.ElasticNet`
  • Loading branch information
csala committed Feb 25, 2019
2 parents e4dfd01 + ea55fd9 commit 6132a59
Show file tree
Hide file tree
Showing 2 changed files with 152 additions and 0 deletions.
139 changes: 139 additions & 0 deletions mlprimitives/jsons/sklearn.linear_model.ElasticNet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
{
"name": "sklearn.linear_model.ElasticNet",
"contributors": [
"Hector Dominguez <hedb_12@hotmail.com>"
],
"documentation": "https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ElasticNet.html",
"description": "Linear regression with combined L1 and L2 priors as regularizer",
"classifiers": {
"type": "estimator",
"subtype": "regressor"
},
"modalities": [],
"primitive": "sklearn.linear_model.ElasticNet",
"fit": {
"method": "fit",
"args": [
{
"name": "X",
"type": "ndarray"
},
{
"name": "y",
"type": "array"
}
]
},
"produce": {
"method": "predict",
"args": [
{
"name": "X",
"type": "ndarray"
}
],
"output": [
{
"name": "y",
"type": "array"
}
]
},
"hyperparameters": {
"fixed": {
"precompute": {
"type": "bool or list",
"default": false,
"description": "Whether to use a precomputed Gram matrix to speed up calculations. The Gram matrix can also be passed as argument. For sparse input this option is always True to preserve sparsity"
},
"copy_X": {
"type": "bool",
"description": "If True, X will be copied; else, it may be overwritten",
"default": true
},
"warm_start": {
"type": "bool",
"description": "When set to True, reuse the solution of the previous call to fit as initialization, otherwise, just erase the previous solution",
"default": false
},
"random_state": {
"type": "multitype",
"description": "The seed of the pseudo random number generator that selects a random feature to update",
"types": {
"int": {
"description": "random_state is the seed used by the random number generator"
},
"RandomState": {
"description": "random_state is the random number generator"
},
"None": {
"description": "the random number generator is the RandomState instance used by np.random"
}
},
"default": null
}
},
"tunable": {
"alpha": {
"type": "float",
"description": "Constant that multiplies the penalty terms",
"default": 1.0,
"range": [
0.01,
10.0
]
},
"l1_ratio": {
"type": "float",
"description": "The ElasticNet mixing parameter, with 0 <= l1_ratio <= 1. For l1_ratio = 0 the penalty is an L2 penalty. For l1_ratio = 1 it is an L1 penalty. For 0 < l1_ratio < 1, the penalty is a combination of L1 and L2",
"default": 0.5,
"range": [
0.0,
1.0
]
},
"fit_intercept": {
"type": "bool",
"default": true,
"description": "Whether the intercept should be estimated or not. If False, the data is assumed to be already centered"
},
"normalize": {
"type": "bool",
"default": false,
"description": "This parameter is ignored when fit_intercept is set to False. If True, the regressors X will be normalized before regression by subtracting the mean and dividing by the l2-norm"
},
"max_iter": {
"type": "int",
"description": "The maximum number of iterations",
"default": 1000,
"range": [
1,
10000
]
},
"tol": {
"type": "float",
"description": "The tolerance for the optimization: if the updates are smaller than tol, the optimization code checks the dual gap for optimality and continues until it is smaller than tol",
"default": 0.0001,
"range": [
1e-06,
0.01
]
},
"positive": {
"type": "bool",
"description": "When set to True, forces the coefficients to be positive",
"default": false
},
"selection": {
"type": "str",
"description": "If set to random, a random coefficient is updated every iteration rather than looping over features sequentially by default",
"values": [
"cyclic",
"random"
],
"default": "cyclic"
}
}
}
}
13 changes: 13 additions & 0 deletions pipelines/sklearn.linear_model.ElasticNet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"metadata": {
"name": "sklearn.linear_model.ElasticNet",
"data_type": "single_table",
"task_type": "regression"
},
"validation": {
"dataset": "boston"
},
"primitives": [
"sklearn.linear_model.ElasticNet"
]
}

0 comments on commit 6132a59

Please sign in to comment.