3
3
// See the LICENSE file in the project root for more information.
4
4
5
5
using System ;
6
- using System . Reflection ;
7
6
using Microsoft . ML . Data ;
8
7
using Microsoft . VisualStudio . TestTools . UnitTesting ;
9
8
@@ -15,7 +14,7 @@ public class MetricsAgentsTests
15
14
[ TestMethod ]
16
15
public void BinaryMetricsGetScoreTest ( )
17
16
{
18
- var metrics = CreateInstance < BinaryClassificationMetrics > ( 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.7 , 0.8 ) ;
17
+ var metrics = MetricsUtil . CreateBinaryClassificationMetrics ( 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.7 , 0.8 ) ;
19
18
Assert . AreEqual ( 0.1 , GetScore ( metrics , BinaryClassificationMetric . Auc ) ) ;
20
19
Assert . AreEqual ( 0.2 , GetScore ( metrics , BinaryClassificationMetric . Accuracy ) ) ;
21
20
Assert . AreEqual ( 0.3 , GetScore ( metrics , BinaryClassificationMetric . PositivePrecision ) ) ;
@@ -29,7 +28,7 @@ public void BinaryMetricsGetScoreTest()
29
28
[ TestMethod ]
30
29
public void BinaryMetricsNonPerfectTest ( )
31
30
{
32
- var metrics = CreateInstance < BinaryClassificationMetrics > ( 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.7 , 0.8 ) ;
31
+ var metrics = MetricsUtil . CreateBinaryClassificationMetrics ( 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.7 , 0.8 ) ;
33
32
Assert . AreEqual ( false , IsPerfectModel ( metrics , BinaryClassificationMetric . Accuracy ) ) ;
34
33
Assert . AreEqual ( false , IsPerfectModel ( metrics , BinaryClassificationMetric . Auc ) ) ;
35
34
Assert . AreEqual ( false , IsPerfectModel ( metrics , BinaryClassificationMetric . Auprc ) ) ;
@@ -43,7 +42,7 @@ public void BinaryMetricsNonPerfectTest()
43
42
[ TestMethod ]
44
43
public void BinaryMetricsPerfectTest ( )
45
44
{
46
- var metrics = CreateInstance < BinaryClassificationMetrics > ( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
45
+ var metrics = MetricsUtil . CreateBinaryClassificationMetrics ( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
47
46
Assert . AreEqual ( true , IsPerfectModel ( metrics , BinaryClassificationMetric . Accuracy ) ) ;
48
47
Assert . AreEqual ( true , IsPerfectModel ( metrics , BinaryClassificationMetric . Auc ) ) ;
49
48
Assert . AreEqual ( true , IsPerfectModel ( metrics , BinaryClassificationMetric . Auprc ) ) ;
@@ -57,7 +56,7 @@ public void BinaryMetricsPerfectTest()
57
56
[ TestMethod ]
58
57
public void MulticlassMetricsGetScoreTest ( )
59
58
{
60
- var metrics = CreateInstance < MultiClassClassifierMetrics > ( 0.1 , 0.2 , 0.3 , 0.4 , 0 , 0.5 , new double [ ] { } ) ;
59
+ var metrics = MetricsUtil . CreateMulticlassClassificationMetrics ( 0.1 , 0.2 , 0.3 , 0.4 , 0 , 0.5 , new double [ ] { } ) ;
61
60
Assert . AreEqual ( 0.1 , GetScore ( metrics , MulticlassClassificationMetric . AccuracyMicro ) ) ;
62
61
Assert . AreEqual ( 0.2 , GetScore ( metrics , MulticlassClassificationMetric . AccuracyMacro ) ) ;
63
62
Assert . AreEqual ( 0.3 , GetScore ( metrics , MulticlassClassificationMetric . LogLoss ) ) ;
@@ -68,7 +67,7 @@ public void MulticlassMetricsGetScoreTest()
68
67
[ TestMethod ]
69
68
public void MulticlassMetricsNonPerfectTest ( )
70
69
{
71
- var metrics = CreateInstance < MultiClassClassifierMetrics > ( 0.1 , 0.2 , 0.3 , 0.4 , 0 , 0.5 , new double [ ] { } ) ;
70
+ var metrics = MetricsUtil . CreateMulticlassClassificationMetrics ( 0.1 , 0.2 , 0.3 , 0.4 , 0 , 0.5 , new double [ ] { } ) ;
72
71
Assert . AreEqual ( false , IsPerfectModel ( metrics , MulticlassClassificationMetric . AccuracyMacro ) ) ;
73
72
Assert . AreEqual ( false , IsPerfectModel ( metrics , MulticlassClassificationMetric . AccuracyMicro ) ) ;
74
73
Assert . AreEqual ( false , IsPerfectModel ( metrics , MulticlassClassificationMetric . LogLoss ) ) ;
@@ -79,7 +78,7 @@ public void MulticlassMetricsNonPerfectTest()
79
78
[ TestMethod ]
80
79
public void MulticlassMetricsPerfectTest ( )
81
80
{
82
- var metrics = CreateInstance < MultiClassClassifierMetrics > ( 1 , 1 , 0 , 1 , 0 , 1 , new double [ ] { } ) ;
81
+ var metrics = MetricsUtil . CreateMulticlassClassificationMetrics ( 1 , 1 , 0 , 1 , 0 , 1 , new double [ ] { } ) ;
83
82
Assert . AreEqual ( true , IsPerfectModel ( metrics , MulticlassClassificationMetric . AccuracyMicro ) ) ;
84
83
Assert . AreEqual ( true , IsPerfectModel ( metrics , MulticlassClassificationMetric . AccuracyMacro ) ) ;
85
84
Assert . AreEqual ( true , IsPerfectModel ( metrics , MulticlassClassificationMetric . LogLoss ) ) ;
@@ -90,7 +89,7 @@ public void MulticlassMetricsPerfectTest()
90
89
[ TestMethod ]
91
90
public void RegressionMetricsGetScoreTest ( )
92
91
{
93
- var metrics = CreateInstance < RegressionMetrics > ( 0.2 , 0.3 , 0.4 , 0.5 , 0.6 ) ;
92
+ var metrics = MetricsUtil . CreateRegressionMetrics ( 0.2 , 0.3 , 0.4 , 0.5 , 0.6 ) ;
94
93
Assert . AreEqual ( 0.2 , GetScore ( metrics , RegressionMetric . L1 ) ) ;
95
94
Assert . AreEqual ( 0.3 , GetScore ( metrics , RegressionMetric . L2 ) ) ;
96
95
Assert . AreEqual ( 0.4 , GetScore ( metrics , RegressionMetric . Rms ) ) ;
@@ -100,7 +99,7 @@ public void RegressionMetricsGetScoreTest()
100
99
[ TestMethod ]
101
100
public void RegressionMetricsNonPerfectTest ( )
102
101
{
103
- var metrics = CreateInstance < RegressionMetrics > ( 0.2 , 0.3 , 0.4 , 0.5 , 0.6 ) ;
102
+ var metrics = MetricsUtil . CreateRegressionMetrics ( 0.2 , 0.3 , 0.4 , 0.5 , 0.6 ) ;
104
103
Assert . AreEqual ( false , IsPerfectModel ( metrics , RegressionMetric . L1 ) ) ;
105
104
Assert . AreEqual ( false , IsPerfectModel ( metrics , RegressionMetric . L2 ) ) ;
106
105
Assert . AreEqual ( false , IsPerfectModel ( metrics , RegressionMetric . Rms ) ) ;
@@ -110,7 +109,7 @@ public void RegressionMetricsNonPerfectTest()
110
109
[ TestMethod ]
111
110
public void RegressionMetricsPerfectTest ( )
112
111
{
113
- var metrics = CreateInstance < RegressionMetrics > ( 0 , 0 , 0 , 0 , 1 ) ;
112
+ var metrics = MetricsUtil . CreateRegressionMetrics ( 0 , 0 , 0 , 0 , 1 ) ;
114
113
Assert . AreEqual ( true , IsPerfectModel ( metrics , RegressionMetric . L1 ) ) ;
115
114
Assert . AreEqual ( true , IsPerfectModel ( metrics , RegressionMetric . L2 ) ) ;
116
115
Assert . AreEqual ( true , IsPerfectModel ( metrics , RegressionMetric . Rms ) ) ;
@@ -122,17 +121,7 @@ public void RegressionMetricsPerfectTest()
122
121
public void ThrowNotSupportedMetricException ( )
123
122
{
124
123
throw MetricsAgentUtil . BuildMetricNotSupportedException ( BinaryClassificationMetric . Accuracy ) ;
125
- }
126
-
127
- private static T CreateInstance < T > ( params object [ ] args )
128
- {
129
- var type = typeof ( T ) ;
130
- var instance = type . Assembly . CreateInstance (
131
- type . FullName , false ,
132
- BindingFlags . Instance | BindingFlags . NonPublic ,
133
- null , args , null , null ) ;
134
- return ( T ) instance ;
135
- }
124
+ }
136
125
137
126
private static double GetScore ( BinaryClassificationMetrics metrics , BinaryClassificationMetric metric )
138
127
{
0 commit comments