diff --git a/AiDotNetBenchmarkTests/AiDotNetBenchmarkTests.csproj b/AiDotNetBenchmarkTests/AiDotNetBenchmarkTests.csproj
index f672707..18d124b 100644
--- a/AiDotNetBenchmarkTests/AiDotNetBenchmarkTests.csproj
+++ b/AiDotNetBenchmarkTests/AiDotNetBenchmarkTests.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/src/OutlierRemoval/IQROutlierRemoval.cs b/src/OutlierRemoval/IQROutlierRemoval.cs
index abb105c..bdca48d 100644
--- a/src/OutlierRemoval/IQROutlierRemoval.cs
+++ b/src/OutlierRemoval/IQROutlierRemoval.cs
@@ -60,4 +60,4 @@ internal override (double[][], double[][]) RemoveOutliers(double[][] rawInputs,
return (finalInputs, finalOutputs);
}
-}
+}
\ No newline at end of file
diff --git a/src/Regression/MultipleRegression.cs b/src/Regression/MultipleRegression.cs
index 26173ac..04922c0 100644
--- a/src/Regression/MultipleRegression.cs
+++ b/src/Regression/MultipleRegression.cs
@@ -43,11 +43,10 @@ public MultipleRegression(double[][] inputs, double[] outputs, MultipleRegressio
ValidationHelper.CheckForInvalidTrainingSizes(trainingSize, inputSize - trainingSize, Math.Min(2, inputs.Length), trainingPctSize);
// Perform the actual work necessary to create the prediction and metrics models
- var (trainingInputs, trainingOutputs, oosInputs, oosOutputs) =
- PrepareData(inputs, outputs, trainingSize, RegressionOptions.Normalization);
- var (cleanedInputs, cleanedOutputs) =
- RegressionOptions.OutlierRemoval?.RemoveOutliers(trainingInputs, trainingOutputs) ?? (trainingInputs, trainingOutputs);
- Fit(cleanedInputs, cleanedOutputs);
+ var (cleanedInputs, cleanedOutputs) = RegressionOptions.OutlierRemoval?.RemoveOutliers(inputs, outputs) ?? (inputs, outputs);
+ var (normalizedInputs, normalizedOutputs, oosInputs, oosOutputs) =
+ PrepareData(cleanedInputs, cleanedOutputs, trainingSize, RegressionOptions.Normalization);
+ Fit(normalizedInputs, normalizedOutputs);
Predictions = Transform(oosInputs);
Metrics = new Metrics(Predictions, oosOutputs, inputs.Length, RegressionOptions.OutlierRemoval?.Quartile);
}
diff --git a/src/Regression/MultivariateRegression.cs b/src/Regression/MultivariateRegression.cs
index 746b135..90066b2 100644
--- a/src/Regression/MultivariateRegression.cs
+++ b/src/Regression/MultivariateRegression.cs
@@ -44,11 +44,10 @@ public MultivariateRegression(double[][] inputs, double[][] outputs, MultipleReg
ValidationHelper.CheckForInvalidTrainingSizes(trainingSize, inputSize - trainingSize, Math.Min(2, inputSize), trainingPctSize);
// Perform the actual work necessary to create the prediction and metrics models
- var (trainingInputs, trainingOutputs, oosInputs, oosOutputs) =
- PrepareData(inputs, outputs, trainingSize, RegressionOptions.Normalization);
- var (cleanedInputs, cleanedOutputs) =
- RegressionOptions.OutlierRemoval?.RemoveOutliers(trainingInputs, trainingOutputs) ?? (trainingInputs, trainingOutputs);
- Fit(cleanedInputs, cleanedOutputs);
+ var (cleanedInputs, cleanedOutputs) = RegressionOptions.OutlierRemoval?.RemoveOutliers(inputs, outputs) ?? (inputs, outputs);
+ var (normalizedInputs, normalizedOutputs, oosInputs, oosOutputs) =
+ PrepareData(cleanedInputs, cleanedOutputs, trainingSize, RegressionOptions.Normalization);
+ Fit(normalizedInputs, normalizedOutputs);
Predictions = Transform(oosInputs);
Metrics = new Metrics(Predictions, oosOutputs, inputSize, RegressionOptions.OutlierRemoval?.Quartile);
}
diff --git a/src/Regression/PolynomialRegression.cs b/src/Regression/PolynomialRegression.cs
index 89a3b39..90f82aa 100644
--- a/src/Regression/PolynomialRegression.cs
+++ b/src/Regression/PolynomialRegression.cs
@@ -50,11 +50,10 @@ public PolynomialRegression(double[] inputs, double[] outputs, int order, Multip
ValidationHelper.CheckForInvalidTrainingSizes(trainingSize, inputSize - trainingSize, Math.Min(2, inputSize), trainingPctSize);
// Perform the actual work necessary to create the prediction and metrics models
- var (trainingInputs, trainingOutputs, oosInputs, oosOutputs) =
- PrepareData(inputs, outputs, trainingSize, RegressionOptions.Normalization);
- var (cleanedInputs, cleanedOutputs) =
- RegressionOptions.OutlierRemoval?.RemoveOutliers(trainingInputs, trainingOutputs) ?? (trainingInputs, trainingOutputs);
- Fit(cleanedInputs, cleanedOutputs);
+ var (cleanedInputs, cleanedOutputs) = RegressionOptions.OutlierRemoval?.RemoveOutliers(inputs, outputs) ?? (inputs, outputs);
+ var (normalizedInputs, normalizedOutputs, oosInputs, oosOutputs) =
+ PrepareData(cleanedInputs, cleanedOutputs, trainingSize, RegressionOptions.Normalization);
+ Fit(normalizedInputs, normalizedOutputs);
Predictions = Transform(oosInputs);
Metrics = new Metrics(Predictions, oosOutputs, inputSize, RegressionOptions.OutlierRemoval?.Quartile);
}
diff --git a/src/Regression/SimpleRegression.cs b/src/Regression/SimpleRegression.cs
index 49cdb9d..eb78584 100644
--- a/src/Regression/SimpleRegression.cs
+++ b/src/Regression/SimpleRegression.cs
@@ -43,11 +43,10 @@ public SimpleRegression(double[] inputs, double[] outputs, SimpleRegressionOptio
ValidationHelper.CheckForInvalidTrainingSizes(trainingSize, inputSize - trainingSize, Math.Min(2, inputSize), trainingPctSize);
// Perform the actual work necessary to create the prediction and metrics models
- var (trainingInputs, trainingOutputs, oosInputs, oosOutputs) =
- PrepareData(inputs, outputs, trainingSize, RegressionOptions.Normalization);
- var (cleanedInputs, cleanedOutputs) =
- RegressionOptions.OutlierRemoval?.RemoveOutliers(trainingInputs, trainingOutputs) ?? (trainingInputs, trainingOutputs);
- Fit(cleanedInputs, cleanedOutputs);
+ var (cleanedInputs, cleanedOutputs) = RegressionOptions.OutlierRemoval?.RemoveOutliers(inputs, outputs) ?? (inputs, outputs);
+ var (normalizedInputs, normalizedOutputs, oosInputs, oosOutputs) =
+ PrepareData(cleanedInputs, cleanedOutputs, trainingSize, RegressionOptions.Normalization);
+ Fit(normalizedInputs, normalizedOutputs);
Predictions = Transform(oosInputs);
Metrics = new Metrics(Predictions, oosOutputs, inputs.Length, RegressionOptions.OutlierRemoval?.Quartile);
}
diff --git a/src/Regression/WeightedRegression.cs b/src/Regression/WeightedRegression.cs
index 82fa3ef..9831a55 100644
--- a/src/Regression/WeightedRegression.cs
+++ b/src/Regression/WeightedRegression.cs
@@ -52,11 +52,10 @@ public WeightedRegression(double[] inputs, double[] outputs, double[] weights, i
ValidationHelper.CheckForInvalidTrainingSizes(trainingSize, inputSize - trainingSize, Math.Min(2, inputs.Length), trainingPctSize);
// Perform the actual work necessary to create the prediction and metrics models
- var (trainingInputs, trainingOutputs, oosInputs, oosOutputs) =
- PrepareData(inputs, outputs, trainingSize, RegressionOptions.Normalization);
- var (cleanedInputs, cleanedOutputs) =
- RegressionOptions.OutlierRemoval?.RemoveOutliers(trainingInputs, trainingOutputs) ?? (trainingInputs, trainingOutputs);
- Fit(cleanedInputs, cleanedOutputs);
+ var (cleanedInputs, cleanedOutputs) = RegressionOptions.OutlierRemoval?.RemoveOutliers(inputs, outputs) ?? (inputs, outputs);
+ var (normalizedInputs, normalizedOutputs, oosInputs, oosOutputs) =
+ PrepareData(cleanedInputs, cleanedOutputs, trainingSize, RegressionOptions.Normalization);
+ Fit(normalizedInputs, normalizedOutputs);
Predictions = Transform(oosInputs);
Metrics = new Metrics(Predictions, oosOutputs, inputs.Length, RegressionOptions.OutlierRemoval?.Quartile);
}
diff --git a/tests/AiDotNetTests.csproj b/tests/AiDotNetTests.csproj
index 8b5b483..28213c0 100644
--- a/tests/AiDotNetTests.csproj
+++ b/tests/AiDotNetTests.csproj
@@ -11,15 +11,15 @@
-
+
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/UnitTests/SimpleRegressionTests.cs b/tests/UnitTests/SimpleRegressionTests.cs
index 822f366..a726c37 100644
--- a/tests/UnitTests/SimpleRegressionTests.cs
+++ b/tests/UnitTests/SimpleRegressionTests.cs
@@ -11,17 +11,17 @@ public class SimpleRegressionTests
private readonly double[] _inputs = new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
private readonly double[] _outputs = new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
- private readonly double[] _OddOddInputs = new double[] { 75, 285, 126, 116, 156, 320, 186, 208, 144, 183, 28, 69, 106, 74, 201, 84, 48, 249, 102, 228, 60, 40, 39, 186, 28, 172, 150, 156, 9, 12, 192, 120, 90, 222, 12, 140 };
- private readonly double[] _OddOddOutputs = new double[] { 97, 72, 184, 320, 28, 304, 21, 52, 132, 198, 45, 98, 220, 188, 31, 294, 324, 195, 102, 90, 270, 122, 380, 20, 148, 183, 152, 90, 93, 48, 192, 4, 80, 198, 108, 138 };
+ private readonly double[] _OddEvenInputs = new double[] { 75, 285, 126, 116, 156, 320, 186, 208, 144, 183, 28, 69, 106, 74, 201, 84, 48, 249, 102, 228, 60, 40, 39, 186, 28, 172, 150, 156, 9, 12, 192, 120, 90, 222, 12, 140 };
+ private readonly double[] _OddEvenOutputs = new double[] { 97, 72, 184, 320, 28, 304, 21, 52, 132, 198, 45, 98, 220, 188, 31, 294, 324, 195, 102, 90, 270, 122, 380, 20, 148, 183, 152, 90, 93, 48, 192, 4, 80, 198, 108, 138 };
- private readonly double[] _OddEvenInputs = new double[] { 168, 14, 20, 112, 100, 158, 55, 207, 150, 198, 66, 268, 252, 136, 66, 5, 14, 50, 368, 184, 171, 288, 136, 90, 282, 46, 43, 216, 76, 15, 177, 116, 42, 152, 130, 176, 100, 276 };
- private readonly double[] _OddEvenOutputs = new double[] { 16, 54, 320, 87, 261, 20, 240, 171, 148, 16, 99, 44, 34, 272, 71, 44, 27, 188, 152, 29, 213, 38, 292, 188, 11, 396, 196, 100, 82, 97, 104, 141, 146, 65, 135, 194, 17, 150 };
+ private readonly double[] _OddOddInputs = new double[] { 168, 14, 20, 112, 100, 158, 55, 207, 150, 198, 66, 268, 252, 136, 66, 5, 14, 50, 368, 184, 171, 288, 136, 90, 282, 46, 43, 216, 76, 15, 177, 116, 42, 152, 130, 176, 100, 276 };
+ private readonly double[] _OddOddOutputs = new double[] { 16, 54, 320, 87, 261, 20, 240, 171, 148, 16, 99, 44, 34, 272, 71, 44, 27, 188, 152, 29, 213, 38, 292, 188, 11, 396, 196, 100, 82, 97, 104, 141, 146, 65, 135, 194, 17, 150 };
- private readonly double[] _EvenOddInputs = new double[] { 90, 57, 78, 25, 36, 60, 94, 270, 380, 240, 104, 15, 268, 261, 8, 219, 78, 74, 42, 63, 80, 51, 98, 116, 43, 332, 328, 65, 264, 380, 76, 260, 29, 231, 240, 45, 90, 180, 60, 84 };
- private readonly double[] _EvenOddOutputs = new double[] { 280, 258, 68, 91, 110, 40, 188, 258, 292, 246, 60, 304, 180, 17, 114, 11, 64, 88, 74, 165, 84, 18, 60, 48, 2, 320, 42, 224, 64, 58, 204, 134, 210, 60, 172, 104, 54, 71, 176, 340 };
+ private readonly double[] _EvenEvenInputs = new double[] { 90, 57, 78, 25, 36, 60, 94, 270, 380, 240, 104, 15, 268, 261, 8, 219, 78, 74, 42, 63, 80, 51, 98, 116, 43, 332, 328, 65, 264, 380, 76, 260, 29, 231, 240, 45, 90, 180, 60, 84, 31, 112, 40, 300, 205};
+ private readonly double[] _EvenEvenOutputs = new double[] { 280, 258, 68, 91, 110, 40, 188, 258, 292, 246, 60, 304, 180, 17, 114, 11, 64, 88, 74, 165, 84, 18, 60, 48, 2, 320, 42, 224, 64, 58, 204, 134, 210, 60, 172, 104, 54, 71, 176, 340, 63, 44, 1, 290, 60};
- private readonly double[] _EvenEvenInputs = new double[] { 98, 140, 148, 23, 172, 171, 64, 28, 213, 20, 294, 224, 2, 45, 90, 10, 123, 260, 178, 8, 45, 44, 180, 33, 70, 18, 158, 183, 272, 86, 68, 10, 8, 81, 117, 12, 30, 220, 200, 34, 60, 43 };
- private readonly double[] _EvenEvenOutputs = new double[] { 46, 224, 170, 22, 164, 78, 54, 63, 376, 40, 92, 180, 172, 18, 33, 12, 64, 89, 186, 42, 30, 32, 81, 126, 93, 134, 156, 12, 176, 136, 372, 82, 2, 168, 43, 76, 78, 52, 284, 49, 33, 98 };
+ private readonly double[] _EvenOddInputs = new double[] { 340, 316, 270, 122, 189, 54, 280, 12, 32, 62, 51, 76, 16, 243, 70, 66, 90, 104, 288, 236, 6, 152, 76, 90, 69, 188, 208, 59, 136, 16, 208, 336, 264, 77, 116, 75, 111, 38, 148 };
+ private readonly double[] _EvenOddOutputs = new double[] { 210, 132, 90, 48, 400, 178, 72, 84, 79, 122, 152, 96, 261, 22, 92, 80, 18, 122, 9, 1, 232, 220, 4, 396, 16, 16, 147, 33, 198, 45, 3, 82, 84, 18, 41, 234, 64, 32, 29 };
[Fact]
public void SimpleRegression_Constructor_Throws_ArgumentNullException_When_Inputs_Is_Null()
@@ -142,15 +142,15 @@ public void SimpleRegression_Constructor_Returns_Valid_Predictions_With_ZScoreNo
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_Correct_OddOdd_StandardQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_OddEven_ExclusiveQuartile()
{
// Arrange
- var q1ExpectedValue = 117.55507280870674;
- var q2ExpectedValue = 125.05847199082586;
- var q3ExpectedValue = 134.86129995456216;
+ var q1ExpectedValue = 152.0795839065193;
+ var q2ExpectedValue = 171.77754652688836;
+ var q3ExpectedValue = 195.05695689641541;
// Act
- var sut = new SimpleRegression(_OddOddInputs, _OddOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new StandardQuartile())});
+ var sut = new SimpleRegression(_OddEvenInputs, _OddEvenOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new ExclusiveQuartile()) });
// Assert
var metrics = sut.Metrics;
@@ -160,12 +160,12 @@ public void SimpleRegression_Verify_Values_Are_Correct_OddOdd_StandardQuartile()
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_correct_OddEven_StandardQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_OddEven_StandardQuartile()
{
// Arrange
- var q1ExpectedValue = 88.173752177739459;
- var q2ExpectedValue = 128.84172997826749;
- var q3ExpectedValue = 174.75718878531529;
+ var q1ExpectedValue = 152.0795839065193;
+ var q2ExpectedValue = 162.82392715399334;
+ var q3ExpectedValue = 195.05695689641541;
// Act
var sut = new SimpleRegression(_OddEvenInputs, _OddEvenOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new StandardQuartile()) });
@@ -178,15 +178,15 @@ public void SimpleRegression_Verify_Values_Are_correct_OddEven_StandardQuartile(
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_correct_EvenOdd_StandardQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_OddEven_InclusiveQuartile()
{
// Arrange
- var q1ExpectedValue = 142.70566255778118;
- var q2ExpectedValue = 159.12400616332820;
- var q3ExpectedValue = 236.52476887519259;
+ var q1ExpectedValue = 156.85484757206331;
+ var q2ExpectedValue = 171.77754652688836;
+ var q3ExpectedValue = 195.05695689641541;
// Act
- var sut = new SimpleRegression(_EvenOddInputs, _EvenOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new StandardQuartile()) });
+ var sut = new SimpleRegression(_OddEvenInputs, _OddEvenOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new InclusiveQuartile()) });
// Assert
var metrics = sut.Metrics;
@@ -196,15 +196,15 @@ public void SimpleRegression_Verify_Values_Are_correct_EvenOdd_StandardQuartile(
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_correct_EvenEven_StandardQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_OddOdd_ExclusiveQuartile()
{
// Arrange
- var q1ExpectedValue = 29.183869666497486;
- var q2ExpectedValue = 75.697713334559751;
- var q3ExpectedValue = 212.13832142754239;
+ var q1ExpectedValue = 118.53688757999335;
+ var q2ExpectedValue = 138.76510111583207;
+ var q3ExpectedValue = 162.96333786898498;
// Act
- var sut = new SimpleRegression(_EvenEvenInputs, _EvenEvenOutputs, new SimpleRegressionOptions { OutlierRemoval = new ThresholdOutlierRemoval() });
+ var sut = new SimpleRegression(_OddOddInputs, _OddOddOutputs, new SimpleRegressionOptions { OutlierRemoval = new IQROutlierRemoval(new ExclusiveQuartile()) });
// Assert
var metrics = sut.Metrics;
@@ -214,15 +214,15 @@ public void SimpleRegression_Verify_Values_Are_correct_EvenEven_StandardQuartile
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_Correct_OddOdd_InclusiveQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_OddOdd_StandardQuartile()
{
// Arrange
- var q1ExpectedValue = 118.52325334833502;
- var q2ExpectedValue = 125.54256226064001;
- var q3ExpectedValue = 134.86129995456216;
+ var q1ExpectedValue = 118.53688757999335;
+ var q2ExpectedValue = 138.76510111583207;
+ var q3ExpectedValue = 151.99851184021256;
// Act
- var sut = new SimpleRegression(_OddOddInputs, _OddOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new InclusiveQuartile()) });
+ var sut = new SimpleRegression(_OddOddInputs, _OddOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new StandardQuartile()) });
// Assert
var metrics = sut.Metrics;
@@ -232,15 +232,15 @@ public void SimpleRegression_Verify_Values_Are_Correct_OddOdd_InclusiveQuartile(
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_correct_OddEven_InclusiveQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_OddOdd_InclusiveQuartile()
{
// Arrange
- var q1ExpectedValue = 97.356843939149;
- var q2ExpectedValue = 132.7773407331573;
- var q3ExpectedValue = 185.25215079835479;
+ var q1ExpectedValue = 123.26310569584352;
+ var q2ExpectedValue = 138.76510111583207;
+ var q3ExpectedValue = 151.99851184021256;
// Act
- var sut = new SimpleRegression(_OddEvenInputs, _OddEvenOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new InclusiveQuartile()) });
+ var sut = new SimpleRegression(_OddOddInputs, _OddOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new InclusiveQuartile()) });
// Assert
var metrics = sut.Metrics;
@@ -250,15 +250,15 @@ public void SimpleRegression_Verify_Values_Are_correct_OddEven_InclusiveQuartile
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_correct_EvenOdd_InclusiveQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_EvenEven_ExclusiveQuartile()
{
// Arrange
- var q1ExpectedValue = 145.83296610169492;
- var q2ExpectedValue = 159.1240061633282;
- var q3ExpectedValue = 236.52476887519259;
+ var q1ExpectedValue = 123.72734667709028;
+ var q2ExpectedValue = 128.71082261723302;
+ var q3ExpectedValue = 140.7328161223196;
// Act
- var sut = new SimpleRegression(_EvenOddInputs, _EvenOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new InclusiveQuartile()) });
+ var sut = new SimpleRegression(_EvenEvenInputs, _EvenEvenOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new ExclusiveQuartile()) });
// Assert
var metrics = sut.Metrics;
@@ -268,15 +268,15 @@ public void SimpleRegression_Verify_Values_Are_correct_EvenOdd_InclusiveQuartile
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_correct_EvenEven_InclusiveQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_EvenEven_StandardQuartile()
{
// Arrange
- var q1ExpectedValue = 29.183869666497486;
- var q2ExpectedValue = 75.697713334559751;
- var q3ExpectedValue = 212.13832142754239;
+ var q1ExpectedValue = 123.72734667709028;
+ var q2ExpectedValue = 128.71082261723302;
+ var q3ExpectedValue = 140.7328161223196;
// Act
- var sut = new SimpleRegression(_EvenEvenInputs, _EvenEvenOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new InclusiveQuartile()) });
+ var sut = new SimpleRegression(_EvenEvenInputs, _EvenEvenOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new StandardQuartile()) });
// Assert
var metrics = sut.Metrics;
@@ -286,15 +286,15 @@ public void SimpleRegression_Verify_Values_Are_correct_EvenEven_InclusiveQuartil
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_Correct_OddOdd_ExclusiveQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_EvenEven_InclusiveQuartile()
{
// Arrange
- var q1ExpectedValue = 118.52325334833502;
- var q2ExpectedValue = 125.54256226064001;
- var q3ExpectedValue = 135.22436765692277;
+ var q1ExpectedValue = 123.72734667709028;
+ var q2ExpectedValue = 128.71082261723302;
+ var q3ExpectedValue = 140.7328161223196;
// Act
- var sut = new SimpleRegression(_OddOddInputs, _OddOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new ExclusiveQuartile()) });
+ var sut = new SimpleRegression(_EvenEvenInputs, _EvenEvenOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new InclusiveQuartile()) });
// Assert
var metrics = sut.Metrics;
@@ -304,15 +304,15 @@ public void SimpleRegression_Verify_Values_Are_Correct_OddOdd_ExclusiveQuartile(
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_correct_OddEven_ExclusiveQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_EvenOdd_ExclusiveQuartile()
{
// Arrange
- var q1ExpectedValue = 88.173752177739459;
- var q2ExpectedValue = 132.7773407331573;
- var q3ExpectedValue = 185.25215079835479;
+ var q1ExpectedValue = 111.72163717784437;
+ var q2ExpectedValue = 123.79567181111241;
+ var q3ExpectedValue = 129.41379404863304;
// Act
- var sut = new SimpleRegression(_OddEvenInputs, _OddEvenOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new ExclusiveQuartile()) });
+ var sut = new SimpleRegression(_EvenOddInputs, _EvenOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new ExclusiveQuartile()) });
// Assert
var metrics = sut.Metrics;
@@ -322,15 +322,15 @@ public void SimpleRegression_Verify_Values_Are_correct_OddEven_ExclusiveQuartile
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_correct_EvenOdd_ExclusiveQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_EvenOdd_StandardQuartile()
{
// Arrange
- var q1ExpectedValue = 142.70566255778118;
- var q2ExpectedValue = 159.1240061633282;
- var q3ExpectedValue = 244.08241910631742;
+ var q1ExpectedValue = 111.72163717784437;
+ var q2ExpectedValue = 123.79567181111241;
+ var q3ExpectedValue = 127.49180486211283;
// Act
- var sut = new SimpleRegression(_EvenOddInputs, _EvenOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new ExclusiveQuartile()) });
+ var sut = new SimpleRegression(_EvenOddInputs, _EvenOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new StandardQuartile()) });
// Assert
var metrics = sut.Metrics;
@@ -340,15 +340,15 @@ public void SimpleRegression_Verify_Values_Are_correct_EvenOdd_ExclusiveQuartile
}
[Fact]
- public void SimpleRegression_Verify_Values_Are_correct_EvenEven_ExclusiveQuartile()
+ public void SimpleRegression_Verify_Values_Are_Correct_EvenOdd_InclusiveQuartile()
{
// Arrange
- var q1ExpectedValue = 29.183869666497486;
- var q2ExpectedValue = 75.697713334559751;
- var q3ExpectedValue = 212.13832142754239;
+ var q1ExpectedValue = 117.43832296339168;
+ var q2ExpectedValue = 123.79567181111241;
+ var q3ExpectedValue = 127.49180486211283;
// Act
- var sut = new SimpleRegression(_EvenEvenInputs, _EvenEvenOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new ExclusiveQuartile()) });
+ var sut = new SimpleRegression(_EvenOddInputs, _EvenOddOutputs, new SimpleRegressionOptions() { OutlierRemoval = new IQROutlierRemoval(new InclusiveQuartile()) });
// Assert
var metrics = sut.Metrics;