From a0a29e84af0dd6e2e2f782e45d8ecc421c0e1db5 Mon Sep 17 00:00:00 2001 From: perib Date: Tue, 8 Oct 2024 11:28:58 -0700 Subject: [PATCH 1/9] update for configspace --- Tutorial/2_Search_Spaces.ipynb | 8 ++---- tpot2/config/classifiers.py | 26 +++++++++---------- tpot2/config/classifiers_sklearnex.py | 4 +-- tpot2/config/regressors.py | 8 +++--- tpot2/old_config_utils/old_config_utils.py | 9 ++----- tpot2/search_spaces/nodes/estimator_node.py | 21 +-------------- .../nodes/estimator_node_gradual.py | 21 --------------- tpot2/search_spaces/pipelines/wrapper.py | 20 -------------- 8 files changed, 24 insertions(+), 93 deletions(-) diff --git a/Tutorial/2_Search_Spaces.ipynb b/Tutorial/2_Search_Spaces.ipynb index 782fbb19..ed04898a 100644 --- a/Tutorial/2_Search_Spaces.ipynb +++ b/Tutorial/2_Search_Spaces.ipynb @@ -1008,11 +1008,7 @@ "\n", "### EstimatorNode\n", "\n", - "The EstimatorNode represents the hyperparameter search space for a scikit-learn estimator. \n", - "\n", - "Note that `ConfigSpace` doesn't support `None` in its search space, and does not support the booleans True or False as fixed parameters (though booleans seem to be allowed in Categorical search spaces). To get around this, use the macros defined in:\n", - "\n", - "`from tpot2.search_spaces.nodes.estimator_node import NONE_SPECIAL_STRING, TRUE_SPECIAL_STRING, FALSE_SPECIAL_STRING`" + "The EstimatorNode represents the hyperparameter search space for a scikit-learn estimator. " ] }, { @@ -19632,7 +19628,7 @@ ], "metadata": { "kernelspec": { - "display_name": "tpot2env", + "display_name": "myenv", "language": "python", "name": "python3" }, diff --git a/tpot2/config/classifiers.py b/tpot2/config/classifiers.py index dd30efb5..f612035b 100644 --- a/tpot2/config/classifiers.py +++ b/tpot2/config/classifiers.py @@ -1,14 +1,14 @@ from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal from ConfigSpace import EqualsCondition, OrConjunction, NotEqualsCondition, InCondition -from ..search_spaces.nodes.estimator_node import NONE_SPECIAL_STRING, TRUE_SPECIAL_STRING, FALSE_SPECIAL_STRING + import numpy as np import sklearn def get_LogisticRegression_ConfigurationSpace(random_state): - dual = FALSE_SPECIAL_STRING + dual = False space = {"solver":"saga", "max_iter":1000, @@ -19,7 +19,7 @@ def get_LogisticRegression_ConfigurationSpace(random_state): penalty = Categorical('penalty', ['l1', 'l2',"elasticnet"], default='l2') C = Float('C', (0.01, 1e5), log=True) l1_ratio = Float('l1_ratio', (0.0, 1.0)) - class_weight = Categorical('class_weight', [NONE_SPECIAL_STRING, 'balanced']) + class_weight = Categorical('class_weight', [None, 'balanced']) l1_ratio_condition = EqualsCondition(l1_ratio, penalty, 'elasticnet') @@ -80,9 +80,9 @@ def get_DecisionTreeClassifier_ConfigurationSpace(n_featues, random_state): 'max_depth': Integer("max_depth", bounds=(1, min(20,2*n_featues))), #max of 20? log scale? 'min_samples_split': Integer("min_samples_split", bounds=(2, 20)), 'min_samples_leaf': Integer("min_samples_leaf", bounds=(1, 20)), - 'max_features': Categorical("max_features", [NONE_SPECIAL_STRING, 'sqrt', 'log2']), + 'max_features': Categorical("max_features", [None, 'sqrt', 'log2']), 'min_weight_fraction_leaf': 0.0, - 'class_weight' : Categorical('class_weight', [NONE_SPECIAL_STRING, 'balanced']), + 'class_weight' : Categorical('class_weight', [None, 'balanced']), } @@ -117,7 +117,7 @@ def get_SVC_ConfigurationSpace(random_state): space = { 'max_iter': 3000, - 'probability':TRUE_SPECIAL_STRING} + 'probability':True} kernel = Categorical("kernel", ['poly', 'rbf', 'sigmoid', 'linear']) C = Float('C', (0.01, 1e5), log=True) @@ -125,7 +125,7 @@ def get_SVC_ConfigurationSpace(random_state): gamma = Float("gamma", bounds=(1e-5, 8), log=True) shrinking = Categorical("shrinking", [True, False]) coef0 = Float("coef0", bounds=(-1, 1)) - class_weight = Categorical('class_weight', [NONE_SPECIAL_STRING, 'balanced']) + class_weight = Categorical('class_weight', [None, 'balanced']) degree_condition = EqualsCondition(degree, kernel, 'poly') gamma_condition = InCondition(gamma, kernel, ['rbf', 'poly']) @@ -150,7 +150,7 @@ def get_RandomForestClassifier_ConfigurationSpace( random_state): 'min_samples_split': Integer("min_samples_split", bounds=(2, 20)), 'min_samples_leaf': Integer("min_samples_leaf", bounds=(1, 20)), 'bootstrap': Categorical("bootstrap", [True, False]), - 'class_weight': Categorical("class_weight", [NONE_SPECIAL_STRING, 'balanced']), + 'class_weight': Categorical("class_weight", [None, 'balanced']), } if random_state is not None: #This is required because configspace doesn't allow None as a value @@ -191,7 +191,7 @@ def get_LGBMClassifier_ConfigurationSpace(random_state,): 'num_leaves': Integer("num_leaves", bounds=(2, 256)), 'max_depth': Integer("max_depth", bounds=(1, 10)), 'n_estimators': Integer("n_estimators", bounds=(10, 100)), - 'class_weight': Categorical("class_weight", [NONE_SPECIAL_STRING, 'balanced']), + 'class_weight': Categorical("class_weight", [None, 'balanced']), 'verbose':-1, 'n_jobs': 1, } @@ -212,7 +212,7 @@ def get_ExtraTreesClassifier_ConfigurationSpace(random_state): 'min_samples_split': Integer("min_samples_split", bounds=(2, 20)), 'min_samples_leaf': Integer("min_samples_leaf", bounds=(1, 20)), 'bootstrap': Categorical("bootstrap", [True, False]), - 'class_weight': Categorical("class_weight", [NONE_SPECIAL_STRING, 'balanced']), + 'class_weight': Categorical("class_weight", [None, 'balanced']), 'n_jobs': 1, } @@ -235,7 +235,7 @@ def get_SGDClassifier_ConfigurationSpace(random_state): 'eta0': Float("eta0", bounds=(0.01, 1.0)), 'n_jobs': 1, 'fit_intercept': Categorical("fit_intercept", [True]), - 'class_weight': Categorical("class_weight", [NONE_SPECIAL_STRING, 'balanced']), + 'class_weight': Categorical("class_weight", [None, 'balanced']), } if random_state is not None: #This is required because configspace doesn't allow None as a value @@ -345,7 +345,7 @@ def get_GradientBoostingClassifier_ConfigurationSpace(n_classes, random_state): 'subsample': Float("subsample", bounds=(0.1, 1.0)), 'max_features': Float("max_features", bounds=(0.01, 1.00)), 'max_leaf_nodes': Integer("max_leaf_nodes", bounds=(3, 2047)), - 'max_depth':NONE_SPECIAL_STRING, # 'max_depth': Integer("max_depth", bounds=(1, 2*n_features)), + 'max_depth':None, # 'max_depth': Integer("max_depth", bounds=(1, 2*n_features)), 'tol': 1e-4, } @@ -418,7 +418,7 @@ def get_HistGradientBoostingClassifier_ConfigurationSpace(random_state): 'min_samples_leaf': Integer("min_samples_leaf", bounds=(1, 200)), 'max_features': Float("max_features", bounds=(0.1,1.0)), 'max_leaf_nodes': Integer("max_leaf_nodes", bounds=(3, 2047)), - 'max_depth':NONE_SPECIAL_STRING, # 'max_depth': Integer("max_depth", bounds=(1, 2*n_features)), + 'max_depth':None, # 'max_depth': Integer("max_depth", bounds=(1, 2*n_features)), 'l2_regularization': Float("l2_regularization", bounds=(1e-10, 1), log=True), 'tol': 1e-4, } diff --git a/tpot2/config/classifiers_sklearnex.py b/tpot2/config/classifiers_sklearnex.py index e16d2c03..ec1c7421 100644 --- a/tpot2/config/classifiers_sklearnex.py +++ b/tpot2/config/classifiers_sklearnex.py @@ -1,6 +1,6 @@ from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal -from ..search_spaces.nodes.estimator_node import NONE_SPECIAL_STRING, TRUE_SPECIAL_STRING, FALSE_SPECIAL_STRING + def get_RandomForestClassifier_ConfigurationSpace(random_state): space = { @@ -68,7 +68,7 @@ def get_NuSVC_ConfigurationSpace(random_state): 'kernel': Categorical("kernel", ['poly', 'rbf', 'linear', 'sigmoid']), #'C': Float("C", bounds=(1e-4, 25), log=True), 'degree': Integer("degree", bounds=(1, 4)), - 'class_weight': Categorical("class_weight", [NONE_SPECIAL_STRING, 'balanced']), + 'class_weight': Categorical("class_weight", [None, 'balanced']), 'max_iter': 3000, 'tol': 0.005, 'probability': Categorical("probability", [True]), # configspace doesn't allow bools as a default value? but does allow them as a value inside a Categorical diff --git a/tpot2/config/regressors.py b/tpot2/config/regressors.py index 9e586947..2a330fa5 100644 --- a/tpot2/config/regressors.py +++ b/tpot2/config/regressors.py @@ -2,7 +2,7 @@ from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal from ConfigSpace import EqualsCondition, OrConjunction, NotEqualsCondition, InCondition -from ..search_spaces.nodes.estimator_node import NONE_SPECIAL_STRING, TRUE_SPECIAL_STRING, FALSE_SPECIAL_STRING + import numpy as np #TODO: fill in remaining #TODO check for places were we could use log scaling @@ -203,7 +203,7 @@ def get_TheilSenRegressor_ConfigurationSpace(random_state): def get_Perceptron_ConfigurationSpace(random_state): space = { - 'penalty': Categorical("penalty", [NONE_SPECIAL_STRING, 'l2', 'l1', 'elasticnet']), + 'penalty': Categorical("penalty", [None, 'l2', 'l1', 'elasticnet']), 'alpha': Float("alpha", bounds=(1e-5, 1e-1), log=True), 'l1_ratio': Float("l1_ratio", bounds=(0.0, 1.0)), 'learning_rate': Categorical("learning_rate", ['constant', 'optimal', 'invscaling']), @@ -399,7 +399,7 @@ def get_GradientBoostingRegressor_ConfigurationSpace(random_state): 'subsample': Float("subsample", bounds=(0.1, 1.0)), 'max_features': Float("max_features", bounds=(0.01, 1.00)), 'max_leaf_nodes': Integer("max_leaf_nodes", bounds=(3, 2047)), - 'max_depth':NONE_SPECIAL_STRING, #'max_depth': Integer("max_depth", bounds=(1, 2*n_features)), + 'max_depth':None, #'max_depth': Integer("max_depth", bounds=(1, 2*n_features)), 'tol': 1e-4, } @@ -468,7 +468,7 @@ def get_HistGradientBoostingRegressor_ConfigurationSpace(random_state): 'min_samples_leaf': Integer("min_samples_leaf", bounds=(1, 200)), 'max_features': Float("max_features", bounds=(0.1,1.0)), 'max_leaf_nodes': Integer("max_leaf_nodes", bounds=(3, 2047)), - 'max_depth':NONE_SPECIAL_STRING, #'max_depth': Integer("max_depth", bounds=(1, 2*n_features)), + 'max_depth':None, #'max_depth': Integer("max_depth", bounds=(1, 2*n_features)), 'l2_regularization': Float("l2_regularization", bounds=(1e-10, 1), log=True), 'tol': 1e-4, } diff --git a/tpot2/old_config_utils/old_config_utils.py b/tpot2/old_config_utils/old_config_utils.py index efd1cc4f..ccd2b360 100644 --- a/tpot2/old_config_utils/old_config_utils.py +++ b/tpot2/old_config_utils/old_config_utils.py @@ -1,7 +1,7 @@ from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal from ConfigSpace import EqualsCondition, OrConjunction, NotEqualsCondition, InCondition -from ..search_spaces.nodes.estimator_node import NONE_SPECIAL_STRING, TRUE_SPECIAL_STRING, FALSE_SPECIAL_STRING + from ..search_spaces.nodes import EstimatorNode from ..search_spaces.pipelines import WrapperPipeline, ChoicePipeline, GraphSearchPipeline import ConfigSpace @@ -63,7 +63,7 @@ def get_node_space(module_string, params): for param_name, param in params.items(): if param is None: - config_space.add_hyperparameter(Categorical(param_name, [NONE_SPECIAL_STRING])) + config_space.add(Categorical(param_name, [None])) if isinstance(param, range): param = list(param) @@ -71,11 +71,6 @@ def get_node_space(module_string, params): if isinstance(param, list) or isinstance(param, np.ndarray): if len(param) == 0: p = param[0] - if p is None: - p = NONE_SPECIAL_STRING - elif type(p) == bool: - p = TRUE_SPECIAL_STRING if p else FALSE_SPECIAL_STRING - config_space.add(ConfigSpace.hyperparameters.Constant(param_name, p)) else: config_space.add(Categorical(param_name, param)) diff --git a/tpot2/search_spaces/nodes/estimator_node.py b/tpot2/search_spaces/nodes/estimator_node.py index 215537da..b126655f 100644 --- a/tpot2/search_spaces/nodes/estimator_node.py +++ b/tpot2/search_spaces/nodes/estimator_node.py @@ -5,10 +5,6 @@ from ConfigSpace import ConfigurationSpace from typing import final -NONE_SPECIAL_STRING = "" -TRUE_SPECIAL_STRING = "" -FALSE_SPECIAL_STRING = "" - def default_hyperparameter_parser(params:dict) -> dict: return params @@ -47,8 +43,6 @@ def __init__(self, method: type, self.space.seed(rng.integers(0, 2**32)) self.hyperparameters = dict(self.space.sample_configuration()) - self.check_hyperparameters_for_None() - def mutate(self, rng=None): if isinstance(self.space, dict): return False @@ -56,8 +50,6 @@ def mutate(self, rng=None): rng = np.random.default_rng(rng) self.space.seed(rng.integers(0, 2**32)) self.hyperparameters = dict(self.space.sample_configuration()) - - self.check_hyperparameters_for_None() return True def crossover(self, other, rng=None): @@ -74,20 +66,9 @@ def crossover(self, other, rng=None): if hyperparameter in other.hyperparameters: self.hyperparameters[hyperparameter] = other.hyperparameters[hyperparameter] - self.check_hyperparameters_for_None() - return True - def check_hyperparameters_for_None(self): - for key, value in self.hyperparameters.items(): - #if string - if isinstance(value, str): - if value == NONE_SPECIAL_STRING: - self.hyperparameters[key] = None - elif value == TRUE_SPECIAL_STRING: - self.hyperparameters[key] = True - elif value == FALSE_SPECIAL_STRING: - self.hyperparameters[key] = False + @final #this method should not be overridden, instead override hyperparameter_parser def export_pipeline(self, **kwargs): diff --git a/tpot2/search_spaces/nodes/estimator_node_gradual.py b/tpot2/search_spaces/nodes/estimator_node_gradual.py index f4e8e03b..598976f7 100644 --- a/tpot2/search_spaces/nodes/estimator_node_gradual.py +++ b/tpot2/search_spaces/nodes/estimator_node_gradual.py @@ -6,12 +6,6 @@ from typing import final import ConfigSpace - -NONE_SPECIAL_STRING = "" -TRUE_SPECIAL_STRING = "" -FALSE_SPECIAL_STRING = "" - - def default_hyperparameter_parser(params:dict) -> dict: return params @@ -50,13 +44,10 @@ def __init__(self, method: type, self.space.seed(rng.integers(0, 2**32)) self.hyperparameters = dict(self.space.sample_configuration()) - self.check_hyperparameters_for_None() - def mutate(self, rng=None): if isinstance(self.space, dict): return False self.hyperparameters = gradual_hyperparameter_update(params=self.hyperparameters, configspace=self.space, rng=rng) - self.check_hyperparameters_for_None() return True def crossover(self, other, rng=None): @@ -73,20 +64,8 @@ def crossover(self, other, rng=None): if hyperparameter in other.hyperparameters: self.hyperparameters[hyperparameter] = other.hyperparameters[hyperparameter] - self.check_hyperparameters_for_None() - return True - def check_hyperparameters_for_None(self): - for key, value in self.hyperparameters.items(): - #if string - if isinstance(value, str): - if value == NONE_SPECIAL_STRING: - self.hyperparameters[key] = None - elif value == TRUE_SPECIAL_STRING: - self.hyperparameters[key] = True - elif value == FALSE_SPECIAL_STRING: - self.hyperparameters[key] = False @final #this method should not be overridden, instead override hyperparameter_parser def export_pipeline(self, **kwargs): diff --git a/tpot2/search_spaces/pipelines/wrapper.py b/tpot2/search_spaces/pipelines/wrapper.py index 0ea35019..660326e6 100644 --- a/tpot2/search_spaces/pipelines/wrapper.py +++ b/tpot2/search_spaces/pipelines/wrapper.py @@ -9,10 +9,6 @@ from ConfigSpace import ConfigurationSpace from ..tuple_index import TupleIndex -NONE_SPECIAL_STRING = "" -TRUE_SPECIAL_STRING = "" -FALSE_SPECIAL_STRING = "" - class WrapperPipelineIndividual(SklearnIndividual): def __init__( @@ -41,8 +37,6 @@ def __init__( self.space.seed(rng.integers(0, 2**32)) self.hyperparameters = dict(self.space.sample_configuration()) - self.check_hyperparameters_for_None() - def mutate(self, rng=None): rng = np.random.default_rng(rng) if rng.choice([True, False]): @@ -56,7 +50,6 @@ def _mutate_hyperparameters(self, rng=None): rng = np.random.default_rng(rng) self.space.seed(rng.integers(0, 2**32)) self.hyperparameters = dict(self.space.sample_configuration()) - self.check_hyperparameters_for_None() return True def _mutate_node(self, rng=None): @@ -84,21 +77,8 @@ def _crossover_hyperparameters(self, other, rng=None): if hyperparameter in other.hyperparameters: self.hyperparameters[hyperparameter] = other.hyperparameters[hyperparameter] - self.check_hyperparameters_for_None() - return True - def check_hyperparameters_for_None(self): - for key, value in self.hyperparameters.items(): - #if string - if isinstance(value, str): - if value == NONE_SPECIAL_STRING: - self.hyperparameters[key] = None - elif value == TRUE_SPECIAL_STRING: - self.hyperparameters[key] = True - elif value == FALSE_SPECIAL_STRING: - self.hyperparameters[key] = False - def export_pipeline(self, **kwargs): From 698dd761f87fa39f27bdda98d368f631a21762c4 Mon Sep 17 00:00:00 2001 From: perib Date: Tue, 8 Oct 2024 11:37:46 -0700 Subject: [PATCH 2/9] edit old config space converter --- tpot2/old_config_utils/__init__.py | 2 +- tpot2/old_config_utils/old_config_utils.py | 49 +++++++++++++++++++++- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/tpot2/old_config_utils/__init__.py b/tpot2/old_config_utils/__init__.py index e61b81fc..f4ca3dea 100644 --- a/tpot2/old_config_utils/__init__.py +++ b/tpot2/old_config_utils/__init__.py @@ -1 +1 @@ -from .old_config_utils import convert_config_dict_to_list, convert_config_dict_to_choicepipeline, convert_config_dict_to_graphpipeline \ No newline at end of file +from .old_config_utils import convert_config_dict_to_list, convert_config_dict_to_choicepipeline, convert_config_dict_to_graphpipeline, convert_config_dict_to_linearpipeline \ No newline at end of file diff --git a/tpot2/old_config_utils/old_config_utils.py b/tpot2/old_config_utils/old_config_utils.py index ccd2b360..049bebc3 100644 --- a/tpot2/old_config_utils/old_config_utils.py +++ b/tpot2/old_config_utils/old_config_utils.py @@ -3,7 +3,7 @@ from ConfigSpace import EqualsCondition, OrConjunction, NotEqualsCondition, InCondition from ..search_spaces.nodes import EstimatorNode -from ..search_spaces.pipelines import WrapperPipeline, ChoicePipeline, GraphSearchPipeline +from ..search_spaces.pipelines import WrapperPipeline, ChoicePipeline, GraphSearchPipeline, SequentialPipeline, DynamicLinearPipeline import ConfigSpace import sklearn from functools import partial @@ -69,7 +69,7 @@ def get_node_space(module_string, params): param = list(param) if isinstance(param, list) or isinstance(param, np.ndarray): - if len(param) == 0: + if len(param) == 1: p = param[0] config_space.add(ConfigSpace.hyperparameters.Constant(param_name, p)) else: @@ -203,4 +203,49 @@ def convert_config_dict_to_graphpipeline(config_dict): inner_space = ChoicePipeline(inner_search_spaces) final_space = GraphSearchPipeline(root_search_space=root_space, inner_search_space=inner_space) + return final_space + + +#Note doesn't convert estimators so they passthrough inputs like in TPOT1 +def convert_config_dict_to_linearpipeline(config_dict): + """ + Takes in a TPOT2 config dictionary and returns a GraphSearchPipeline search space that represents the config_dict. + This space will sample from all included modules in the config_dict. It will also identify classifiers/regressors to set the search space for the root node. + + Note doesn't convert estimators so they passthrough inputs like in TPOT1 + Parameters + ---------- + config_dict : dict + The dictionary representation of the TPOT2 config. + + Returns + ------- + GraphSearchPipeline + A GraphSearchPipeline search space that represents the config_dict. + """ + root_search_spaces = [] + inner_search_spaces = [] + + for key, value in config_dict.items(): + #if root + if issubclass(load_get_module_from_string(key), sklearn.base.ClassifierMixin) or issubclass(load_get_module_from_string(key), sklearn.base.RegressorMixin): + root_search_spaces.append(get_node_space(key, value)) + else: + inner_search_spaces.append(get_node_space(key, value)) + + if len(root_search_spaces) == 0: + Warning("No classifiers or regressors found, allowing any estimator to be the root node") + root_search_spaces = inner_search_spaces + + #merge inner and root search spaces + + inner_space = np.concatenate([root_search_spaces,inner_search_spaces]) + + root_space = ChoicePipeline(root_search_spaces) + inner_space = ChoicePipeline(inner_search_spaces) + + final_space = SequentialPipeline([ + DynamicLinearPipeline(inner_space, 10), + root_space + ]) return final_space \ No newline at end of file From fe68ae6d06d817c639d2ae39750f027d054c64c5 Mon Sep 17 00:00:00 2001 From: perib Date: Tue, 8 Oct 2024 21:05:00 -0700 Subject: [PATCH 3/9] add import --- tpot2/config/get_configspace.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tpot2/config/get_configspace.py b/tpot2/config/get_configspace.py index 22a3bf5e..2cf297dc 100644 --- a/tpot2/config/get_configspace.py +++ b/tpot2/config/get_configspace.py @@ -48,6 +48,8 @@ from sklearn.gaussian_process import GaussianProcessRegressor, GaussianProcessClassifier from sklearn.experimental import enable_iterative_imputer from sklearn.impute import SimpleImputer, IterativeImputer, KNNImputer +import sklearn.calibration + all_methods = [SGDClassifier, RandomForestClassifier, ExtraTreesClassifier, GradientBoostingClassifier, MLPClassifier, DecisionTreeClassifier, XGBClassifier, KNeighborsClassifier, SVC, LogisticRegression, LGBMClassifier, LinearSVC, GaussianNB, BernoulliNB, MultinomialNB, ExtraTreesRegressor, RandomForestRegressor, GradientBoostingRegressor, BaggingRegressor, DecisionTreeRegressor, KNeighborsRegressor, XGBRegressor, ZeroCount, ColumnOneHotEncoder, Binarizer, FastICA, FeatureAgglomeration, MaxAbsScaler, MinMaxScaler, Normalizer, Nystroem, PCA, PolynomialFeatures, RBFSampler, RobustScaler, StandardScaler, SelectFwe, SelectPercentile, VarianceThreshold, SGDRegressor, Ridge, Lasso, ElasticNet, Lars, LassoLars, LassoLarsCV, RidgeCV, SVR, LinearSVR, AdaBoostRegressor, GradientBoostingRegressor, RandomForestRegressor, BaggingRegressor, ExtraTreesRegressor, DecisionTreeRegressor, KNeighborsRegressor, ElasticNetCV, AdaBoostClassifier,MLPRegressor, From ddd077b4bb9ce63160b5703d72e2c799aaa5eea6 Mon Sep 17 00:00:00 2001 From: perib Date: Wed, 9 Oct 2024 16:35:10 -0700 Subject: [PATCH 4/9] removed svc/svr from default spaces because they are extremely slow --- tpot2/config/get_configspace.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tpot2/config/get_configspace.py b/tpot2/config/get_configspace.py index 2cf297dc..9b03718b 100644 --- a/tpot2/config/get_configspace.py +++ b/tpot2/config/get_configspace.py @@ -120,8 +120,8 @@ "selectors": ["SelectFwe", "SelectPercentile", "VarianceThreshold",], "selectors_classification": ["SelectFwe", "SelectPercentile", "VarianceThreshold", "RFE_classification", "SelectFromModel_classification"], "selectors_regression": ["SelectFwe", "SelectPercentile", "VarianceThreshold", "RFE_regression", "SelectFromModel_regression"], - "classifiers" : ["LGBMClassifier", "BaggingClassifier", 'AdaBoostClassifier', 'BernoulliNB', 'DecisionTreeClassifier', 'ExtraTreesClassifier', 'GaussianNB', 'HistGradientBoostingClassifier', 'KNeighborsClassifier','LinearDiscriminantAnalysis', 'LogisticRegression', "LinearSVC_wrapped", "SVC", 'MLPClassifier', 'MultinomialNB', "QuadraticDiscriminantAnalysis", 'RandomForestClassifier', 'SGDClassifier', 'XGBClassifier'], - "regressors" : ["LGBMRegressor", 'AdaBoostRegressor', "ARDRegression", 'DecisionTreeRegressor', 'ExtraTreesRegressor', 'HistGradientBoostingRegressor', 'KNeighborsRegressor', 'LinearSVR', "MLPRegressor", 'RandomForestRegressor', 'SGDRegressor', 'SVR', 'XGBRegressor'], + "classifiers" : ["LGBMClassifier", "BaggingClassifier", 'AdaBoostClassifier', 'BernoulliNB', 'DecisionTreeClassifier', 'ExtraTreesClassifier', 'GaussianNB', 'HistGradientBoostingClassifier', 'KNeighborsClassifier','LinearDiscriminantAnalysis', 'LogisticRegression', 'MLPClassifier', 'MultinomialNB', "QuadraticDiscriminantAnalysis", 'RandomForestClassifier', 'SGDClassifier', 'XGBClassifier'], + "regressors" : ["LGBMRegressor", 'AdaBoostRegressor', "ARDRegression", 'DecisionTreeRegressor', 'ExtraTreesRegressor', 'HistGradientBoostingRegressor', 'KNeighborsRegressor', 'LinearSVR', "MLPRegressor", 'RandomForestRegressor', 'SGDRegressor', 'XGBRegressor'], "transformers": ["KBinsDiscretizer", "Binarizer", "PCA", "ZeroCount", "ColumnOneHotEncoder", "FastICA", "FeatureAgglomeration", "Nystroem", "RBFSampler", "QuantileTransformer", "PowerTransformer"], From 29c27bd742413815118a4d541abbf15f791fdf08 Mon Sep 17 00:00:00 2001 From: perib Date: Thu, 10 Oct 2024 10:37:49 -0700 Subject: [PATCH 5/9] added upper limit to number of nodes in default graph search space --- tpot2/config/template_search_spaces.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tpot2/config/template_search_spaces.py b/tpot2/config/template_search_spaces.py index f92044f1..759c296d 100644 --- a/tpot2/config/template_search_spaces.py +++ b/tpot2/config/template_search_spaces.py @@ -83,6 +83,7 @@ def get_graph_search_space(classification=True, inner_predictors=True, cross_val leaf_search_space = None, inner_search_space = inner_search_space, cross_val_predict_cv=cross_val_predict_cv, + max_size=15, ) return search_space @@ -113,6 +114,7 @@ def get_graph_search_space_light(classification=True, inner_predictors=True, cro leaf_search_space = None, inner_search_space = inner_search_space, cross_val_predict_cv=cross_val_predict_cv, + max_size=15, ) return search_space From d5dd1eb7a7064e178f30e016fe7336d2305c7ee2 Mon Sep 17 00:00:00 2001 From: perib Date: Fri, 11 Oct 2024 10:07:07 -0700 Subject: [PATCH 6/9] update get_configspace so that group names are flattened and individual modules have equal probability --- tpot2/config/get_configspace.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/tpot2/config/get_configspace.py b/tpot2/config/get_configspace.py index 9b03718b..6e2fb733 100644 --- a/tpot2/config/get_configspace.py +++ b/tpot2/config/get_configspace.py @@ -436,6 +436,22 @@ def get_configspace(name, n_classes=3, n_samples=1000, n_features=100, random_st #raise error raise ValueError(f"Could not find configspace for {name}") +def flatten_group_names(name): + #if string + if isinstance(name, str): + if name in GROUPNAMES: + return flatten_group_names(GROUPNAMES[name]) + else: + return name + + flattened_list = [] + for key in name: + if key in GROUPNAMES: + flattened_list.extend(flatten_group_names(GROUPNAMES[key])) + else: + flattened_list.append(key) + + return flattened_list def get_search_space(name, n_classes=3, n_samples=1000, n_features=100, random_state=None, return_choice_pipeline=True, base_node=EstimatorNode): """ @@ -471,6 +487,7 @@ def get_search_space(name, n_classes=3, n_samples=1000, n_features=100, random_s Note: for some special cases with methods using wrapped estimators, the returned search space is a TPOT2.search_spaces.pipelines.WrapperPipeline object. """ + name = flatten_group_names(name) #if list of names, return a list of EstimatorNodes if isinstance(name, list) or isinstance(name, np.ndarray): @@ -483,9 +500,9 @@ def get_search_space(name, n_classes=3, n_samples=1000, n_features=100, random_s else: return np.hstack(search_spaces) - if name in GROUPNAMES: - name_list = GROUPNAMES[name] - return get_search_space(name_list, n_classes=n_classes, n_samples=n_samples, n_features=n_features, random_state=random_state, return_choice_pipeline=return_choice_pipeline, base_node=base_node) + # if name in GROUPNAMES: + # name_list = GROUPNAMES[name] + # return get_search_space(name_list, n_classes=n_classes, n_samples=n_samples, n_features=n_features, random_state=random_state, return_choice_pipeline=return_choice_pipeline, base_node=base_node) return get_node(name, n_classes=n_classes, n_samples=n_samples, n_features=n_features, random_state=random_state, base_node=base_node) From d8137b8119a8e913f7d2e210675865a165f1801d Mon Sep 17 00:00:00 2001 From: perib Date: Mon, 14 Oct 2024 14:59:05 -0700 Subject: [PATCH 7/9] added n_jobs option to get_configspace --- tpot2/config/classifiers.py | 31 ++++----- tpot2/config/classifiers_sklearnex.py | 4 +- tpot2/config/get_configspace.py | 97 ++++++++++++++------------- tpot2/config/regressors.py | 24 ++++--- 4 files changed, 84 insertions(+), 72 deletions(-) diff --git a/tpot2/config/classifiers.py b/tpot2/config/classifiers.py index f612035b..deacd634 100644 --- a/tpot2/config/classifiers.py +++ b/tpot2/config/classifiers.py @@ -6,13 +6,13 @@ import sklearn -def get_LogisticRegression_ConfigurationSpace(random_state): +def get_LogisticRegression_ConfigurationSpace(random_state, n_jobs=1): dual = False space = {"solver":"saga", "max_iter":1000, - "n_jobs":1, + "n_jobs":n_jobs, "dual":dual, } @@ -34,7 +34,7 @@ def get_LogisticRegression_ConfigurationSpace(random_state): return cs -def get_KNeighborsClassifier_ConfigurationSpace(n_samples): +def get_KNeighborsClassifier_ConfigurationSpace(n_samples, n_jobs=1): return ConfigurationSpace( space = { @@ -42,18 +42,18 @@ def get_KNeighborsClassifier_ConfigurationSpace(n_samples): 'n_neighbors': Integer("n_neighbors", bounds=(1, min(100,n_samples)), log=True), 'weights': Categorical("weights", ['uniform', 'distance']), 'p': Integer("p", bounds=(1, 3)), - 'n_jobs': 1, + 'n_jobs': n_jobs, } ) -def get_BaggingClassifier_ConfigurationSpace(random_state): +def get_BaggingClassifier_ConfigurationSpace(random_state, n_jobs=1): space = { 'n_estimators': Integer("n_estimators", bounds=(3, 100)), 'max_samples': Float("max_samples", bounds=(0.1, 1.0)), 'max_features': Float("max_features", bounds=(0.1, 1.0)), 'bootstrap_features': Categorical("bootstrap_features", [True, False]), - 'n_jobs': 1, + 'n_jobs': n_jobs, } if random_state is not None: #This is required because configspace doesn't allow None as a value @@ -142,7 +142,7 @@ def get_SVC_ConfigurationSpace(random_state): return cs -def get_RandomForestClassifier_ConfigurationSpace( random_state): +def get_RandomForestClassifier_ConfigurationSpace( random_state, n_jobs=1): space = { 'n_estimators': 128, #as recommended by Oshiro et al. (2012 'max_features': Float("max_features", bounds=(0.01,1), log=True), #log scale like autosklearn? @@ -151,6 +151,7 @@ def get_RandomForestClassifier_ConfigurationSpace( random_state): 'min_samples_leaf': Integer("min_samples_leaf", bounds=(1, 20)), 'bootstrap': Categorical("bootstrap", [True, False]), 'class_weight': Categorical("class_weight", [None, 'balanced']), + 'n_jobs': n_jobs, } if random_state is not None: #This is required because configspace doesn't allow None as a value @@ -161,7 +162,7 @@ def get_RandomForestClassifier_ConfigurationSpace( random_state): ) -def get_XGBClassifier_ConfigurationSpace(random_state,): +def get_XGBClassifier_ConfigurationSpace(random_state, n_jobs=1): space = { 'n_estimators': 100, @@ -172,7 +173,7 @@ def get_XGBClassifier_ConfigurationSpace(random_state,): 'max_depth': Integer("max_depth", bounds=(3, 18)), 'reg_alpha': Float("reg_alpha", bounds=(1e-4, 100), log=True), 'reg_lambda': Float("reg_lambda", bounds=(1e-4, 1), log=True), - 'n_jobs': 1, + 'n_jobs': n_jobs, 'nthread': 1, 'verbosity': 0, } @@ -184,7 +185,7 @@ def get_XGBClassifier_ConfigurationSpace(random_state,): space = space ) -def get_LGBMClassifier_ConfigurationSpace(random_state,): +def get_LGBMClassifier_ConfigurationSpace(random_state, n_jobs=1): space = { 'boosting_type': Categorical("boosting_type", ['gbdt', 'dart', 'goss']), @@ -193,7 +194,7 @@ def get_LGBMClassifier_ConfigurationSpace(random_state,): 'n_estimators': Integer("n_estimators", bounds=(10, 100)), 'class_weight': Categorical("class_weight", [None, 'balanced']), 'verbose':-1, - 'n_jobs': 1, + 'n_jobs': n_jobs, } if random_state is not None: #This is required because configspace doesn't allow None as a value @@ -204,7 +205,7 @@ def get_LGBMClassifier_ConfigurationSpace(random_state,): ) -def get_ExtraTreesClassifier_ConfigurationSpace(random_state): +def get_ExtraTreesClassifier_ConfigurationSpace(random_state, n_jobs=1): space = { 'n_estimators': 100, 'criterion': Categorical("criterion", ["gini", "entropy"]), @@ -213,7 +214,7 @@ def get_ExtraTreesClassifier_ConfigurationSpace(random_state): 'min_samples_leaf': Integer("min_samples_leaf", bounds=(1, 20)), 'bootstrap': Categorical("bootstrap", [True, False]), 'class_weight': Categorical("class_weight", [None, 'balanced']), - 'n_jobs': 1, + 'n_jobs': n_jobs, } if random_state is not None: #This is required because configspace doesn't allow None as a value @@ -225,7 +226,7 @@ def get_ExtraTreesClassifier_ConfigurationSpace(random_state): -def get_SGDClassifier_ConfigurationSpace(random_state): +def get_SGDClassifier_ConfigurationSpace(random_state, n_jobs=1): space = { 'loss': Categorical("loss", ['modified_huber']), #don't include hinge because we have LinearSVC, don't include log because we have LogisticRegression. TODO 'squared_hinge'? doesn't support predict proba @@ -233,7 +234,7 @@ def get_SGDClassifier_ConfigurationSpace(random_state): 'alpha': Float("alpha", bounds=(1e-5, 0.01), log=True), 'l1_ratio': Float("l1_ratio", bounds=(0.0, 1.0)), 'eta0': Float("eta0", bounds=(0.01, 1.0)), - 'n_jobs': 1, + 'n_jobs': n_jobs, 'fit_intercept': Categorical("fit_intercept", [True]), 'class_weight': Categorical("class_weight", [None, 'balanced']), } diff --git a/tpot2/config/classifiers_sklearnex.py b/tpot2/config/classifiers_sklearnex.py index ec1c7421..4a344723 100644 --- a/tpot2/config/classifiers_sklearnex.py +++ b/tpot2/config/classifiers_sklearnex.py @@ -2,13 +2,13 @@ from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal -def get_RandomForestClassifier_ConfigurationSpace(random_state): +def get_RandomForestClassifier_ConfigurationSpace(random_state, n_jobs=1): space = { 'n_estimators': 100, #TODO make this a higher number? learned? 'bootstrap': Categorical("bootstrap", [True, False]), 'min_samples_split': Integer("min_samples_split", bounds=(2, 20)), 'min_samples_leaf': Integer("min_samples_leaf", bounds=(1, 20)), - 'n_jobs': 1, + 'n_jobs': n_jobs, } diff --git a/tpot2/config/get_configspace.py b/tpot2/config/get_configspace.py index 6e2fb733..b38fb967 100644 --- a/tpot2/config/get_configspace.py +++ b/tpot2/config/get_configspace.py @@ -141,7 +141,7 @@ -def get_configspace(name, n_classes=3, n_samples=1000, n_features=100, random_state=None): +def get_configspace(name, n_classes=3, n_samples=1000, n_features=100, random_state=None, n_jobs=1): """ This function returns the ConfigSpace.ConfigurationSpace with the hyperparameter ranges for the given scikit-learn method. It also uses the n_classes, n_samples, n_features, and random_state to set the @@ -161,6 +161,9 @@ def get_configspace(name, n_classes=3, n_samples=1000, n_features=100, random_st The random_state to use in the ConfigurationSpace. Default is None. If None, the random_state hyperparameter is not included in the ConfigurationSpace. Use this to set the random state for the individual methods if you want to ensure reproducibility. + n_jobs : int (default=1) + Sets the n_jobs parameter for estimators that have it. Default is 1. + """ match name: @@ -189,9 +192,9 @@ def get_configspace(name, n_classes=3, n_samples=1000, n_features=100, random_st case "AdaBoostClassifier": return classifiers.get_AdaBoostClassifier_ConfigurationSpace(random_state=random_state) case "LogisticRegression": - return classifiers.get_LogisticRegression_ConfigurationSpace(random_state=random_state) + return classifiers.get_LogisticRegression_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "KNeighborsClassifier": - return classifiers.get_KNeighborsClassifier_ConfigurationSpace(n_samples=n_samples) + return classifiers.get_KNeighborsClassifier_ConfigurationSpace(n_samples=n_samples, n_jobs=n_jobs) case "DecisionTreeClassifier": return classifiers.get_DecisionTreeClassifier_ConfigurationSpace(n_featues=n_features, random_state=random_state) case "SVC": @@ -199,19 +202,19 @@ def get_configspace(name, n_classes=3, n_samples=1000, n_features=100, random_st case "LinearSVC": return classifiers.get_LinearSVC_ConfigurationSpace(random_state=random_state) case "RandomForestClassifier": - return classifiers.get_RandomForestClassifier_ConfigurationSpace(random_state=random_state) + return classifiers.get_RandomForestClassifier_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "GradientBoostingClassifier": return classifiers.get_GradientBoostingClassifier_ConfigurationSpace(n_classes=n_classes, random_state=random_state) case "HistGradientBoostingClassifier": return classifiers.get_HistGradientBoostingClassifier_ConfigurationSpace(random_state=random_state) case "XGBClassifier": - return classifiers.get_XGBClassifier_ConfigurationSpace(random_state=random_state) + return classifiers.get_XGBClassifier_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "LGBMClassifier": - return classifiers.get_LGBMClassifier_ConfigurationSpace(random_state=random_state) + return classifiers.get_LGBMClassifier_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "ExtraTreesClassifier": - return classifiers.get_ExtraTreesClassifier_ConfigurationSpace(random_state=random_state) + return classifiers.get_ExtraTreesClassifier_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "SGDClassifier": - return classifiers.get_SGDClassifier_ConfigurationSpace(random_state=random_state) + return classifiers.get_SGDClassifier_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "MLPClassifier": return classifiers.get_MLPClassifier_ConfigurationSpace(random_state=random_state) case "BernoulliNB": @@ -233,11 +236,11 @@ def get_configspace(name, n_classes=3, n_samples=1000, n_features=100, random_st case "GaussianProcessClassifier": return classifiers.get_GaussianProcessClassifier_ConfigurationSpace(n_features=n_features, random_state=random_state) case "BaggingClassifier": - return classifiers.get_BaggingClassifier_ConfigurationSpace(random_state=random_state) + return classifiers.get_BaggingClassifier_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) #regressors.py case "RandomForestRegressor": - return regressors.get_RandomForestRegressor_ConfigurationSpace(random_state=random_state) + return regressors.get_RandomForestRegressor_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "SGDRegressor": return regressors.get_SGDRegressor_ConfigurationSpace(random_state=random_state) case "Ridge": @@ -269,11 +272,11 @@ def get_configspace(name, n_classes=3, n_samples=1000, n_features=100, random_st case "SVR": return regressors.get_SVR_ConfigurationSpace() case "XGBRegressor": - return regressors.get_XGBRegressor_ConfigurationSpace(random_state=random_state) + return regressors.get_XGBRegressor_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "AdaBoostRegressor": return regressors.get_AdaBoostRegressor_ConfigurationSpace(random_state=random_state) case "ExtraTreesRegressor": - return regressors.get_ExtraTreesRegressor_ConfigurationSpace(random_state=random_state) + return regressors.get_ExtraTreesRegressor_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "GradientBoostingRegressor": return regressors.get_GradientBoostingRegressor_ConfigurationSpace(random_state=random_state) case "HistGradientBoostingRegressor": @@ -281,13 +284,13 @@ def get_configspace(name, n_classes=3, n_samples=1000, n_features=100, random_st case "MLPRegressor": return regressors.get_MLPRegressor_ConfigurationSpace(random_state=random_state) case "KNeighborsRegressor": - return regressors.get_KNeighborsRegressor_ConfigurationSpace(n_samples=n_samples) + return regressors.get_KNeighborsRegressor_ConfigurationSpace(n_samples=n_samples, n_jobs=n_jobs) case "GaussianProcessRegressor": return regressors.get_GaussianProcessRegressor_ConfigurationSpace(n_features=n_features, random_state=random_state) case "LGBMRegressor": - return regressors.get_LGBMRegressor_ConfigurationSpace(random_state=random_state) + return regressors.get_LGBMRegressor_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "BaggingRegressor": - return regressors.get_BaggingRegressor_ConfigurationSpace(random_state=random_state) + return regressors.get_BaggingRegressor_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) #transformers.py case "Binarizer": @@ -405,7 +408,7 @@ def get_configspace(name, n_classes=3, n_samples=1000, n_features=100, random_st #classifiers_sklearnex.py case "RandomForestClassifier_sklearnex": - return classifiers_sklearnex.get_RandomForestClassifier_ConfigurationSpace(random_state=random_state) + return classifiers_sklearnex.get_RandomForestClassifier_ConfigurationSpace(random_state=random_state, n_jobs=n_jobs) case "LogisticRegression_sklearnex": return classifiers_sklearnex.get_LogisticRegression_ConfigurationSpace(random_state=random_state) case "KNeighborsClassifier_sklearnex": @@ -453,7 +456,7 @@ def flatten_group_names(name): return flattened_list -def get_search_space(name, n_classes=3, n_samples=1000, n_features=100, random_state=None, return_choice_pipeline=True, base_node=EstimatorNode): +def get_search_space(name, n_classes=3, n_samples=1000, n_features=100, random_state=None, return_choice_pipeline=True, base_node=EstimatorNode, n_jobs=1): """ Returns a TPOT search space for a given scikit-learn method or group of methods. @@ -477,7 +480,9 @@ def get_search_space(name, n_classes=3, n_samples=1000, n_features=100, random_s If True, returns a single TPOT2.search_spaces.pipelines.ChoicePipeline that includes and samples from all EstimatorNodes. base_node: TPOT2.search_spaces.base.SearchSpace (default=TPOT2.search_spaces.nodes.EstimatorNode) The SearchSpace to pass the configuration space to. If you want to experiment with custom mutation/crossover operators, you can pass a custom SearchSpace node here. - + n_jobs : int (default=1) + Sets the n_jobs parameter for estimators that have it. Default is 1. + Returns ------- Returns an SearchSpace object that can be optimized by TPOT. @@ -491,7 +496,7 @@ def get_search_space(name, n_classes=3, n_samples=1000, n_features=100, random_s #if list of names, return a list of EstimatorNodes if isinstance(name, list) or isinstance(name, np.ndarray): - search_spaces = [get_search_space(n, n_classes=n_classes, n_samples=n_samples, n_features=n_features, random_state=random_state, return_choice_pipeline=False, base_node=base_node) for n in name] + search_spaces = [get_search_space(n, n_classes=n_classes, n_samples=n_samples, n_features=n_features, random_state=random_state, return_choice_pipeline=False, base_node=base_node, n_jobs=n_jobs) for n in name] #remove Nones search_spaces = [s for s in search_spaces if s is not None] @@ -504,10 +509,10 @@ def get_search_space(name, n_classes=3, n_samples=1000, n_features=100, random_s # name_list = GROUPNAMES[name] # return get_search_space(name_list, n_classes=n_classes, n_samples=n_samples, n_features=n_features, random_state=random_state, return_choice_pipeline=return_choice_pipeline, base_node=base_node) - return get_node(name, n_classes=n_classes, n_samples=n_samples, n_features=n_features, random_state=random_state, base_node=base_node) + return get_node(name, n_classes=n_classes, n_samples=n_samples, n_features=n_features, random_state=random_state, base_node=base_node, n_jobs=n_jobs) -def get_node(name, n_classes=3, n_samples=100, n_features=100, random_state=None, base_node=EstimatorNode): +def get_node(name, n_classes=3, n_samples=100, n_features=100, random_state=None, base_node=EstimatorNode, n_jobs=1): """ Helper function for get_search_space. Returns a single EstimatorNode for the given scikit-learn method. Also includes special cases for nodes that require custom parsing of the hyperparameters or methods that wrap other methods. @@ -532,7 +537,9 @@ def get_node(name, n_classes=3, n_samples=100, n_features=100, random_state=None If True, returns a single TPOT2.search_spaces.pipelines.ChoicePipeline that includes and samples from all EstimatorNodes. base_node: TPOT2.search_spaces.base.SearchSpace (default=TPOT2.search_spaces.nodes.EstimatorNode) The SearchSpace to pass the configuration space to. If you want to experiment with custom mutation/crossover operators, you can pass a custom SearchSpace node here. - + n_jobs : int (default=1) + Sets the n_jobs parameter for estimators that have it. Default is 1. + Returns ------- Returns an SearchSpace object that can be optimized by TPOT. @@ -543,66 +550,66 @@ def get_node(name, n_classes=3, n_samples=100, n_features=100, random_state=None """ if name == "LinearSVC_wrapped": - ext = get_node("LinearSVC", n_classes=n_classes, n_samples=n_samples, random_state=random_state) + ext = get_node("LinearSVC", n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return WrapperPipeline(estimator_search_space=ext, method=sklearn.calibration.CalibratedClassifierCV, space={}) if name == "RFE_classification": - rfe_sp = get_configspace(name="RFE", n_classes=n_classes, n_samples=n_samples, random_state=random_state) - ext = get_node("ExtraTreesClassifier", n_classes=n_classes, n_samples=n_samples, random_state=random_state) + rfe_sp = get_configspace(name="RFE", n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) + ext = get_node("ExtraTreesClassifier", n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return WrapperPipeline(estimator_search_space=ext, method=RFE, space=rfe_sp) if name == "RFE_regression": - rfe_sp = get_configspace(name="RFE", n_classes=n_classes, n_samples=n_samples, random_state=random_state) - ext = get_node("ExtraTreesRegressor", n_classes=n_classes, n_samples=n_samples, random_state=random_state) + rfe_sp = get_configspace(name="RFE", n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) + ext = get_node("ExtraTreesRegressor", n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return WrapperPipeline(estimator_search_space=ext, method=RFE, space=rfe_sp) if name == "SelectFromModel_classification": - sfm_sp = get_configspace(name="SelectFromModel", n_classes=n_classes, n_samples=n_samples, random_state=random_state) - ext = get_node("ExtraTreesClassifier", n_classes=n_classes, n_samples=n_samples, random_state=random_state) + sfm_sp = get_configspace(name="SelectFromModel", n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) + ext = get_node("ExtraTreesClassifier", n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return WrapperPipeline(estimator_search_space=ext, method=SelectFromModel, space=sfm_sp) if name == "SelectFromModel_regression": - sfm_sp = get_configspace(name="SelectFromModel", n_classes=n_classes, n_samples=n_samples, random_state=random_state) - ext = get_node("ExtraTreesRegressor", n_classes=n_classes, n_samples=n_samples, random_state=random_state) + sfm_sp = get_configspace(name="SelectFromModel", n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) + ext = get_node("ExtraTreesRegressor", n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return WrapperPipeline(estimator_search_space=ext, method=SelectFromModel, space=sfm_sp) # TODO Add IterativeImputer with more estimator methods if name == "IterativeImputer_learned_estimators": - iteative_sp = get_configspace(name="IterativeImputer_no_estimator", n_features=n_features, random_state=random_state) - regressor_searchspace = get_node("ExtraTreesRegressor", n_classes=n_classes, n_samples=n_samples, random_state=random_state) + iteative_sp = get_configspace(name="IterativeImputer_no_estimator", n_features=n_features, random_state=random_state, n_jobs=n_jobs) + regressor_searchspace = get_node("ExtraTreesRegressor", n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return WrapperPipeline(estimator_search_space=regressor_searchspace, method=IterativeImputer, space=iteative_sp) #these are nodes that have special search spaces which require custom parsing of the hyperparameters if name == "IterativeImputer": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return EstimatorNode(STRING_TO_CLASS[name], configspace, hyperparameter_parser=imputers.IterativeImputer_hyperparameter_parser) if name == "RobustScaler": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return base_node(STRING_TO_CLASS[name], configspace, hyperparameter_parser=transformers.robust_scaler_hyperparameter_parser) if name == "GradientBoostingClassifier": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return base_node(STRING_TO_CLASS[name], configspace, hyperparameter_parser=classifiers.GradientBoostingClassifier_hyperparameter_parser) if name == "HistGradientBoostingClassifier": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return base_node(STRING_TO_CLASS[name], configspace, hyperparameter_parser=classifiers.HistGradientBoostingClassifier_hyperparameter_parser) if name == "GradientBoostingRegressor": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return base_node(STRING_TO_CLASS[name], configspace, hyperparameter_parser=regressors.GradientBoostingRegressor_hyperparameter_parser) if name == "HistGradientBoostingRegressor": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return base_node(STRING_TO_CLASS[name], configspace, hyperparameter_parser=regressors.HistGradientBoostingRegressor_hyperparameter_parser) if name == "MLPClassifier": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return base_node(STRING_TO_CLASS[name], configspace, hyperparameter_parser=classifiers.MLPClassifier_hyperparameter_parser) if name == "MLPRegressor": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return base_node(STRING_TO_CLASS[name], configspace, hyperparameter_parser=regressors.MLPRegressor_hyperparameter_parser) if name == "GaussianProcessRegressor": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return base_node(STRING_TO_CLASS[name], configspace, hyperparameter_parser=regressors.GaussianProcessRegressor_hyperparameter_parser) if name == "GaussianProcessClassifier": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return base_node(STRING_TO_CLASS[name], configspace, hyperparameter_parser=classifiers.GaussianProcessClassifier_hyperparameter_parser) if name == "FeatureAgglomeration": - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, random_state=random_state, n_jobs=n_jobs) return base_node(STRING_TO_CLASS[name], configspace, hyperparameter_parser=transformers.FeatureAgglomeration_hyperparameter_parser) - configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, n_features=n_features, random_state=random_state) + configspace = get_configspace(name, n_classes=n_classes, n_samples=n_samples, n_features=n_features, random_state=random_state, n_jobs=n_jobs) if configspace is None: #raise warning warnings.warn(f"Could not find configspace for {name}") diff --git a/tpot2/config/regressors.py b/tpot2/config/regressors.py index 2a330fa5..e2c4b118 100644 --- a/tpot2/config/regressors.py +++ b/tpot2/config/regressors.py @@ -12,7 +12,7 @@ "l1_ratio" : np.arange(0.0, 1.01, 0.05), } -def get_RandomForestRegressor_ConfigurationSpace(random_state): +def get_RandomForestRegressor_ConfigurationSpace(random_state, n_jobs=1): space = { 'n_estimators': 100, 'criterion': Categorical("criterion", ['friedman_mse', 'poisson', 'absolute_error', 'squared_error']), @@ -20,6 +20,7 @@ def get_RandomForestRegressor_ConfigurationSpace(random_state): 'bootstrap': Categorical("bootstrap", [True, False]), 'min_samples_split': Integer("min_samples_split", bounds=(2, 21)), 'min_samples_leaf': Integer("min_samples_leaf", bounds=(1, 21)), + 'n_jobs': n_jobs, } if random_state is not None: #This is required because configspace doesn't allow None as a value @@ -235,12 +236,14 @@ def get_DecisionTreeRegressor_ConfigurationSpace(random_state): ) -def get_KNeighborsRegressor_ConfigurationSpace(n_samples): +def get_KNeighborsRegressor_ConfigurationSpace(n_samples, n_jobs=1): return ConfigurationSpace( space = { 'n_neighbors': Integer("n_neighbors", bounds=(1, min(100,n_samples))), 'weights': Categorical("weights", ['uniform', 'distance']), - 'p': Integer("p", bounds=(1, 3)), } + 'p': Integer("p", bounds=(1, 3)), + 'n_jobs': n_jobs, + } ) @@ -291,7 +294,7 @@ def get_SVR_ConfigurationSpace(): -def get_XGBRegressor_ConfigurationSpace(random_state): +def get_XGBRegressor_ConfigurationSpace(random_state, n_jobs=1): space = { 'n_estimators': 100, 'learning_rate': Float("learning_rate", bounds=(1e-3, 1), log=True), @@ -301,7 +304,7 @@ def get_XGBRegressor_ConfigurationSpace(random_state): 'max_depth': Integer("max_depth", bounds=(3, 18)), 'reg_alpha': Float("reg_alpha", bounds=(1e-4, 100), log=True), 'reg_lambda': Float("reg_lambda", bounds=(1e-4, 1), log=True), - 'n_jobs': 1, + 'n_jobs': n_jobs, 'nthread': 1, 'verbosity': 0, 'objective': 'reg:squarederror', @@ -331,7 +334,7 @@ def get_AdaBoostRegressor_ConfigurationSpace(random_state): space = space ) -def get_ExtraTreesRegressor_ConfigurationSpace(random_state): +def get_ExtraTreesRegressor_ConfigurationSpace(random_state, n_jobs=1): space = { 'n_estimators': 100, 'criterion': Categorical("criterion", ['friedman_mse', 'poisson', 'absolute_error', 'squared_error']), @@ -339,6 +342,7 @@ def get_ExtraTreesRegressor_ConfigurationSpace(random_state): 'min_samples_split': Integer("min_samples_split", bounds=(2, 21)), 'min_samples_leaf': Integer("min_samples_leaf", bounds=(1, 21)), 'bootstrap': Categorical("bootstrap", [True, False]), + 'n_jobs': n_jobs, } if random_state is not None: #This is required because configspace doesn't allow None as a value @@ -570,14 +574,14 @@ def MLPRegressor_hyperparameter_parser(params): return hyperparameters -def get_BaggingRegressor_ConfigurationSpace(random_state): +def get_BaggingRegressor_ConfigurationSpace(random_state, n_jobs=1): space = { 'n_estimators': Integer("n_estimators", bounds=(3, 100)), 'max_samples': Float("max_samples", bounds=(0.1, 1.0)), 'max_features': Float("max_features", bounds=(0.1, 1.0)), 'bootstrap_features': Categorical("bootstrap_features", [True, False]), - 'n_jobs': 1, + 'n_jobs': n_jobs, } if random_state is not None: #This is required because configspace doesn't allow None as a value @@ -597,7 +601,7 @@ def get_BaggingRegressor_ConfigurationSpace(random_state): return cs -def get_LGBMRegressor_ConfigurationSpace(random_state,): +def get_LGBMRegressor_ConfigurationSpace(random_state, n_jobs=1): space = { 'boosting_type': Categorical("boosting_type", ['gbdt', 'dart', 'goss']), @@ -605,7 +609,7 @@ def get_LGBMRegressor_ConfigurationSpace(random_state,): 'max_depth': Integer("max_depth", bounds=(1, 10)), 'n_estimators': Integer("n_estimators", bounds=(10, 100)), 'verbose':-1, - 'n_jobs': 1, + 'n_jobs': n_jobs, } if random_state is not None: #This is required because configspace doesn't allow None as a value From 03951ac4a790e83e19af1277dad5afa09d4f52cc Mon Sep 17 00:00:00 2001 From: perib Date: Thu, 17 Oct 2024 16:03:25 -0700 Subject: [PATCH 8/9] add license information --- README.md | 39 +++- tpot2/__init__.py | 34 ++++ tpot2/_version.py | 34 ++++ .../builtin_modules/arithmetictransformer.py | 34 ++++ .../builtin_modules/column_one_hot_encoder.py | 34 ++++ tpot2/builtin_modules/estimatortransformer.py | 34 ++++ tpot2/builtin_modules/feature_set_selector.py | 24 ++- tpot2/builtin_modules/feature_transformers.py | 21 +- tpot2/builtin_modules/imputer.py | 34 ++++ tpot2/builtin_modules/nn.py | 21 +- tpot2/builtin_modules/passkbinsdiscretizer.py | 34 ++++ tpot2/builtin_modules/passthrough.py | 34 ++++ .../tests/feature_set_selector_tests.py | 23 ++- tpot2/builtin_modules/tests/fss_tests.ipynb | 179 ------------------ tpot2/builtin_modules/zero_count.py | 23 ++- tpot2/config/__init__.py | 34 ++++ tpot2/config/autoqtl_builtins.py | 34 ++++ tpot2/config/classifiers.py | 34 ++++ tpot2/config/classifiers_sklearnex.py | 34 ++++ tpot2/config/get_configspace.py | 34 ++++ tpot2/config/imputers.py | 34 ++++ tpot2/config/mdr_configs.py | 34 ++++ tpot2/config/regressors.py | 34 ++++ tpot2/config/regressors_sklearnex.py | 34 ++++ tpot2/config/selectors.py | 34 ++++ tpot2/config/special_configs.py | 34 ++++ tpot2/config/template_search_spaces.py | 34 ++++ tpot2/config/transformers.py | 34 ++++ tpot2/evolvers/base_evolver.py | 34 ++++ tpot2/evolvers/steady_state_evolver.py | 34 ++++ tpot2/graphsklearn.py | 35 ++++ tpot2/individual.py | 34 ++++ tpot2/logbook.py | 34 ++++ tpot2/objectives/average_path_length.py | 34 ++++ tpot2/objectives/complexity.py | 34 ++++ tpot2/objectives/number_of_leaves.py | 34 ++++ tpot2/objectives/number_of_nodes.py | 34 ++++ tpot2/old_config_utils/__init__.py | 34 ++++ tpot2/old_config_utils/old_config_utils.py | 34 ++++ tpot2/population.py | 34 ++++ tpot2/search_spaces/base.py | 34 ++++ tpot2/search_spaces/graph_utils.py | 34 ++++ tpot2/search_spaces/nodes/__init__.py | 34 ++++ tpot2/search_spaces/nodes/estimator_node.py | 34 ++++ .../nodes/estimator_node_gradual.py | 34 ++++ tpot2/search_spaces/nodes/fss_node.py | 34 ++++ .../nodes/genetic_feature_selection.py | 34 ++++ tpot2/search_spaces/pipelines/choice.py | 34 ++++ .../search_spaces/pipelines/dynamic_linear.py | 34 ++++ tpot2/search_spaces/pipelines/dynamicunion.py | 34 ++++ tpot2/search_spaces/pipelines/graph.py | 34 ++++ tpot2/search_spaces/pipelines/sequential.py | 34 ++++ tpot2/search_spaces/pipelines/tree.py | 34 ++++ tpot2/search_spaces/pipelines/union.py | 34 ++++ tpot2/search_spaces/pipelines/wrapper.py | 34 ++++ .../search_spaces/tests/test_search_spaces.py | 34 ++++ tpot2/search_spaces/tuple_index.py | 34 ++++ tpot2/selectors/lexicase_selection.py | 34 ++++ tpot2/selectors/map_elites_selection.py | 34 ++++ .../max_weighted_average_selector.py | 34 ++++ tpot2/selectors/nsgaii.py | 34 ++++ tpot2/selectors/random_selector.py | 34 ++++ tpot2/selectors/tournament_selection.py | 34 ++++ .../tournament_selection_dominated.py | 34 ++++ tpot2/tests/conftest.py | 34 ++++ tpot2/tests/test_built_in_methods.py | 0 tpot2/tests/test_ea.py | 0 tpot2/tests/test_estimators.py | 34 ++++ tpot2/tests/test_population.py | 0 tpot2/tpot_estimator/__init__.py | 34 ++++ tpot2/tpot_estimator/cross_val_utils.py | 34 ++++ tpot2/tpot_estimator/estimator.py | 34 ++++ tpot2/tpot_estimator/estimator_utils.py | 34 ++++ .../tpot_estimator/steady_state_estimator.py | 34 ++++ .../tpot_estimator/templates/tpottemplates.py | 34 ++++ tpot2/tpot_estimator/tests/__init__.py | 34 ++++ .../tests/test_estimator_utils.py | 34 ++++ tpot2/utils/__init__.py | 34 ++++ tpot2/utils/amltk_parser.py | 34 ++++ tpot2/utils/eval_utils.py | 34 ++++ tpot2/utils/utils.py | 34 ++++ 81 files changed, 2539 insertions(+), 206 deletions(-) delete mode 100644 tpot2/builtin_modules/tests/fss_tests.ipynb delete mode 100644 tpot2/tests/test_built_in_methods.py delete mode 100644 tpot2/tests/test_ea.py delete mode 100644 tpot2/tests/test_population.py diff --git a/README.md b/README.md index 04920a14..16dfca6f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# TPOT2 ALPHA +# TPOT2 ![Tests](https://github.com/EpistasisLab/tpot2/actions/workflows/tests.yml/badge.svg) [![PyPI Downloads](https://img.shields.io/pypi/dm/tpot2?label=pypi%20downloads)](https://pypi.org/project/TPOT2) @@ -54,9 +54,8 @@ matplotlib traitlets lightgbm optuna -baikal jupyter -networkx> +networkx dask distributed dask-ml @@ -192,3 +191,37 @@ We welcome you to check the existing issues for bugs or enhancements to work on. TPOT2 was developed in the [Artificial Intelligence Innovation (A2I) Lab](http://epistasis.org/) at Cedars-Sinai with funding from the [NIH](http://www.nih.gov/) under grants U01 AG066833 and R01 LM010098. We are incredibly grateful for the support of the NIH and the Cedars-Sinai during the development of this project. The TPOT logo was designed by Todd Newmuis, who generously donated his time to the project. + +### License + +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . diff --git a/tpot2/__init__.py b/tpot2/__init__.py index f7014a29..da5e74bf 100644 --- a/tpot2/__init__.py +++ b/tpot2/__init__.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" #TODO: are all the imports in the init files done correctly? #TODO clean up import organization diff --git a/tpot2/_version.py b/tpot2/_version.py index e4b865d9..94760e75 100644 --- a/tpot2/_version.py +++ b/tpot2/_version.py @@ -1 +1,35 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" __version__ = '0.1.8a0' diff --git a/tpot2/builtin_modules/arithmetictransformer.py b/tpot2/builtin_modules/arithmetictransformer.py index a7c8094c..9e50efbf 100644 --- a/tpot2/builtin_modules/arithmetictransformer.py +++ b/tpot2/builtin_modules/arithmetictransformer.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import random import numpy as np from sklearn.base import BaseEstimator, TransformerMixin diff --git a/tpot2/builtin_modules/column_one_hot_encoder.py b/tpot2/builtin_modules/column_one_hot_encoder.py index 037f29d4..0fdbc810 100644 --- a/tpot2/builtin_modules/column_one_hot_encoder.py +++ b/tpot2/builtin_modules/column_one_hot_encoder.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np from scipy import sparse diff --git a/tpot2/builtin_modules/estimatortransformer.py b/tpot2/builtin_modules/estimatortransformer.py index db5fb287..46909b02 100644 --- a/tpot2/builtin_modules/estimatortransformer.py +++ b/tpot2/builtin_modules/estimatortransformer.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from numpy import ndarray from sklearn.base import BaseEstimator, TransformerMixin from sklearn.model_selection import cross_val_predict diff --git a/tpot2/builtin_modules/feature_set_selector.py b/tpot2/builtin_modules/feature_set_selector.py index 879b680d..aae67302 100644 --- a/tpot2/builtin_modules/feature_set_selector.py +++ b/tpot2/builtin_modules/feature_set_selector.py @@ -1,12 +1,22 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -"""This file is part of the TPOT library. - -TPOT was primarily developed at the University of Pennsylvania by: +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: - Randal S. Olson (rso@randalolson.com) - Weixuan Fu (weixuanf@upenn.edu) - Daniel Angell (dpa34@drexel.edu) - - and many more generous open source contributors + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors TPOT is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as @@ -20,7 +30,9 @@ You should have received a copy of the GNU Lesser General Public License along with TPOT. If not, see . + """ + #TODO handle sparse input? import numpy as np diff --git a/tpot2/builtin_modules/feature_transformers.py b/tpot2/builtin_modules/feature_transformers.py index b6be141d..7173cf9f 100644 --- a/tpot2/builtin_modules/feature_transformers.py +++ b/tpot2/builtin_modules/feature_transformers.py @@ -1,9 +1,25 @@ # -*- coding: utf-8 -*- -"""Copyright 2015-Present Randal S. Olson. - +""" This file is part of the TPOT library. +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + TPOT is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of @@ -19,6 +35,7 @@ """ + import numpy as np from sklearn.base import BaseEstimator, TransformerMixin from sklearn.utils import check_array diff --git a/tpot2/builtin_modules/imputer.py b/tpot2/builtin_modules/imputer.py index fddb71bf..d9f0c6e0 100644 --- a/tpot2/builtin_modules/imputer.py +++ b/tpot2/builtin_modules/imputer.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" #TODO support np arrays diff --git a/tpot2/builtin_modules/nn.py b/tpot2/builtin_modules/nn.py index 953a9c0f..aa373859 100644 --- a/tpot2/builtin_modules/nn.py +++ b/tpot2/builtin_modules/nn.py @@ -1,12 +1,24 @@ # -*- coding: utf-8 -*- -"""This file is part of the TPOT library. - -TPOT was primarily developed at the University of Pennsylvania by: +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: - Randal S. Olson (rso@randalolson.com) - Weixuan Fu (weixuanf@upenn.edu) - Daniel Angell (dpa34@drexel.edu) - - and many more generous open source contributors + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors TPOT is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as @@ -23,6 +35,7 @@ """ + # Note: There are quite a few pylint messages disabled in this file. In # general, this usually should be avoided. However, in some cases it is # necessary: e.g., we use `X` and `y` to refer to data and labels in compliance diff --git a/tpot2/builtin_modules/passkbinsdiscretizer.py b/tpot2/builtin_modules/passkbinsdiscretizer.py index 243e8da2..38822a87 100644 --- a/tpot2/builtin_modules/passkbinsdiscretizer.py +++ b/tpot2/builtin_modules/passkbinsdiscretizer.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import pandas as pd from sklearn.base import BaseEstimator, TransformerMixin from sklearn.compose import ColumnTransformer diff --git a/tpot2/builtin_modules/passthrough.py b/tpot2/builtin_modules/passthrough.py index 489ebc91..f49f4bda 100644 --- a/tpot2/builtin_modules/passthrough.py +++ b/tpot2/builtin_modules/passthrough.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from sklearn.base import BaseEstimator, TransformerMixin import numpy as np diff --git a/tpot2/builtin_modules/tests/feature_set_selector_tests.py b/tpot2/builtin_modules/tests/feature_set_selector_tests.py index 17b9e69f..1164adf7 100644 --- a/tpot2/builtin_modules/tests/feature_set_selector_tests.py +++ b/tpot2/builtin_modules/tests/feature_set_selector_tests.py @@ -1,12 +1,22 @@ -# -*- coding: utf-8 -*- - -"""This file is part of the TPOT library. - -TPOT was primarily developed at the University of Pennsylvania by: +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: - Randal S. Olson (rso@randalolson.com) - Weixuan Fu (weixuanf@upenn.edu) - Daniel Angell (dpa34@drexel.edu) - - and many more generous open source contributors + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors TPOT is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as @@ -23,6 +33,7 @@ """ + import numpy as np import pandas as pd from tpot2.config.custom_modules import FeatureSetSelector diff --git a/tpot2/builtin_modules/tests/fss_tests.ipynb b/tpot2/builtin_modules/tests/fss_tests.ipynb deleted file mode 100644 index fe4e91c9..00000000 --- a/tpot2/builtin_modules/tests/fss_tests.ipynb +++ /dev/null @@ -1,179 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.],\n", - " [3., 5., 7.]])" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import tpot2\n", - "import sklearn\n", - "import sklearn.datasets\n", - "import numpy as np\n", - "\n", - "X = np.repeat([np.arange(0,10)],100,0)\n", - "fss = tpot2.builtin_modules.FeatureSetSelector(None, [5,7,3])\n", - "\n", - "fss.fit(X)\n", - "fss.transform(X)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "isinstance(X, np.ndarray)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.10.6 ('tpot_dev')", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.6" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "7fe1fe9ef32cd5efd76326a08046147513534f0dd2318301a1a96ae9071c1c4e" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tpot2/builtin_modules/zero_count.py b/tpot2/builtin_modules/zero_count.py index 2fc4c7ed..1effe29b 100644 --- a/tpot2/builtin_modules/zero_count.py +++ b/tpot2/builtin_modules/zero_count.py @@ -1,12 +1,22 @@ -# -*- coding: utf-8 -*- - -"""This file is part of the TPOT library. - -TPOT was primarily developed at the University of Pennsylvania by: +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: - Randal S. Olson (rso@randalolson.com) - Weixuan Fu (weixuanf@upenn.edu) - Daniel Angell (dpa34@drexel.edu) - - and many more generous open source contributors + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors TPOT is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as @@ -23,6 +33,7 @@ """ + import numpy as np from sklearn.base import BaseEstimator, TransformerMixin from sklearn.utils import check_array diff --git a/tpot2/config/__init__.py b/tpot2/config/__init__.py index 7ee03ace..4bab00b8 100644 --- a/tpot2/config/__init__.py +++ b/tpot2/config/__init__.py @@ -1 +1,35 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from .get_configspace import get_search_space \ No newline at end of file diff --git a/tpot2/config/autoqtl_builtins.py b/tpot2/config/autoqtl_builtins.py index d649bacd..9b9b8961 100644 --- a/tpot2/config/autoqtl_builtins.py +++ b/tpot2/config/autoqtl_builtins.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from tpot2.builtin_modules import genetic_encoders from tpot2.builtin_modules import feature_encoding_frequency_selector import sklearn diff --git a/tpot2/config/classifiers.py b/tpot2/config/classifiers.py index deacd634..382213ee 100644 --- a/tpot2/config/classifiers.py +++ b/tpot2/config/classifiers.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal from ConfigSpace import EqualsCondition, OrConjunction, NotEqualsCondition, InCondition diff --git a/tpot2/config/classifiers_sklearnex.py b/tpot2/config/classifiers_sklearnex.py index 4a344723..bf2febd2 100644 --- a/tpot2/config/classifiers_sklearnex.py +++ b/tpot2/config/classifiers_sklearnex.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal diff --git a/tpot2/config/get_configspace.py b/tpot2/config/get_configspace.py index b38fb967..abb3abb9 100644 --- a/tpot2/config/get_configspace.py +++ b/tpot2/config/get_configspace.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import importlib.util import sys import numpy as np diff --git a/tpot2/config/imputers.py b/tpot2/config/imputers.py index 34582b92..b5907e3c 100644 --- a/tpot2/config/imputers.py +++ b/tpot2/config/imputers.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import sklearn import sklearn.ensemble import sklearn.linear_model diff --git a/tpot2/config/mdr_configs.py b/tpot2/config/mdr_configs.py index df92cd17..14f1bf9d 100644 --- a/tpot2/config/mdr_configs.py +++ b/tpot2/config/mdr_configs.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal diff --git a/tpot2/config/regressors.py b/tpot2/config/regressors.py index e2c4b118..8d8881ed 100644 --- a/tpot2/config/regressors.py +++ b/tpot2/config/regressors.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import sklearn from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal diff --git a/tpot2/config/regressors_sklearnex.py b/tpot2/config/regressors_sklearnex.py index 7346a7c3..abe3abea 100644 --- a/tpot2/config/regressors_sklearnex.py +++ b/tpot2/config/regressors_sklearnex.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal diff --git a/tpot2/config/selectors.py b/tpot2/config/selectors.py index 9dc1ebe9..c25d0320 100644 --- a/tpot2/config/selectors.py +++ b/tpot2/config/selectors.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" #TODO: how to best support transformers/selectors that take other transformers with their own hyperparameters? import numpy as np import sklearn diff --git a/tpot2/config/special_configs.py b/tpot2/config/special_configs.py index 5d22dfad..19c1dff8 100644 --- a/tpot2/config/special_configs.py +++ b/tpot2/config/special_configs.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from tpot2.builtin_modules import ArithmeticTransformer, FeatureSetSelector from functools import partial import pandas as pd diff --git a/tpot2/config/template_search_spaces.py b/tpot2/config/template_search_spaces.py index 759c296d..69e658d9 100644 --- a/tpot2/config/template_search_spaces.py +++ b/tpot2/config/template_search_spaces.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import tpot2 from tpot2.search_spaces.pipelines import * from tpot2.search_spaces.nodes import * diff --git a/tpot2/config/transformers.py b/tpot2/config/transformers.py index 2e9c1a4a..08c9a7aa 100644 --- a/tpot2/config/transformers.py +++ b/tpot2/config/transformers.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal from ConfigSpace import EqualsCondition, OrConjunction, NotEqualsCondition, InCondition diff --git a/tpot2/evolvers/base_evolver.py b/tpot2/evolvers/base_evolver.py index 1abc26f8..8e4958aa 100644 --- a/tpot2/evolvers/base_evolver.py +++ b/tpot2/evolvers/base_evolver.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" #All abstract methods in the Evolutionary_Optimization module from abc import abstractmethod diff --git a/tpot2/evolvers/steady_state_evolver.py b/tpot2/evolvers/steady_state_evolver.py index 6a3730f8..9a9f5708 100644 --- a/tpot2/evolvers/steady_state_evolver.py +++ b/tpot2/evolvers/steady_state_evolver.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" #All abstract methods in the Evolutionary_Optimization module import tpot2 import typing diff --git a/tpot2/graphsklearn.py b/tpot2/graphsklearn.py index 4d916c29..11a78dca 100644 --- a/tpot2/graphsklearn.py +++ b/tpot2/graphsklearn.py @@ -1,3 +1,38 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" + from functools import partial import numpy as np import networkx as nx diff --git a/tpot2/individual.py b/tpot2/individual.py index db6807c3..83f62aac 100644 --- a/tpot2/individual.py +++ b/tpot2/individual.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from abc import abstractmethod import types import numpy as np diff --git a/tpot2/logbook.py b/tpot2/logbook.py index 7c220f96..ca95f963 100644 --- a/tpot2/logbook.py +++ b/tpot2/logbook.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" class CallBackInterface(): def __init__(self) -> None: pass diff --git a/tpot2/objectives/average_path_length.py b/tpot2/objectives/average_path_length.py index dd3fcb0d..9ad54eb6 100644 --- a/tpot2/objectives/average_path_length.py +++ b/tpot2/objectives/average_path_length.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import networkx as nx import numpy as np diff --git a/tpot2/objectives/complexity.py b/tpot2/objectives/complexity.py index f3c305a1..a5ff3a8b 100644 --- a/tpot2/objectives/complexity.py +++ b/tpot2/objectives/complexity.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from tpot2 import GraphPipeline import numpy as np import sklearn diff --git a/tpot2/objectives/number_of_leaves.py b/tpot2/objectives/number_of_leaves.py index f876caff..767f8c86 100644 --- a/tpot2/objectives/number_of_leaves.py +++ b/tpot2/objectives/number_of_leaves.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" def number_of_leaves_scorer(est,X=None, y=None): return len([v for v, d in est.graph.out_degree() if d == 0]) diff --git a/tpot2/objectives/number_of_nodes.py b/tpot2/objectives/number_of_nodes.py index a531851d..4c6e6316 100644 --- a/tpot2/objectives/number_of_nodes.py +++ b/tpot2/objectives/number_of_nodes.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from ..graphsklearn import GraphPipeline from sklearn.pipeline import Pipeline import sklearn diff --git a/tpot2/old_config_utils/__init__.py b/tpot2/old_config_utils/__init__.py index f4ca3dea..8583acec 100644 --- a/tpot2/old_config_utils/__init__.py +++ b/tpot2/old_config_utils/__init__.py @@ -1 +1,35 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from .old_config_utils import convert_config_dict_to_list, convert_config_dict_to_choicepipeline, convert_config_dict_to_graphpipeline, convert_config_dict_to_linearpipeline \ No newline at end of file diff --git a/tpot2/old_config_utils/old_config_utils.py b/tpot2/old_config_utils/old_config_utils.py index 049bebc3..4903e33a 100644 --- a/tpot2/old_config_utils/old_config_utils.py +++ b/tpot2/old_config_utils/old_config_utils.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from ConfigSpace import ConfigurationSpace from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal from ConfigSpace import EqualsCondition, OrConjunction, NotEqualsCondition, InCondition diff --git a/tpot2/population.py b/tpot2/population.py index b8d94a67..f19660cf 100644 --- a/tpot2/population.py +++ b/tpot2/population.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np import copy import copy diff --git a/tpot2/search_spaces/base.py b/tpot2/search_spaces/base.py index c693295f..a78b3491 100644 --- a/tpot2/search_spaces/base.py +++ b/tpot2/search_spaces/base.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import tpot2 import sklearn from sklearn.base import BaseEstimator diff --git a/tpot2/search_spaces/graph_utils.py b/tpot2/search_spaces/graph_utils.py index cb85a571..1d43162e 100644 --- a/tpot2/search_spaces/graph_utils.py +++ b/tpot2/search_spaces/graph_utils.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import networkx as nx import numpy as np diff --git a/tpot2/search_spaces/nodes/__init__.py b/tpot2/search_spaces/nodes/__init__.py index 4026d02c..276bd223 100644 --- a/tpot2/search_spaces/nodes/__init__.py +++ b/tpot2/search_spaces/nodes/__init__.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from .estimator_node import * from .genetic_feature_selection import * from .fss_node import * \ No newline at end of file diff --git a/tpot2/search_spaces/nodes/estimator_node.py b/tpot2/search_spaces/nodes/estimator_node.py index b126655f..feebce2c 100644 --- a/tpot2/search_spaces/nodes/estimator_node.py +++ b/tpot2/search_spaces/nodes/estimator_node.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" # try https://automl.github.io/ConfigSpace/main/api/hyperparameters.html import numpy as np diff --git a/tpot2/search_spaces/nodes/estimator_node_gradual.py b/tpot2/search_spaces/nodes/estimator_node_gradual.py index 598976f7..dab7a49f 100644 --- a/tpot2/search_spaces/nodes/estimator_node_gradual.py +++ b/tpot2/search_spaces/nodes/estimator_node_gradual.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" # try https://automl.github.io/ConfigSpace/main/api/hyperparameters.html import numpy as np diff --git a/tpot2/search_spaces/nodes/fss_node.py b/tpot2/search_spaces/nodes/fss_node.py index 4d2353cd..ada93cba 100644 --- a/tpot2/search_spaces/nodes/fss_node.py +++ b/tpot2/search_spaces/nodes/fss_node.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from numpy import iterable import tpot2 import numpy as np diff --git a/tpot2/search_spaces/nodes/genetic_feature_selection.py b/tpot2/search_spaces/nodes/genetic_feature_selection.py index 739ad924..fb71a280 100644 --- a/tpot2/search_spaces/nodes/genetic_feature_selection.py +++ b/tpot2/search_spaces/nodes/genetic_feature_selection.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from numpy import iterable import tpot2 import numpy as np diff --git a/tpot2/search_spaces/pipelines/choice.py b/tpot2/search_spaces/pipelines/choice.py index 5ebaa31c..dd7dfa90 100644 --- a/tpot2/search_spaces/pipelines/choice.py +++ b/tpot2/search_spaces/pipelines/choice.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import tpot2 import numpy as np import pandas as pd diff --git a/tpot2/search_spaces/pipelines/dynamic_linear.py b/tpot2/search_spaces/pipelines/dynamic_linear.py index 81a86b10..f82f2b24 100644 --- a/tpot2/search_spaces/pipelines/dynamic_linear.py +++ b/tpot2/search_spaces/pipelines/dynamic_linear.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import tpot2 import numpy as np import pandas as pd diff --git a/tpot2/search_spaces/pipelines/dynamicunion.py b/tpot2/search_spaces/pipelines/dynamicunion.py index d3802fd9..dd664158 100644 --- a/tpot2/search_spaces/pipelines/dynamicunion.py +++ b/tpot2/search_spaces/pipelines/dynamicunion.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import tpot2 import numpy as np import pandas as pd diff --git a/tpot2/search_spaces/pipelines/graph.py b/tpot2/search_spaces/pipelines/graph.py index 34ff53f7..07bc80a9 100644 --- a/tpot2/search_spaces/pipelines/graph.py +++ b/tpot2/search_spaces/pipelines/graph.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import tpot2 import numpy as np from typing import Generator, List, Tuple, Union diff --git a/tpot2/search_spaces/pipelines/sequential.py b/tpot2/search_spaces/pipelines/sequential.py index a7f55cc6..73ae4411 100644 --- a/tpot2/search_spaces/pipelines/sequential.py +++ b/tpot2/search_spaces/pipelines/sequential.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import tpot2 import numpy as np import pandas as pd diff --git a/tpot2/search_spaces/pipelines/tree.py b/tpot2/search_spaces/pipelines/tree.py index 707d701e..1b825e71 100644 --- a/tpot2/search_spaces/pipelines/tree.py +++ b/tpot2/search_spaces/pipelines/tree.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import tpot2 import numpy as np import pandas as pd diff --git a/tpot2/search_spaces/pipelines/union.py b/tpot2/search_spaces/pipelines/union.py index b98804cf..299bb078 100644 --- a/tpot2/search_spaces/pipelines/union.py +++ b/tpot2/search_spaces/pipelines/union.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import tpot2 import numpy as np import pandas as pd diff --git a/tpot2/search_spaces/pipelines/wrapper.py b/tpot2/search_spaces/pipelines/wrapper.py index 660326e6..72da82ca 100644 --- a/tpot2/search_spaces/pipelines/wrapper.py +++ b/tpot2/search_spaces/pipelines/wrapper.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np import pandas as pd diff --git a/tpot2/search_spaces/tests/test_search_spaces.py b/tpot2/search_spaces/tests/test_search_spaces.py index 6baf3ce3..ff228ede 100644 --- a/tpot2/search_spaces/tests/test_search_spaces.py +++ b/tpot2/search_spaces/tests/test_search_spaces.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" # Test all nodes have all dictionaries import pytest import tpot2 diff --git a/tpot2/search_spaces/tuple_index.py b/tpot2/search_spaces/tuple_index.py index adfbbb2c..be9d9f4b 100644 --- a/tpot2/search_spaces/tuple_index.py +++ b/tpot2/search_spaces/tuple_index.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np class TupleIndex(): diff --git a/tpot2/selectors/lexicase_selection.py b/tpot2/selectors/lexicase_selection.py index bc615a9d..dd9edf4d 100644 --- a/tpot2/selectors/lexicase_selection.py +++ b/tpot2/selectors/lexicase_selection.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np def lexicase_selection(scores, k, n_parents=1, rng=None): diff --git a/tpot2/selectors/map_elites_selection.py b/tpot2/selectors/map_elites_selection.py index e9fe6feb..99da53b5 100644 --- a/tpot2/selectors/map_elites_selection.py +++ b/tpot2/selectors/map_elites_selection.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np #TODO make these functions take in a predetermined set of bins rather than calculating a new set each time diff --git a/tpot2/selectors/max_weighted_average_selector.py b/tpot2/selectors/max_weighted_average_selector.py index e5ac17ea..14ecfa4a 100644 --- a/tpot2/selectors/max_weighted_average_selector.py +++ b/tpot2/selectors/max_weighted_average_selector.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np def max_weighted_average_selector(scores,k, n_parents=1, rng=None): diff --git a/tpot2/selectors/nsgaii.py b/tpot2/selectors/nsgaii.py index 673862e9..56649fae 100644 --- a/tpot2/selectors/nsgaii.py +++ b/tpot2/selectors/nsgaii.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np # Deb, Pratab, Agarwal, and Meyarivan, “A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II”, 2002. diff --git a/tpot2/selectors/random_selector.py b/tpot2/selectors/random_selector.py index 0dcb7d3b..d2ca3e32 100644 --- a/tpot2/selectors/random_selector.py +++ b/tpot2/selectors/random_selector.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np def random_selector(scores, k, n_parents=1, rng=None, ): diff --git a/tpot2/selectors/tournament_selection.py b/tpot2/selectors/tournament_selection.py index 9a568ac5..43d0487b 100644 --- a/tpot2/selectors/tournament_selection.py +++ b/tpot2/selectors/tournament_selection.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np def tournament_selection(scores, k, n_parents=1, rng=None, tournament_size=2, score_index=0): diff --git a/tpot2/selectors/tournament_selection_dominated.py b/tpot2/selectors/tournament_selection_dominated.py index 2227cb61..cda3e3c4 100644 --- a/tpot2/selectors/tournament_selection_dominated.py +++ b/tpot2/selectors/tournament_selection_dominated.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np from.nsgaii import nondominated_sorting, crowding_distance, dominates diff --git a/tpot2/tests/conftest.py b/tpot2/tests/conftest.py index f91ae9e3..450877a0 100644 --- a/tpot2/tests/conftest.py +++ b/tpot2/tests/conftest.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import pytest import sys diff --git a/tpot2/tests/test_built_in_methods.py b/tpot2/tests/test_built_in_methods.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tpot2/tests/test_ea.py b/tpot2/tests/test_ea.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tpot2/tests/test_estimators.py b/tpot2/tests/test_estimators.py index 5ab55b14..fe034100 100644 --- a/tpot2/tests/test_estimators.py +++ b/tpot2/tests/test_estimators.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import pytest import tpot2 from sklearn.datasets import load_iris diff --git a/tpot2/tests/test_population.py b/tpot2/tests/test_population.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tpot2/tpot_estimator/__init__.py b/tpot2/tpot_estimator/__init__.py index 131a0b2f..fa1193be 100644 --- a/tpot2/tpot_estimator/__init__.py +++ b/tpot2/tpot_estimator/__init__.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from .estimator import TPOTEstimator from .steady_state_estimator import TPOTEstimatorSteadyState from .templates import TPOTClassifier, TPOTRegressor \ No newline at end of file diff --git a/tpot2/tpot_estimator/cross_val_utils.py b/tpot2/tpot_estimator/cross_val_utils.py index f9842266..8bf4065c 100644 --- a/tpot2/tpot_estimator/cross_val_utils.py +++ b/tpot2/tpot_estimator/cross_val_utils.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import time import sklearn.metrics from collections.abc import Iterable diff --git a/tpot2/tpot_estimator/estimator.py b/tpot2/tpot_estimator/estimator.py index b2ed6832..ddbc6cf5 100644 --- a/tpot2/tpot_estimator/estimator.py +++ b/tpot2/tpot_estimator/estimator.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from sklearn.base import BaseEstimator from sklearn.utils.metaestimators import available_if import numpy as np diff --git a/tpot2/tpot_estimator/estimator_utils.py b/tpot2/tpot_estimator/estimator_utils.py index eaf878ab..b04af3f1 100644 --- a/tpot2/tpot_estimator/estimator_utils.py +++ b/tpot2/tpot_estimator/estimator_utils.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np import sklearn import sklearn.base diff --git a/tpot2/tpot_estimator/steady_state_estimator.py b/tpot2/tpot_estimator/steady_state_estimator.py index a314557a..a9874dc6 100644 --- a/tpot2/tpot_estimator/steady_state_estimator.py +++ b/tpot2/tpot_estimator/steady_state_estimator.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from sklearn.base import BaseEstimator from sklearn.utils.metaestimators import available_if import numpy as np diff --git a/tpot2/tpot_estimator/templates/tpottemplates.py b/tpot2/tpot_estimator/templates/tpottemplates.py index 15870747..bc4b8915 100644 --- a/tpot2/tpot_estimator/templates/tpottemplates.py +++ b/tpot2/tpot_estimator/templates/tpottemplates.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import tpot2 import numpy as np import pandas as pd diff --git a/tpot2/tpot_estimator/tests/__init__.py b/tpot2/tpot_estimator/tests/__init__.py index e69de29b..ced8174a 100644 --- a/tpot2/tpot_estimator/tests/__init__.py +++ b/tpot2/tpot_estimator/tests/__init__.py @@ -0,0 +1,34 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" diff --git a/tpot2/tpot_estimator/tests/test_estimator_utils.py b/tpot2/tpot_estimator/tests/test_estimator_utils.py index f371c9b7..5bb7f8a7 100644 --- a/tpot2/tpot_estimator/tests/test_estimator_utils.py +++ b/tpot2/tpot_estimator/tests/test_estimator_utils.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import pytest import numpy as np import pandas as pd diff --git a/tpot2/utils/__init__.py b/tpot2/utils/__init__.py index 12231446..2911d764 100644 --- a/tpot2/utils/__init__.py +++ b/tpot2/utils/__init__.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from . import eval_utils from .utils import * diff --git a/tpot2/utils/amltk_parser.py b/tpot2/utils/amltk_parser.py index b0c3d8de..52129538 100644 --- a/tpot2/utils/amltk_parser.py +++ b/tpot2/utils/amltk_parser.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" from amltk.pipeline import Choice, Component, Sequential, Node, Fixed, Split, Join, Searchable from tpot2.search_spaces.pipelines import SequentialPipeline, ChoicePipeline, UnionPipeline from tpot2.search_spaces.nodes import EstimatorNode diff --git a/tpot2/utils/eval_utils.py b/tpot2/utils/eval_utils.py index c71be532..7f93cef4 100644 --- a/tpot2/utils/eval_utils.py +++ b/tpot2/utils/eval_utils.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import types from abc import abstractmethod import numpy as np diff --git a/tpot2/utils/utils.py b/tpot2/utils/utils.py index 21ec0662..66483b65 100644 --- a/tpot2/utils/utils.py +++ b/tpot2/utils/utils.py @@ -1,3 +1,37 @@ +""" +This file is part of the TPOT library. + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors + +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + +""" import numpy as np import scipy import statistics From ebd3a25ef90818809d74abb6c2e9631d658eb726 Mon Sep 17 00:00:00 2001 From: perib Date: Thu, 24 Oct 2024 11:54:08 -0700 Subject: [PATCH 9/9] update readme with info/license --- README.md | 129 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 95 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 16dfca6f..5ee19052 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,31 @@ [![PyPI Downloads](https://img.shields.io/pypi/dm/tpot2?label=pypi%20downloads)](https://pypi.org/project/TPOT2) [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tpot2?label=conda%20downloads)](https://anaconda.org/conda-forge/tpot2) -TPOT stands for Tree-based Pipeline Optimization Tool. TPOT2 is a Python Automated Machine Learning tool that optimizes machine learning pipelines using genetic programming. Consider TPOT2 your Data Science Assistant. +TPOT stands for Tree-based Pipeline Optimization Tool. TPOT is a Python Automated Machine Learning tool that optimizes machine learning pipelines using genetic programming. Consider TPOT your Data Science Assistant. -TPOT2 is a rewrite of TPOT with some additional functionality. Notably, we added support for graph-based pipelines and additional parameters to better specify the desired search space. -TPOT2 is currently in Alpha. This means that there will likely be some backwards incompatible changes to the API as we develop. Some implemented features may be buggy. There is a list of known issues written at the bottom of this README. Some features have placeholder names or are listed as "Experimental" in the doc string. These are features that may not be fully implemented and may or may not work with all other features. +## Contributors + +TPOT recently went through a major refactoring. The package was rewritten from scratch to improve efficiency and performance, support new features, and fix numerous bugs. New features include genetic feature selection, a significantly expanded and more flexible method of defining search spaces, multi-objective optimization, a more modular framework allowing for easier customization of the evolutionary algorithm, and more. While in development, this new version was referred to as "TPOT2" but we have now merged what was once TPOT2 into the main TPOT package. You can learn more about this new version of TPOT in our GPTP paper titled "TPOT2: A New Graph-Based Implementation of the Tree-Based Pipeline Optimization Tool for Automated Machine Learning." + + Ribeiro, P. et al. (2024). TPOT2: A New Graph-Based Implementation of the Tree-Based Pipeline Optimization Tool for Automated Machine Learning. In: Winkler, S., Trujillo, L., Ofria, C., Hu, T. (eds) Genetic Programming Theory and Practice XX. Genetic and Evolutionary Computation. Springer, Singapore. https://doi.org/10.1007/978-981-99-8413-8_1 + +The current version of TPOT was developed at Cedars-Sinai by: + - Pedro Henrique Ribeiro (Lead developer - https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) + - Anil Saini (anil.saini@cshs.org) + - Jose Hernandez (jgh9094@gmail.com) + - Jay Moran (jay.moran@cshs.org) + - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) + - Hyunjun Choi (hyunjun.choi@cshs.org) + - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) + - Jason Moore (moorejh28@gmail.com) + +The original version of TPOT was primarily developed at the University of Pennsylvania by: + - Randal S. Olson (rso@randalolson.com) + - Weixuan Fu (weixuanf@upenn.edu) + - Daniel Angell (dpa34@drexel.edu) + - Jason Moore (moorejh28@gmail.com) + - and many more generous open-source contributors -If you are interested in using the current stable release of TPOT, you can do that here: [https://github.com/EpistasisLab/tpot/](https://github.com/EpistasisLab/tpot/). ## License @@ -17,6 +36,19 @@ If you are interested in using the current stable release of TPOT, you can do th Please see the [repository license](https://github.com/EpistasisLab/tpot2/blob/main/LICENSE) for the licensing and usage information for TPOT2. Generally, we have licensed TPOT2 to make it as widely usable as possible. +TPOT is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +TPOT is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with TPOT. If not, see . + ## Documentation [The documentation webpage can be found here.](https://epistasislab.github.io/tpot2/) @@ -185,43 +217,72 @@ Setting `verbose` to 5 can be helpful during debugging as it will print out the We welcome you to check the existing issues for bugs or enhancements to work on. If you have an idea for an extension to TPOT2, please file a new issue so we can discuss it. +## Citing TPOT -### Support for TPOT2 +If you use TPOT in a scientific publication, please consider citing at least one of the following papers: -TPOT2 was developed in the [Artificial Intelligence Innovation (A2I) Lab](http://epistasis.org/) at Cedars-Sinai with funding from the [NIH](http://www.nih.gov/) under grants U01 AG066833 and R01 LM010098. We are incredibly grateful for the support of the NIH and the Cedars-Sinai during the development of this project. +Trang T. Le, Weixuan Fu and Jason H. Moore (2020). [Scaling tree-based automated machine learning to biomedical big data with a feature set selector](https://academic.oup.com/bioinformatics/article/36/1/250/5511404). *Bioinformatics*.36(1): 250-256. -The TPOT logo was designed by Todd Newmuis, who generously donated his time to the project. +BibTeX entry: -### License +```bibtex +@article{le2020scaling, + title={Scaling tree-based automated machine learning to biomedical big data with a feature set selector}, + author={Le, Trang T and Fu, Weixuan and Moore, Jason H}, + journal={Bioinformatics}, + volume={36}, + number={1}, + pages={250--256}, + year={2020}, + publisher={Oxford University Press} +} +``` -This file is part of the TPOT library. -The current version of TPOT was developed at Cedars-Sinai by: - - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) - - Anil Saini (anil.saini@cshs.org) - - Jose Hernandez (jgh9094@gmail.com) - - Jay Moran (jay.moran@cshs.org) - - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) - - Hyunjun Choi (hyunjun.choi@cshs.org) - - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) - - Jason Moore (moorejh28@gmail.com) +Randal S. Olson, Ryan J. Urbanowicz, Peter C. Andrews, Nicole A. Lavender, La Creis Kidd, and Jason H. Moore (2016). [Automating biomedical data science through tree-based pipeline optimization](http://link.springer.com/chapter/10.1007/978-3-319-31204-0_9). *Applications of Evolutionary Computation*, pages 123-137. -The original version of TPOT was primarily developed at the University of Pennsylvania by: - - Randal S. Olson (rso@randalolson.com) - - Weixuan Fu (weixuanf@upenn.edu) - - Daniel Angell (dpa34@drexel.edu) - - Jason Moore (moorejh28@gmail.com) - - and many more generous open-source contributors +BibTeX entry: -TPOT is free software: you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as -published by the Free Software Foundation, either version 3 of -the License, or (at your option) any later version. +```bibtex +@inbook{Olson2016EvoBio, + author={Olson, Randal S. and Urbanowicz, Ryan J. and Andrews, Peter C. and Lavender, Nicole A. and Kidd, La Creis and Moore, Jason H.}, + editor={Squillero, Giovanni and Burelli, Paolo}, + chapter={Automating Biomedical Data Science Through Tree-Based Pipeline Optimization}, + title={Applications of Evolutionary Computation: 19th European Conference, EvoApplications 2016, Porto, Portugal, March 30 -- April 1, 2016, Proceedings, Part I}, + year={2016}, + publisher={Springer International Publishing}, + pages={123--137}, + isbn={978-3-319-31204-0}, + doi={10.1007/978-3-319-31204-0_9}, + url={http://dx.doi.org/10.1007/978-3-319-31204-0_9} +} +``` -TPOT is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. +Randal S. Olson, Nathan Bartley, Ryan J. Urbanowicz, and Jason H. Moore (2016). [Evaluation of a Tree-based Pipeline Optimization Tool for Automating Data Science](http://dl.acm.org/citation.cfm?id=2908918). *Proceedings of GECCO 2016*, pages 485-492. + +BibTeX entry: + +```bibtex +@inproceedings{OlsonGECCO2016, + author = {Olson, Randal S. and Bartley, Nathan and Urbanowicz, Ryan J. and Moore, Jason H.}, + title = {Evaluation of a Tree-based Pipeline Optimization Tool for Automating Data Science}, + booktitle = {Proceedings of the Genetic and Evolutionary Computation Conference 2016}, + series = {GECCO '16}, + year = {2016}, + isbn = {978-1-4503-4206-3}, + location = {Denver, Colorado, USA}, + pages = {485--492}, + numpages = {8}, + url = {http://doi.acm.org/10.1145/2908812.2908918}, + doi = {10.1145/2908812.2908918}, + acmid = {2908918}, + publisher = {ACM}, + address = {New York, NY, USA}, +} +``` -You should have received a copy of the GNU Lesser General Public -License along with TPOT. If not, see . +### Support for TPOT2 + +TPOT2 was developed in the [Artificial Intelligence Innovation (A2I) Lab](http://epistasis.org/) at Cedars-Sinai with funding from the [NIH](http://www.nih.gov/) under grants U01 AG066833 and R01 LM010098. We are incredibly grateful for the support of the NIH and the Cedars-Sinai during the development of this project. + +The TPOT logo was designed by Todd Newmuis, who generously donated his time to the project.