【发布时间】:2021-10-19 05:42:42
【问题描述】:
我想尝试库中的所有回归器。 因为我知道,一些回归器需要更多输入,所以我构建了 try 和 expept catch 块。
for name, estimator in sklearn.utils.all_estimators(type_filter='regressor'):
model = make_pipeline(StandardScaler(), estimator)
try:
scores = cross_validate(model, X, y, scoring='r2')
print(name, ': ', np.mean(scores['test_score']))
except:
print('Does not get printed.')
这会多次返回以下片段:
FitFailedWarning: Estimator fit failed. The score on this train-test partition for these parameters will be set to nan. Details:
Traceback (most recent call last):
File "venvpath\lib\site-packages\sklearn\model_selection\_validation.py", line 598, in _fit_and_score
estimator.fit(X_train, y_train, **fit_params)
File "venvpath\venv\lib\site-packages\sklearn\pipeline.py", line 346, in fit
self._final_estimator.fit(Xt, y, **fit_params_last_step)
TypeError: fit() missing 1 required positional argument: 'y'
在我看来这里有两个问题。 首先, exept 永远不会被调用。 其次,y输入不被识别。
我很感激任何形式的帮助。
【问题讨论】:
标签: python python-3.x machine-learning scikit-learn regression