catboost评估/测试集,带有观测权重

2024-09-27 09:24:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个包含人员列表的数据集(按财政代码编制索引)。目标变量是二进制的(1:买一本书,0:否则)。 所有的预测因子都是绝对的(例如:国籍、城市、道路、收入的bin等)。 会计代码可以重复两次,每个实例/观察值都有一个权重(如果不重复,则为1,如果重复,则为0到1之间的值)。在

例如,数据集看起来像

财务代码|权重|目标|分类信息

AAAAA 1 | 0.98 | 0 |。。。。。。在

AAAAA 1 | 0.02 | 1 |。。。。。。。。在

我有两个数据集(具有相同的变量),一个用于训练(X_train=分类变量的矩阵,y_train是目标变量,train_weight是训练集中每个观察值的权重),另一个用于测试(具有相同的变量和含义:X_测试、y_测试和test_weight)。在

我尝试了一个Catboost模型-CatBoostClassifier。在

增压器和超参数化

分类特征指数=np.哪里(X.d类型==np.类别)[0]

model=CatBoostClassifier(迭代次数=5000,学习率=0.1,深度=7,loss_function='Logloss',eval_metric='AUC')

拟合模型

在模型.拟合(列车

        y_train,
         eval_set=(X_test,y_test),
         cat_features=categorical_features_indices,
         use_best_model=True,
         verbose=True,
         sample_weight=train_weight)

问题是:如何考虑测试集中的观察值也有权重(TEST_weight)?你知道吗?在

我阅读了关于https://tech.yandex.com/catboost/doc/dg/concepts/python-reference_catboostregressor_fit-docpage/的文档,但是我没有发现任何有用的东西,而不是lightgbm文档(如果考虑另一个boosting模型的话)。在


Tags: 数据代码模型test目标modelevalnp
1条回答
网友
1楼 · 发布于 2024-09-27 09:24:17

我的理解是,在这种情况下,你需要使用一个游泳池,即

model.fit(Pool(X_train,y_train,weight=train_weight)
      eval_set=Pool(X_test,y_test,weight=test_weight),
      cat_features=categorical_features_indices,
      use_best_model=True,
      verbose=True)

相关问题 更多 >

    热门问题