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)