Exemple #1
0
 def test_pipeline_clone_fit_score(self):
     X, y = load_boston(return_X_y=True)
     X, y = pd.DataFrame(X), pd.Series(y)
     X_train, X_test, y_train, y_test = train_test_split(X,
                                                         y,
                                                         random_state=42)
     transformer_list = [('pca', PCA(n_components=1)),
                         ('svd', TruncatedSVD(n_components=2))]
     union = FeatureUnion(transformer_list=transformer_list, n_jobs=-1)
     params = dict(n_estimators=10,
                   objective='reg:squarederror',
                   booster='gbtree')
     reg = Regressor(regressor_choice='xgbregressor',
                     pipeline_transform=('tr', union),
                     params=params)
     reg.get_pipeline(y=y_train)
     _class_before_clone = reg.pipe.__class__
     reg.pipe = clone(reg.pipe)
     y_pred = reg.fit(X_train, y_train).predict(X_test)
     score = reg.score(y_test, y_pred)
     self.assertEqual(_class_before_clone, reg.pipe.__class__)
     self.assertCountEqual(y_pred.index, y_test.index)
     self.assertGreaterEqual(score['mae'].values, 0.0)
     self.assertGreaterEqual(score['mse'].values, 0.0)
     self.assertLess(score['mae'].values, 11.0)
     self.assertLess(score['mse'].values, 232.0)
 def test_with_cv_pipeline_clone_fit_score(self):
     X, y = load_boston(return_X_y=True)
     X, y = pd.DataFrame(X), pd.Series(y)
     X_train, X_test, y_train, y_test = train_test_split(X,
                                                         y,
                                                         random_state=42)
     transformer_list = [('pca', PCA(n_components=1)),
                         ('svd', TruncatedSVD(n_components=2))]
     union = FeatureUnion(transformer_list=transformer_list, n_jobs=-1)
     stack = dict(regressors=['kneighborsregressor', 'bayesianridge'],
                  final_regressor='lasso')
     reg = Regressor(regressor_choice='mlxtendstackingcvregressor',
                     pipeline_transform=('tr', union),
                     stacking_options=dict(layers=stack))
     reg.get_pipeline(y=y_train)
     _class_before_clone = reg.pipe.__class__
     reg.pipe = clone(reg.pipe)
     y_pred = reg.fit(X_train, y_train).predict(X_test)
     score = reg.score(y_test, y_pred)
     self.assertEqual(_class_before_clone, reg.pipe.__class__)
     self.assertCountEqual(y_pred.index, y_test.index)
     self.assertGreaterEqual(score['mae'].values, 0.0)
     self.assertGreaterEqual(score['mse'].values, 0.0)
     self.assertLess(score['mae'].values, 11.0)
     self.assertLess(score['mse'].values, 232.0)