为了使用 catboost 创建用于二元分类的个人评估函数,我使用了此处提到的示例:如何为 catboost 创建自定义评估指标?
但是,我在“approxes”数组中有负值作为评估函数的输入,并且不大于 0.5,因此当我们使用“expit(y_pred).astype(int)”将这个初始数组转换为整数数组时,所有值为 0,这适用于所有迭代。
我不明白为什么当我进行二元分类时我会有负值。
当我使用“F:beta”评估函数(或其他)时,它工作正常,并且学习按照我的预期进行。
或者这是我对事物正常运作方式的误解?
提前感谢您的反馈。
我在调试模式下运行程序,并对作为“evaluate”函数输入提供的“approxes”数组中的值进行统计。 但获得的最大值为 0.25,最小值降至 -1.25。
我期望的值介于 0 和 1 之间。
经过更多研究,我解决了我的问题。
如果有人遇到同样的问题,我会发布答案,而不是删除我的问题。
这是我对近似内容的误解。近似值为负值是正常的。您需要应用 sigmoid(使用 expit 或手动)它来切换到 0 和 1 之间的值。我提供的链接中的示例似乎不起作用。但现在对我来说没关系。