← retour aux snippets

catboost: CV avec Pool et paramètres

Validation croisée rapide avec catboost.cv et Pool.

python ml #catboost#cv#pool

objectif

Validation croisée rapide avec catboost.cv et Pool.

code minimal

import numpy as np
from catboost import Pool, cv

X = np.random.RandomState(0).randn(100, 3)
y = (X[:,0] + X[:,1] > 0).astype(int)

pool = Pool(X, y)
params = {"loss_function":"Logloss", "iterations":200, "learning_rate":0.1, "depth":6, "random_seed":0, "logging_level":"Silent"}
cvres = cv(pool, params, fold_count=5, shuffle=True, partition_random_seed=0)
print("test-Logloss-mean" in cvres.columns)

utilisation

# Extraire best_iteration
best_iter = int(cvres.shape[0])
print(best_iter > 0)

variante(s) utile(s)

# Ajuster class_weights
params["class_weights"] = [1.0, 2.0]
cvres2 = cv(pool, params, fold_count=3, shuffle=True, partition_random_seed=0)
print("test-Logloss-std" in cvres2.columns)

notes

  • catboost.cv renvoie un DataFrame avec métriques moyennes/écart-type; utilisez-le pour choisir iterations/learning_rate.