Python 如何让CatBoost获得与AUC合作的对象重要性?

Python 如何让CatBoost获得与AUC合作的对象重要性?,python,machine-learning,catboost,Python,Machine Learning,Catboost,我复制了这个例子 该示例尝试将RMSE改进为更低->更好 我有限的理解是,CatBoost将尽量减少引擎盖下的日志损失。在这个例子中,较低的LogLoss似乎与较低的RMSE相关 RMSE on validation datset when 0 harmful objects from train are dropped: 0.25915746122622113 RMSE on validation datset when 250 harmful objects from train are d

我复制了这个例子

该示例尝试将RMSE改进为更低->更好

我有限的理解是,CatBoost将尽量减少引擎盖下的日志损失。在这个例子中,较低的LogLoss似乎与较低的RMSE相关

RMSE on validation datset when 0 harmful objects from train are dropped: 0.25915746122622113
RMSE on validation datset when 250 harmful objects from train are dropped: 0.25601149050939825
RMSE on validation datset when 500 harmful objects from train are dropped: 0.25158044983631966
RMSE on validation datset when 750 harmful objects from train are dropped: 0.24570533776587475
RMSE on validation datset when 1000 harmful objects from train are dropped: 0.24171376432589384
RMSE on validation datset when 1250 harmful objects from train are dropped: 0.23716221792112202
RMSE on validation datset when 1500 harmful objects from train are dropped: 0.23352830055657348
RMSE on validation datset when 1750 harmful objects from train are dropped: 0.23035731488436903
RMSE on validation datset when 2000 harmful objects from train are dropped: 0.2275943109556251
除了使用cb.eval_metricsvalization_pool['RMSE']['RMSE'][-1]观察RMSE外,该示例并未真正将RMSE用作自定义损失函数

cb = CatBoost({'iterations': 100, 'verbose': False, 'random_seed': 42})
print(cb.eval_metrics(validation_pool, ['RMSE'])['RMSE'][-1])
在我的例子中,我有一个二进制分类问题,我想最大化AUC。 我不确定我是否应该让代码保持原样,希望较低的logloss与较高的AUC不相关,或者我是否需要以不同的方式设置它,也许使用AUC作为自定义损失/评估度量函数,然后将重要性值符号从“正”翻转到“负”

在失去函数='RMSE'的情况下,CatBoost应尽量减少RMSE损失函数,而不是Logloss。RMSE是默认的CatBoost损耗功能

cb = CatBoost({'iterations': 100, 'verbose': False, 'random_seed': 42})
print(cb.eval_metrics(validation_pool, ['RMSE'])['RMSE'][-1])
CatBoost使用第页中的公式计算日志损失。因此,较低的对数损失与较高的AUC相关

所以,你只需要更换

cb=CatBoost{'iterations':100,'verbose':False,'random_seed':42}

cb=CatBoost{'loss_function':'Logloss','iterations':100,'verbose':False,'random_seed':42}


并不是观察RMSE,而是观察AUC。

RMSE和AUC测量不兼容;前者仅适用于回归设置,而后者仅适用于分类设置