如何在Light GBM管道中使用eval_result方法?

我使用了Light GBM算法,并创建了一个如下所示的管道:

#model definitionmodel_lgbm = LGBMClassifier(                #training loss                objective='binary', # write a custom objective function that is cost sensitive                n_estimators =  params['n_estimators'],                max_depth =  params['max_depth'])#pipeline instantiation using a previoulsy defined feature engineering pipeline (it does scaling etc.)model_pipeline_lgbm = Pipeline(steps=[('preprocessor', feature_pipe_lgbm),                                      ('model_lgbm', model_lgbm),                                     ])#fit of feature pipeline and transformation of validation setsfeature_pipe_lgbm.fit(X_train, Y_train)X_val_trans = feature_pipe_lgbm.transform(X_val)X_train_trans = feature_pipe_lgbm.transform(X_train)encoded_column_names = ['f{}'.format(i) for i in range(X_val_trans.shape[1])]X_val_trans = pd.DataFrame(data=X_val_trans, columns=encoded_column_names, index=X_val.index)X_train_trans = pd.DataFrame(    data=X_train_trans, columns=encoded_column_names, index=X_train.index)#definition of evaluation set and evaluation metriceval_metric = "binary_logloss"eval_set = [(X_train_trans, Y_train), (X_val_trans, Y_val)]

然后我拟合了管道,并希望将评估结果存储在一个字典中,如下面的仓库所示:

evals_result = {}model_pipeline_lgbm.fit(X=X_train,                        y=Y_train,                        model_lgbm__eval_set=eval_set,                        # validation loss                        model_lgbm__eval_metric=eval_metric, #same here consider cost sensitvity                        model_lgbm__early_stopping_rounds= params['early_stopping_patience'],                        model_lgbm__evals_result=evals_result                        )

然而,我收到了以下错误:

TypeError: fit() got an unexpected keyword argument 'evals_result'

你知道我应该在管道的哪里定义eval_results,以便我可以调用它来创建图表吗?


回答:

你应该可以在.fit调用后的LGBMClassifier中访问它:

model_pipeline_lgbm.fit(...)model_pipeline_lgbm.steps['model_lgbm'].evals_result_

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注