Catboost 不能做多变量回归?

问题:

代码

# CatBoost Regression Model
from catboost import CatBoostRegressor

model = CatBoostRegressor(
        iterations = 2000, 
        learning_rate = 0.1,
        l2_leaf_reg = 3,  
        depth = 9,
        rsm = 1,
        border_count=128,
        bagging_temperature= 10,
        verbose=False,
        loss_function='MultiRMSE',
    
                            )
    

model.fit(X_train, y_train)
y_pred = model.predict(X_test)

报错

Currently only multi-regression, multilabel and survival objectives work with multidimensional target 

原因

Catboost 默认用的回归的损失是RMSE,所以针对多变量的回归任务/分类任务需要更改损失函数

解决方法

model = CatBoostRegressor(
        iterations = 2000, 
        learning_rate = 0.1,
        l2_leaf_reg = 3,  
        depth = 9,
        rsm = 1,
        border_count=128,
        bagging_temperature= 10,
        verbose=False,
        loss_function='MultiRMSE', ## 针对多变量任务更改损失函数改成MultiRMSE 或者 MultiLogit
    
                            )

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 15:04:01       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 15:04:01       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 15:04:01       57 阅读
  4. Python语言-面向对象

    2024-07-17 15:04:01       68 阅读

热门阅读

  1. Qt将毫秒转化为时分秒格式

    2024-07-17 15:04:01       22 阅读
  2. 查找json中指定节点的值,替换为指定的值

    2024-07-17 15:04:01       20 阅读
  3. SpringBoot --附包扫描、自动装配原理(面试题)

    2024-07-17 15:04:01       20 阅读
  4. 常见的服务器存储安全威胁及应对措施

    2024-07-17 15:04:01       16 阅读
  5. Mybatis——配置之映射器说明

    2024-07-17 15:04:01       18 阅读
  6. Matlab课程设计——手指静脉识别项目

    2024-07-17 15:04:01       19 阅读