skills/cv/sigmoid-normalized-rmse/SKILL.md
Sigmoid-transformed normalized RMSE that maps error from [0,inf) to a bounded (0,1] similarity score using R2-score ratio
npx skillsauth add wenmin-wu/ds-skills cv-sigmoid-normalized-rmseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Standard RMSE is unbounded and hard to interpret across different scales. Normalize RMSE by dividing by the baseline error (predicting the mean), then apply a sigmoid transform 2 - 2/(1+exp(-x)) to map the result to (0, 1]. Perfect predictions score 1.0, predictions at baseline quality score ~0.63, and worse-than-baseline predictions approach 0. This creates a bounded, interpretable metric suitable for averaging across heterogeneous data series.
import numpy as np
from sklearn.metrics import r2_score
def sigmoid(x):
return 2 - 2 / (1 + np.exp(-x))
def sigmoid_normalized_rmse(y_true, y_pred):
r2 = r2_score(y_true, y_pred)
normalized_error = max(0, (1 - r2)) ** 0.5
return sigmoid(normalized_error)
y_true = [10, 20, 30, 40, 50]
y_pred = [12, 18, 33, 38, 52]
score = sigmoid_normalized_rmse(y_true, y_pred) # ~0.89
sqrt(max(0, 1 - R2))2 - 2/(1 + exp(-error))data-ai
Scaled Pinball Loss (SPL) metric for evaluating quantile forecasts, normalized by mean absolute successive differences of training data
data-ai
Walk backward through a time series and multiplicatively rescale segments when jumps exceed a fraction of the running mean to correct data collection anomalies
testing
Transform forecasting target to next/current ratio minus one so that optimizing MAE or squared error implicitly minimizes SMAPE
tools
Convert point forecasts to prediction intervals by scaling with logit-transformed quantile ratios passed through a Normal CDF