def test_feature_preprocessor(self): X_train, y_train = self.X_train, self.y_train import importlib module_name = ".".join(fproc_name.split(".")[0:-1]) class_name = fproc_name.split(".")[-1] module = importlib.import_module(module_name) class_ = getattr(module, class_name) fproc = class_() from lale.lib.sklearn.one_hot_encoder import OneHotEncoder if isinstance(fproc, OneHotEncoder): # type: ignore # fproc = OneHotEncoder(handle_unknown = 'ignore') # remove the hack when this is fixed fproc = PCA() # test_schemas_are_schemas lale.type_checking.validate_is_schema(fproc.input_schema_fit()) lale.type_checking.validate_is_schema(fproc.input_schema_transform()) lale.type_checking.validate_is_schema(fproc.output_schema_transform()) lale.type_checking.validate_is_schema(fproc.hyperparam_schema()) # test_init_fit_transform trained = fproc.fit(self.X_train, self.y_train) _ = trained.transform(self.X_test) # test_predict_on_trainable trained = fproc.fit(X_train, y_train) fproc.transform(X_train) # test_to_json fproc.to_json() # test_in_a_pipeline # This test assumes that the output of feature processing is compatible with LogisticRegression from lale.lib.sklearn import LogisticRegression pipeline = fproc >> LogisticRegression() trained = pipeline.fit(self.X_train, self.y_train) _ = trained.predict(self.X_test) # Tune the pipeline with LR using Hyperopt from lale.lib.lale import Hyperopt hyperopt = Hyperopt(estimator=pipeline, max_evals=1, verbose=True, cv=3) trained = hyperopt.fit(self.X_train, self.y_train) _ = trained.predict(self.X_test)
def test_feature_preprocessor(self): X_train, y_train = self.X_train, self.y_train X_test, y_test = self.X_test, self.y_test import importlib module_name = ".".join(fproc_name.split('.')[0:-1]) class_name = fproc_name.split('.')[-1] module = importlib.import_module(module_name) class_ = getattr(module, class_name) fproc = class_() from lale.lib.sklearn.one_hot_encoder import OneHotEncoderImpl if isinstance(fproc._impl, OneHotEncoderImpl): #fproc = OneHotEncoder(handle_unknown = 'ignore') #remove the hack when this is fixed fproc = PCA() #test_schemas_are_schemas from lale.helpers import validate_is_schema validate_is_schema(fproc.input_schema_fit()) validate_is_schema(fproc.input_schema_transform()) validate_is_schema(fproc.output_schema()) validate_is_schema(fproc.hyperparam_schema()) #test_init_fit_transform trained = fproc.fit(self.X_train, self.y_train) predictions = trained.transform(self.X_test) #test_predict_on_trainable trained = fproc.fit(X_train, y_train) fproc.transform(X_train) #test_to_json fproc.to_json() #test_in_a_pipeline #This test assumes that the output of feature processing is compatible with LogisticRegression from lale.lib.sklearn import LogisticRegression pipeline = fproc >> LogisticRegression() trained = pipeline.fit(self.X_train, self.y_train) predictions = trained.predict(self.X_test) #Tune the pipeline with LR using HyperoptClassifier from lale.lib.lale import HyperoptClassifier hyperopt = HyperoptClassifier(model=pipeline, max_evals=1) trained = hyperopt.fit(self.X_train, self.y_train) predictions = trained.predict(self.X_test)