-
Notifications
You must be signed in to change notification settings - Fork 2
Description
I get an error when applying fit_score() to the documentation example for SequentialCVPipeline(),.
Error message: TypeError: ClassifierMixin.score() missing 1 required positional argument: 'y'
Example below:
import numpy as np
from panelsplit.cross_validation import PanelSplit
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from panelsplit.pipeline import SequentialCVPipeline
period = np.array([1, 2, 3, 4])
X = np.array([[4, 1], [1, 3], [5, 7], [6, 7]])
y = np.array([0, 1, 1, 0])
ps_1 = PanelSplit(periods=period, n_splits=2, include_first_train_in_test = True)
ps_2 = PanelSplit(periods=period, n_splits=2)
pipeline = SequentialCVPipeline([
('scaler', StandardScaler(), ps_1),
('classifier', LogisticRegression(), ps_2)
])
pipeline.fit_score(X, y)
Full error output below:
TypeError Traceback (most recent call last)
Cell In[14], line 16
11 ps_2 = PanelSplit(periods=period, n_splits=2)
12 pipeline = SequentialCVPipeline([
13 ('scaler', StandardScaler(), ps_1),
14 ('classifier', LogisticRegression(), ps_2)
15 ])
---> 16 pipeline.fit_score(X, y)
File .venv\Lib\site-packages\panelsplit\pipeline.py:111, in _make_method..method(self, X, y, **kwargs)
108 self.fitted_steps[name] = None
109 continue
--> 111 current_output, fitted_model = self.fit_method_step(
112 transformer, current_output, y, cv, return_output=True, method=method
113 )
115 self.fitted_steps[name] = fitted_model
116 else:
File .venv\Lib\site-packages\panelsplit\pipeline.py:336, in SequentialCVPipeline._fit_method_step(self, transformer, X, y, cv, return_output, method)
334 folds_models.append((test_idx, model_fold))
335 if return_output:
--> 336 output_trans = getattr(model_fold, method)(X_test)
337 # Pair each output with its original index.
338 for i, idx in enumerate(test_idx):
TypeError: ClassifierMixin.score() missing 1 required positional argument: 'y'