2
2
import sys
3
3
import numpy as np
4
4
import warnings
5
+ import importlib .util
5
6
6
7
from ..search_spaces .nodes import EstimatorNode
7
8
from ..search_spaces .pipelines import ChoicePipeline , WrapperPipeline
27
28
28
29
from sklearn .linear_model import SGDClassifier
29
30
from sklearn .ensemble import RandomForestClassifier , ExtraTreesClassifier , GradientBoostingClassifier
30
- from sklearn .neural_network import MLPClassifier
31
+ from sklearn .neural_network import MLPClassifier , MLPRegressor
31
32
from sklearn .tree import DecisionTreeClassifier
32
33
from xgboost import XGBClassifier
33
34
from sklearn .neighbors import KNeighborsClassifier
101
102
from tpot2 .builtin_modules import AddTransformer , mul_neg_1_Transformer , MulTransformer , SafeReciprocalTransformer , EQTransformer , NETransformer , GETransformer , GTTransformer , LETransformer , LTTransformer , MinTransformer , MaxTransformer , ZeroTransformer , OneTransformer , NTransformer
102
103
103
104
105
+ from tpot2 .builtin_modules .genetic_encoders import DominantEncoder , RecessiveEncoder , HeterosisEncoder , UnderDominanceEncoder , OverDominanceEncoder
106
+
104
107
#MDR
105
108
106
109
107
110
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 , OneHotEncoder , 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 ,
108
- AdaBoostClassifier ,
111
+ AdaBoostClassifier ,MLPRegressor ,
109
112
GaussianProcessRegressor , HistGradientBoostingClassifier , HistGradientBoostingRegressor ,
110
113
AddTransformer , mul_neg_1_Transformer , MulTransformer , SafeReciprocalTransformer , EQTransformer , NETransformer , GETransformer , GTTransformer , LETransformer , LTTransformer , MinTransformer , MaxTransformer , ZeroTransformer , OneTransformer , NTransformer ,
111
114
PowerTransformer , QuantileTransformer ,ARDRegression , QuadraticDiscriminantAnalysis , PassiveAggressiveClassifier , LinearDiscriminantAnalysis ,
115
+ DominantEncoder , RecessiveEncoder , HeterosisEncoder , UnderDominanceEncoder , OverDominanceEncoder ,
112
116
]
113
117
114
118
115
119
#if mdr is installed
116
- if 'mdr' in sys . modules :
120
+ if importlib . util . find_spec ( 'mdr' ) is not None :
117
121
from mdr import MDR , ContinuousMDR
118
122
all_methods .append (MDR )
119
123
all_methods .append (ContinuousMDR )
120
124
121
- if 'skrebate' in sys . modules :
125
+ if importlib . util . find_spec ( 'skrebate' ) is not None :
122
126
from skrebate import ReliefF , SURF , SURFstar , MultiSURF
123
127
all_methods .append (ReliefF )
124
128
all_methods .append (SURF )
125
129
all_methods .append (SURFstar )
126
130
all_methods .append (MultiSURF )
127
131
128
- if 'sklearnex' in sys .modules :
132
+ STRING_TO_CLASS = {
133
+ t .__name__ : t for t in all_methods
134
+ }
135
+
136
+ if importlib .util .find_spec ('sklearnex' ) is not None :
129
137
import sklearnex
138
+ import sklearnex .linear_model
139
+ import sklearnex .svm
140
+ import sklearnex .ensemble
141
+ import sklearnex .neighbors
130
142
131
- all_methods .append (sklearnex .linear_model .LinearRegression )
132
- all_methods .append (sklearnex .linear_model .Ridge )
133
- all_methods .append (sklearnex .linear_model .Lasso )
134
- all_methods .append (sklearnex .linear_model .ElasticNet )
135
- all_methods .append (sklearnex .svm .SVR )
136
- all_methods .append (sklearnex .svm .NuSVR )
137
- all_methods .append (sklearnex .ensemble .RandomForestRegressor )
138
- all_methods .append (sklearnex .neighbors .KNeighborsRegressor )
139
- all_methods .append (sklearnex .ensemble .RandomForestClassifier )
140
- all_methods .append (sklearnex .neighbors .KNeighborsClassifier )
141
- all_methods .append (sklearnex .svm .SVC )
142
- all_methods .append (sklearnex .svm .NuSVC )
143
- all_methods .append (sklearnex .linear_model .LogisticRegression )
143
+
144
+ sklearnex_methods = []
145
+
146
+ sklearnex_methods .append (sklearnex .linear_model .LinearRegression )
147
+ sklearnex_methods .append (sklearnex .linear_model .Ridge )
148
+ sklearnex_methods .append (sklearnex .linear_model .Lasso )
149
+ sklearnex_methods .append (sklearnex .linear_model .ElasticNet )
150
+ sklearnex_methods .append (sklearnex .svm .SVR )
151
+ sklearnex_methods .append (sklearnex .svm .NuSVR )
152
+ sklearnex_methods .append (sklearnex .ensemble .RandomForestRegressor )
153
+ sklearnex_methods .append (sklearnex .neighbors .KNeighborsRegressor )
154
+ sklearnex_methods .append (sklearnex .ensemble .RandomForestClassifier )
155
+ sklearnex_methods .append (sklearnex .neighbors .KNeighborsClassifier )
156
+ sklearnex_methods .append (sklearnex .svm .SVC )
157
+ sklearnex_methods .append (sklearnex .svm .NuSVC )
158
+ sklearnex_methods .append (sklearnex .linear_model .LogisticRegression )
159
+
160
+ STRING_TO_CLASS .update ({f"{ t .__name__ } _sklearnex" : t for t in sklearnex_methods })
144
161
145
162
146
- STRING_TO_CLASS = {
147
- t .__name__ : t for t in all_methods
148
- }
149
163
150
164
151
165
@@ -439,15 +453,6 @@ def get_search_space(name, n_classes=3, n_samples=100, n_features=100, random_st
439
453
if name in GROUPNAMES :
440
454
name_list = GROUPNAMES [name ]
441
455
return get_search_space (name_list , n_classes = n_classes , n_samples = n_samples , n_features = n_features , random_state = random_state )
442
-
443
- if name is None :
444
- warnings .warn (f"name is None" )
445
- return None
446
-
447
- if name not in STRING_TO_CLASS :
448
- print ("FOOO " , name )
449
- warnings .warn (f"Could not find class for { name } " )
450
- return None
451
456
452
457
return get_node (name , n_classes = n_classes , n_samples = n_samples , n_features = n_features , random_state = random_state )
453
458
@@ -458,21 +463,21 @@ def get_node(name, n_classes=3, n_samples=100, n_features=100, random_state=None
458
463
# TODO Add AdaBoostRegressor, AdaBoostClassifier as wrappers? wrap a decision tree with different params?
459
464
# TODO add other meta-estimators?
460
465
if name == "RFE_classification" :
461
- rfe_sp = get_configspace (name , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
466
+ rfe_sp = get_configspace (name = "RFE" , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
462
467
ext = get_node ("ExtraTreesClassifier" , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
463
- return WrapperPipeline (nodegen = ext , method = RFE , configspace = rfe_sp )
468
+ return WrapperPipeline (nodegen = ext , method = RFE , space = rfe_sp )
464
469
if name == "RFE_regression" :
465
- rfe_sp = get_configspace (name , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
470
+ rfe_sp = get_configspace (name = "RFE" , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
466
471
ext = get_node ("ExtraTreesRegressor" , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
467
- return WrapperPipeline (nodegen = ext , method = RFE , configspace = rfe_sp )
472
+ return WrapperPipeline (nodegen = ext , method = RFE , space = rfe_sp )
468
473
if name == "SelectFromModel_classification" :
469
- sfm_sp = get_configspace (name , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
474
+ sfm_sp = get_configspace (name = "SelectFromModel" , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
470
475
ext = get_node ("ExtraTreesClassifier" , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
471
- return WrapperPipeline (nodegen = ext , method = SelectFromModel , configspace = sfm_sp )
476
+ return WrapperPipeline (nodegen = ext , method = SelectFromModel , space = sfm_sp )
472
477
if name == "SelectFromModel_regression" :
473
- sfm_sp = get_configspace (name , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
478
+ sfm_sp = get_configspace (name = "SelectFromModel" , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
474
479
ext = get_node ("ExtraTreesRegressor" , n_classes = n_classes , n_samples = n_samples , random_state = random_state )
475
- return WrapperPipeline (nodegen = ext , method = SelectFromModel , configspace = sfm_sp )
480
+ return WrapperPipeline (nodegen = ext , method = SelectFromModel , space = sfm_sp )
476
481
477
482
#these are nodes that have special search spaces which require custom parsing of the hyperparameters
478
483
if name == "RobustScaler" :
0 commit comments