Skip to content
Back to skills

Catboost Multirmse

ASecurity

CatBoostRegressor with MultiRMSE loss for native multi-output regression, predicting all targets in a single model without per-target loops.

  • 61 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 12, 2026
developmentpython

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add wenmin-wu/ds-skills --skill catboost-multirmse --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Catboost Multirmse?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Catboost Multirmse
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wenmin-wu-catboost-multirmse/badge)](https://www.skillsdirectory.com/skills/wenmin-wu-catboost-multirmse)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: tabular-catboost-multirmse
description: >
  CatBoostRegressor with MultiRMSE loss for native multi-output regression, predicting all targets in a single model without per-target loops.
---
# CatBoost MultiRMSE

## Overview

Most gradient boosting libraries (XGBoost, LightGBM) require fitting one model per output column for multi-output regression — slow when there are 100+ targets. CatBoost's `MultiRMSE` loss natively handles multiple outputs in a single model, sharing tree structure across targets. This is 5-50x faster than per-target loops and can capture cross-target correlations. Combined with SVD target compression, it enables efficient prediction of thousands of outputs.

## Quick Start

```python
from catboost import CatBoostRegressor

params = {
    'learning_rate': 0.1,
    'depth': 7,
    'l2_leaf_reg': 4,
    'loss_function': 'MultiRMSE',
    'eval_metric': 'MultiRMSE',
    'iterations': 200,
    'boosting_type': 'Plain',
    'bootstrap_type': 'Bayesian',
    'allow_const_label': True,
    'random_state': 42,
}

model = CatBoostRegressor(**params)
model.fit(X_train, Y_train, eval_set=(X_val, Y_val), verbose=50)
preds = model.predict(X_test)  # shape: (n_test, n_targets)
```

## Workflow

1. Prepare target matrix Y with shape (n_samples, n_targets)
2. Configure CatBoostRegressor with `loss_function='MultiRMSE'`
3. Fit single model on all targets simultaneously
4. Predict returns (n_samples, n_targets) array directly

## Key Decisions

- **boosting_type='Plain'**: Required for MultiRMSE; 'Ordered' not supported
- **vs per-target loop**: Single model is faster but may underperform if targets have very different distributions
- **Target reduction**: Combine with SVD to predict 128 components instead of 23,000 raw targets
- **GPU support**: Set `task_type='GPU'` for large datasets; MultiRMSE supports GPU training
- **depth**: Start at 6-8; deeper trees risk overfitting on compressed targets

## References

- [LB T15 MSCI Multiome CatBoostRegressor](https://www.kaggle.com/code/xiafire/lb-t15-msci-multiome-catboostregressor)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.