Hola, yo vengo calculando los scores como
scores_train = cross_validate(....)
train_rmsle_scores = np.sqrt(-scores_train['train_score'])
val_rmsle_scores = np.sqrt(-scores_train['test_score'])
train_rmsle_scores.mean()
val_rmsle_scores.mean()
En comet, subo los scores como:
train_scores = np.sqrt(-cv_scores['train_score'])
val_scores = np.sqrt(-cv_scores['test_score'])
Donde cv_scores es scores_train.
En metricas obtengo un resultado distinto al que calculo con el mean.
Por ejemplo para decision trees calculado por mi obtengo:
Error de validación para un arbol de decision con parametros por defecto 0.5372219221737858
Y en comet tengo dos cosas:
Val RMSLE 0.539441
Val RMSLE Mean 0.537222
Entonces, que es Val RMSLE? Ya que para mi era el mean, pero aparentemente hace otra cuenta.
Este es el codigo completo para guardar los resultados:
def save__results(cmt_exp, cv_scores, kf, model, clip_negative=False):
n_splits = kf
if clip_negative: #es para xgboost
train_scores = np.sqrt(np.maximum(0, -cv_scores['train_score']))
val_scores = np.sqrt(np.maximum(0, -cv_scores['test_score']))
else:
train_scores = np.sqrt(-cv_scores['train_score'])
val_scores = np.sqrt(-cv_scores['test_score'])
model_params = model.get_params(deep=True)
cmt_exp.log_parameters(model_params)
for k in range(n_splits):
metrics_step = {
'Train RMSLE': train_scores[k],
'Val RMSLE': val_scores[k],
}
cmt_exp.log_metrics(metrics_step, step=k)
cmt_exp.log_metrics({
'Train RMSLE Mean': train_scores.mean(),
'Train RMSLE Std': train_scores.std(),
'Val RMSLE Mean': val_scores.mean(),
'Val RMSLE Std': val_scores.std(),
})
return train_scores.mean(), val_scores.mean()
Gracias.