normalization of methods

This commit is contained in:
Miha Kralj
2026-02-10 21:33:16 -08:00
parent 915d7a007b
commit 6d6259a47d
527 changed files with 10525 additions and 2123 deletions
+4 -4
View File
@@ -320,7 +320,7 @@ public class WrmseTests
predicted.Add(now.AddMinutes(i), i * 10 + 5);
}
var results = Wrmse.Calculate(actual, predicted, 3);
var results = Wrmse.Batch(actual, predicted, 3);
Assert.Equal(10, results.Count);
// All errors are 5, MSE = 25, RMSE = 5
@@ -342,7 +342,7 @@ public class WrmseTests
weights.Add(now.AddMinutes(i), 2.0); // Weight = 2
}
var results = Wrmse.Calculate(actual, predicted, weights, 3);
var results = Wrmse.Batch(actual, predicted, weights, 3);
Assert.Equal(10, results.Count);
// Weighted error = 2 * 100 = 200 per point, sum weights = 6 (period=3)
@@ -366,7 +366,7 @@ public class WrmseTests
}
}
Assert.Throws<ArgumentException>(() => Wrmse.Calculate(actual, predicted, 3));
Assert.Throws<ArgumentException>(() => Wrmse.Batch(actual, predicted, 3));
}
[Fact]
@@ -387,7 +387,7 @@ public class WrmseTests
}
}
Assert.Throws<ArgumentException>(() => Wrmse.Calculate(actual, predicted, weights, 3));
Assert.Throws<ArgumentException>(() => Wrmse.Batch(actual, predicted, weights, 3));
}
[Fact]
+11 -4
View File
@@ -197,7 +197,7 @@ public sealed class Wrmse : AbstractBase
/// <inheritdoc/>
public override TSeries Update(TSeries source)
{
throw new NotSupportedException("WRMSE requires two inputs. Use Calculate(actualSeries, predictedSeries, period) or Calculate(actualSeries, predictedSeries, weightsSeries, period).");
throw new NotSupportedException("WRMSE requires two inputs. Use Batch(actualSeries, predictedSeries, period) or Batch(actualSeries, predictedSeries, weightsSeries, period).");
}
/// <inheritdoc/>
@@ -221,7 +221,7 @@ public sealed class Wrmse : AbstractBase
/// <summary>
/// Calculates WRMSE for entire series with uniform weights.
/// </summary>
public static TSeries Calculate(TSeries actual, TSeries predicted, int period)
public static TSeries Batch(TSeries actual, TSeries predicted, int period)
{
if (actual.Count != predicted.Count)
{
@@ -246,7 +246,7 @@ public sealed class Wrmse : AbstractBase
/// <summary>
/// Calculates WRMSE for entire series with custom weights.
/// </summary>
public static TSeries Calculate(TSeries actual, TSeries predicted, TSeries weights, int period)
public static TSeries Batch(TSeries actual, TSeries predicted, TSeries weights, int period)
{
if (actual.Count != predicted.Count || actual.Count != weights.Count)
{
@@ -332,4 +332,11 @@ public sealed class Wrmse : AbstractBase
ErrorHelpers.ComputeWeightedErrors(actual, predicted, weights, weightedErrors);
ErrorHelpers.ApplyRollingWeightedMeanSqrt(weightedErrors, weights, output, period);
}
}
public static (TSeries Results, Wrmse Indicator) Calculate(TSeries actual, TSeries predicted, int period)
{
var indicator = new Wrmse(period);
TSeries results = Batch(actual, predicted, period);
return (results, indicator);
}
}