【发布时间】:2023-01-01 16:41:05
【问题描述】:
我正在尝试将 X_valid 数据集传递到 CatBoost 库的拟合函数中的 eval_set 参数(这是指向 documentation 的链接),但我收到以下错误:
ValueError: Pipeline.fit does not accept the cat_features parameter. You can pass parameters to specific steps of your pipeline using the stepname__parameter format, e.g. `Pipeline.fit(X, y, logisticregression__sample_weight=sample_weight)`.
我正在运行的代码是
catboost_model = CatBoostClassifier(learning_rate=0.02, eval_metric='AUC')
pipeline = Pipeline([("classifer", catboost_model)])
cat_columns = ['frontend_client_type']
X_train, X_valid, y_train, y_valid = train_test_split(df[cat_columns], df['label'], test_size=0.2)
pipeline = pipeline.fit(
X_train,
y_train,
cat_features=cat_columns,
classifer__eval_set=[(X_valid, y_valid)],
)
我的合成数据框是
df = pd.DataFrame({'frontend_client_type':['android', 'android', 'ios', 'web', 'android'],
'label':[True, True, False, False, True]})
【问题讨论】:
-
安装管道时,应将
cat_features=cat_columns替换为classifer__cat_features=cat_columns。
标签: python scikit-learn catboost