===== MAIN: learn based on training data =====
=== START program1: ./run learn ../dataset6/train
=== START program4: ./run split ../dataset6/train ../program1/cv.train ../program1/cv.test
=== END program4: ./run split ../dataset6/train ../program1/cv.train ../program1/cv.test --- OK [0s]
===== Cross-validator: trying hyperparameter 0.01 =====
=== START _tune-hyperparameter0: ./run setHyperparameter 0.01
=== END _tune-hyperparameter0: ./run setHyperparameter 0.01 --- OK [0s]
=== START _tune-hyperparameter0: ./run learn ../cv.train
Using hyperparameter c = 0.01
Reading training examples... (78 examples) done
Training set properties: 55 features, 2 classes
Iter 1: .........*(NumConst=1, SV=1, CEps=100.0000, QPEps=0.0000)
Iter 2: *(NumConst=2, SV=2, CEps=323.8826, QPEps=0.0000)
Iter 3: *(NumConst=3, SV=3, CEps=216.2210, QPEps=0.0000)
Iter 4: *(NumConst=4, SV=3, CEps=33.7067, QPEps=1.9388)
Iter 5: *(NumConst=5, SV=4, CEps=21.1726, QPEps=7.4003)
Iter 6: .........*(NumConst=6, SV=4, CEps=11.1139, QPEps=4.5448)
Iter 7: *(NumConst=7, SV=5, CEps=1.7284, QPEps=0.8613)
Iter 8: *(NumConst=8, SV=5, CEps=5.8042, QPEps=0.0123)
Iter 9: .........*(NumConst=9, SV=5, CEps=0.7571, QPEps=0.2427)
Iter 10: *(NumConst=10, SV=6, CEps=0.3745, QPEps=0.1110)
Iter 11: *(NumConst=11, SV=6, CEps=0.1522, QPEps=0.0626)
Iter 12: .........(NumConst=11, SV=6, CEps=0.0373, QPEps=0.0626)
Final epsilon on KKT-Conditions: 0.06257
Upper bound on duality gap: 0.00017
Dual objective value: dval=0.91222
Primal objective value: pval=0.91239
Total number of constraints in final working set: 11 (of 11)
Number of iterations: 12
Number of calls to 'find_most_violated_constraint': 312
Number of SV: 6
Norm of weight vector: |w|=0.20133
Value of slack variable (on working set): xi=89.21250
Value of slack variable (global): xi=89.21250
Norm of longest difference vector: ||Psi(x,y)-Psi(x,ybar)||=830.73912
Runtime in cpu-seconds: 1.25
Final number of constraints in cache: 156
Compacting linear model...done
Writing learned model...done
=== END _tune-hyperparameter0: ./run learn ../cv.train --- OK [1s]
=== START _tune-hyperparameter0: ./run predict ../cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions0
Reading model...done.
Reading test examples... (33 examples) done.
Classifying test examples...done
Runtime (without IO) in cpu-seconds: 0.00
Average loss on test set: 54.5455
Zero/one-error on test set: 54.55% (15 correct, 18 incorrect, 33 total)
=== END _tune-hyperparameter0: ./run predict ../cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions0 --- OK [0s]
=== START program5: ./run evaluate ../program1/cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions0
=== END program5: ./run evaluate ../program1/cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions0 --- OK [0s]
CV error rate 0.545454545454545 with hyperparameter 0.01
===== Cross-validator: trying hyperparameter 0.1 =====
=== START _tune-hyperparameter1: ./run setHyperparameter 0.1
=== END _tune-hyperparameter1: ./run setHyperparameter 0.1 --- OK [0s]
=== START _tune-hyperparameter1: ./run learn ../cv.train
Using hyperparameter c = 0.1
Reading training examples... (78 examples) done
Training set properties: 55 features, 2 classes
Iter 1: .........*(NumConst=1, SV=1, CEps=100.0000, QPEps=0.0000)
Iter 2: *(NumConst=2, SV=2, CEps=323.8826, QPEps=0.0000)
Iter 3: *(NumConst=3, SV=3, CEps=693.8920, QPEps=0.0007)
Iter 4: *(NumConst=4, SV=3, CEps=28.6587, QPEps=0.2994)
Iter 5: *(NumConst=5, SV=4, CEps=23.2680, QPEps=11.1861)
Iter 6: .........*(NumConst=6, SV=3, CEps=12.0857, QPEps=4.4124)
Iter 7: *(NumConst=7, SV=3, CEps=4.8285, QPEps=0.7774)
Iter 8: *(NumConst=8, SV=4, CEps=2.1959, QPEps=1.0525)
Iter 9: .........*(NumConst=9, SV=3, CEps=1.2133, QPEps=0.4417)
Iter 10: *(NumConst=10, SV=4, CEps=0.7409, QPEps=0.3700)
Iter 11: *(NumConst=11, SV=4, CEps=0.4411, QPEps=0.2204)
Iter 12: *(NumConst=12, SV=4, CEps=0.4714, QPEps=0.1330)
Iter 13: *(NumConst=13, SV=5, CEps=0.2406, QPEps=0.1194)
Iter 14: .........*(NumConst=14, SV=4, CEps=0.1194, QPEps=0.0238)
Iter 15: .........(NumConst=14, SV=4, CEps=0.0381, QPEps=0.0238)
Final epsilon on KKT-Conditions: 0.03812
Upper bound on duality gap: 0.00326
Dual objective value: dval=7.80853
Primal objective value: pval=7.81179
Total number of constraints in final working set: 14 (of 14)
Number of iterations: 15
Number of calls to 'find_most_violated_constraint': 390
Number of SV: 4
Norm of weight vector: |w|=1.46854
Value of slack variable (on working set): xi=67.32052
Value of slack variable (global): xi=67.33479
Norm of longest difference vector: ||Psi(x,y)-Psi(x,ybar)||=831.41726
Runtime in cpu-seconds: 3.59
Final number of constraints in cache: 156
Compacting linear model...done
Writing learned model...done
=== END _tune-hyperparameter1: ./run learn ../cv.train --- OK [4s]
=== START _tune-hyperparameter1: ./run predict ../cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions1
Reading model...done.
Reading test examples... (33 examples) done.
Classifying test examples...done
Runtime (without IO) in cpu-seconds: 0.00
Average loss on test set: 21.2121
Zero/one-error on test set: 21.21% (26 correct, 7 incorrect, 33 total)
=== END _tune-hyperparameter1: ./run predict ../cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions1 --- OK [0s]
=== START program5: ./run evaluate ../program1/cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions1
=== END program5: ./run evaluate ../program1/cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions1 --- OK [0s]
CV error rate 0.212121212121212 with hyperparameter 0.1
===== Cross-validator: trying hyperparameter 1.0 =====
=== START _tune-hyperparameter2: ./run setHyperparameter 1.0
=== END _tune-hyperparameter2: ./run setHyperparameter 1.0 --- OK [0s]
=== START _tune-hyperparameter2: ./run learn ../cv.train
Using hyperparameter c = 1.0
Reading training examples... (78 examples) done
Training set properties: 55 features, 2 classes
Iter 1: .........*(NumConst=1, SV=1, CEps=100.0000, QPEps=0.0000)
Iter 2: *(NumConst=2, SV=2, CEps=323.8826, QPEps=0.0000)
Iter 3: *(NumConst=3, SV=3, CEps=693.8920, QPEps=0.0004)
Iter 4: *(NumConst=4, SV=4, CEps=41.6730, QPEps=14.9731)
Iter 5: .........*(NumConst=5, SV=4, CEps=16.9685, QPEps=8.4586)
Iter 6: *(NumConst=6, SV=4, CEps=31.7120, QPEps=8.3154)
Iter 7: *(NumConst=7, SV=4, CEps=20.3598, QPEps=8.4649)
Iter 8: *(NumConst=8, SV=5, CEps=16.9681, QPEps=8.4168)
Iter 9: *(NumConst=9, SV=6, CEps=9.8600, QPEps=4.8678)
Iter 10: *(NumConst=10, SV=5, CEps=5.0198, QPEps=2.4162)
Iter 11: *(NumConst=11, SV=6, CEps=6.1071, QPEps=2.4201)
Iter 12: *(NumConst=12, SV=7, CEps=2.5589, QPEps=1.2760)
Iter 13: .........*(NumConst=13, SV=6, CEps=2.6243, QPEps=1.3115)
Iter 14: *(NumConst=14, SV=6, CEps=2.4708, QPEps=1.2346)
Iter 15: *(NumConst=15, SV=7, CEps=0.7355, QPEps=0.3675)
Iter 16: .........(NumConst=15, SV=7, CEps=0.0938, QPEps=0.3675)
Final epsilon on KKT-Conditions: 0.36746
Upper bound on duality gap: 0.22447
Dual objective value: dval=53.06195
Primal objective value: pval=53.28642
Total number of constraints in final working set: 15 (of 15)
Number of iterations: 16
Number of calls to 'find_most_violated_constraint': 312
Number of SV: 7
Norm of weight vector: |w|=4.29374
Value of slack variable (on working set): xi=43.97456
Value of slack variable (global): xi=44.06833
Norm of longest difference vector: ||Psi(x,y)-Psi(x,ybar)||=831.41726
Runtime in cpu-seconds: 69.92
Final number of constraints in cache: 167
Compacting linear model...done
Writing learned model...done
=== END _tune-hyperparameter2: ./run learn ../cv.train --- OK [70s]
=== START _tune-hyperparameter2: ./run predict ../cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions2
Reading model...done.
Reading test examples... (33 examples) done.
Classifying test examples...done
Runtime (without IO) in cpu-seconds: 0.00
Average loss on test set: 21.2121
Zero/one-error on test set: 21.21% (26 correct, 7 incorrect, 33 total)
=== END _tune-hyperparameter2: ./run predict ../cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions2 --- OK [0s]
=== START program5: ./run evaluate ../program1/cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions2
=== END program5: ./run evaluate ../program1/cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions2 --- OK [0s]
CV error rate 0.212121212121212 with hyperparameter 1.0
===== Cross-validator: trying hyperparameter 10.0 =====
=== START _tune-hyperparameter3: ./run setHyperparameter 10.0
=== END _tune-hyperparameter3: ./run setHyperparameter 10.0 --- OK [0s]
=== START _tune-hyperparameter3: ./run learn ../cv.train
Using hyperparameter c = 10.0
Reading training examples... (78 examples) done
Training set properties: 55 features, 2 classes
Iter 1: .........*(NumConst=1, SV=1, CEps=100.0000, QPEps=0.0000)
Iter 2: *(NumConst=2, SV=2, CEps=323.8826, QPEps=0.0000)
Iter 3: *(NumConst=3, SV=3, CEps=693.8920, QPEps=0.0004)
Iter 4: *(NumConst=4, SV=3, CEps=41.6730, QPEps=18.2176)
Iter 5: *(NumConst=5, SV=5, CEps=122.2927, QPEps=19.9303)
Iter 6: *(NumConst=6, SV=4, CEps=11.8687, QPEps=5.9283)
Iter 7: *(NumConst=7, SV=6, CEps=20.9517, QPEps=5.9303)
Iter 8: *(NumConst=8, SV=6, CEps=38.5171, QPEps=1.7858)
Iter 9: .........*(NumConst=9, SV=7, CEps=8.8475, QPEps=4.3990)
Iter 10: *(NumConst=10, SV=6, CEps=15.8638, QPEps=4.4185)
Iter 11: *(NumConst=11, SV=7, CEps=6.5295, QPEps=2.9761)
Iter 12: *(NumConst=12, SV=7, CEps=4.9584, QPEps=2.4730)
Iter 13: *(NumConst=13, SV=6, CEps=3.3213, QPEps=1.5296)
Iter 14: *(NumConst=14, SV=7, CEps=1.2569, QPEps=0.6275)
Iter 15: .........*(NumConst=15, SV=9, CEps=0.9123, QPEps=1.3423)
Iter 16: *(NumConst=16, SV=9, CEps=1.2239, QPEps=0.4553)
Iter 17: *(NumConst=17, SV=10, CEps=0.5386, QPEps=0.2689)
Iter 18: *(NumConst=18, SV=8, CEps=0.3515, QPEps=0.1757)
Iter 19: *(NumConst=19, SV=8, CEps=0.3266, QPEps=0.1632)
Iter 20: *(NumConst=20, SV=8, CEps=0.4512, QPEps=0.1252)
Iter 21: *(NumConst=21, SV=9, CEps=0.2405, QPEps=0.0879)
Iter 22: .........(NumConst=21, SV=9, CEps=0.0704, QPEps=0.0879)
Final epsilon on KKT-Conditions: 0.08789
Upper bound on duality gap: 0.86701
Dual objective value: dval=427.67036
Primal objective value: pval=428.53737
Total number of constraints in final working set: 21 (of 21)
Number of iterations: 22
Number of calls to 'find_most_violated_constraint': 312
Number of SV: 9
Norm of weight vector: |w|=8.06617
Value of slack variable (on working set): xi=39.55461
Value of slack variable (global): xi=39.60058
Norm of longest difference vector: ||Psi(x,y)-Psi(x,ybar)||=831.41726
Runtime in cpu-seconds: 394.63
Final number of constraints in cache: 162
Compacting linear model...done
Writing learned model...done
=== END _tune-hyperparameter3: ./run learn ../cv.train --- OK [396s]
=== START _tune-hyperparameter3: ./run predict ../cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions3
Reading model...done.
Reading test examples... (33 examples) done.
Classifying test examples...done
Runtime (without IO) in cpu-seconds: 0.00
Average loss on test set: 21.2121
Zero/one-error on test set: 21.21% (26 correct, 7 incorrect, 33 total)
=== END _tune-hyperparameter3: ./run predict ../cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions3 --- OK [0s]
=== START program5: ./run evaluate ../program1/cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions3
=== END program5: ./run evaluate ../program1/cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions3 --- OK [0s]
CV error rate 0.212121212121212 with hyperparameter 10.0
===== Cross-validator: trying hyperparameter 100.0 =====
=== START _tune-hyperparameter4: ./run setHyperparameter 100.0
=== END _tune-hyperparameter4: ./run setHyperparameter 100.0 --- OK [0s]
=== START _tune-hyperparameter4: ./run learn ../cv.train
Using hyperparameter c = 100.0
Reading training examples... (78 examples) done
Training set properties: 55 features, 2 classes
Iter 1: .........*(NumConst=1, SV=1, CEps=100.0000, QPEps=0.0000)
Iter 2: *(NumConst=2, SV=2, CEps=323.8826, QPEps=0.0000)
Iter 3: *(NumConst=3, SV=3, CEps=693.8920, QPEps=0.0004)
Iter 4: *(NumConst=4, SV=3, CEps=41.6730, QPEps=0.1364)
Iter 5: *(NumConst=5, SV=3, CEps=272.1627, QPEps=13.5672)
Iter 6: *(NumConst=6, SV=4, CEps=56.3724, QPEps=0.4093)
Iter 7: .........*(NumConst=7, SV=5, CEps=12.1387, QPEps=6.0618)
Iter 8: *(NumConst=8, SV=7, CEps=10.6115, QPEps=5.3051)
Iter 9: *(NumConst=9, SV=6, CEps=12.0180, QPEps=5.3047)
Iter 10: *(NumConst=10, SV=7, CEps=8.9113, QPEps=4.4482)
Iter 11: *(NumConst=11, SV=8, CEps=7.8002, QPEps=8.7163)
Iter 12: *(NumConst=12, SV=7, CEps=6.8608, QPEps=3.3676)
Iter 13: *(NumConst=13, SV=6, CEps=2.8415, QPEps=1.4198)
Iter 14: *(NumConst=14, SV=6, CEps=3.2046, QPEps=1.4183)
Iter 15: *(NumConst=15, SV=6, CEps=2.0216, QPEps=1.0107)
Iter 16: *(NumConst=16, SV=9, CEps=1.8876, QPEps=0.6035)
Iter 17: *(NumConst=17, SV=7, CEps=2.8204, QPEps=0.1403)
Iter 18: *(NumConst=18, SV=8, CEps=2.5786, QPEps=0.7719)
Iter 19: *(NumConst=19, SV=7, CEps=1.5989, QPEps=0.6082)
Iter 20: *(NumConst=20, SV=7, CEps=1.8012, QPEps=0.1539)
Iter 21: .........*(NumConst=21, SV=7, CEps=1.6476, QPEps=0.0960)
Iter 22: *(NumConst=22, SV=8, CEps=1.4114, QPEps=0.4905)
Iter 23: *(NumConst=23, SV=9, CEps=1.1657, QPEps=0.5461)
Iter 24: *(NumConst=24, SV=8, CEps=1.2646, QPEps=0.4330)
Iter 25: *(NumConst=25, SV=6, CEps=0.6591, QPEps=0.1079)
Iter 26: *(NumConst=26, SV=7, CEps=0.3781, QPEps=0.1725)
Iter 27: *(NumConst=27, SV=7, CEps=0.6776, QPEps=0.0134)
Iter 28: *(NumConst=28, SV=7, CEps=0.3664, QPEps=0.0039)
Iter 29: *(NumConst=29, SV=8, CEps=0.2559, QPEps=0.1021)
Iter 30: *(NumConst=30, SV=8, CEps=0.2792, QPEps=0.1229)
Iter 31: *(NumConst=31, SV=8, CEps=0.4955, QPEps=0.0198)
Iter 32: *(NumConst=32, SV=7, CEps=0.2171, QPEps=0.0350)
Iter 33: *(NumConst=33, SV=9, CEps=0.1679, QPEps=0.1839)
Iter 34: *(NumConst=34, SV=8, CEps=0.1912, QPEps=13.9487)
Iter 35: *(NumConst=35, SV=10, CEps=0.4513, QPEps=0.0837)
Iter 36: *(NumConst=36, SV=10, CEps=0.1914, QPEps=0.0839)
Iter 37: .........*(NumConst=37, SV=10, CEps=0.1603, QPEps=0.0801)
Iter 38: *(NumConst=38, SV=10, CEps=0.1418, QPEps=0.0697)
Iter 39: *(NumConst=39, SV=9, CEps=0.1429, QPEps=0.0260)
Iter 40: *(NumConst=40, SV=10, CEps=0.1573, QPEps=0.0515)
Iter 41: .........(NumConst=40, SV=10, CEps=0.0648, QPEps=0.0515)
Final epsilon on KKT-Conditions: 0.06478
Upper bound on duality gap: 9.58139
Dual objective value: dval=2646.36332
Primal objective value: pval=2655.94471
Total number of constraints in final working set: 40 (of 40)
Number of iterations: 41
Number of calls to 'find_most_violated_constraint': 390
Number of SV: 10
Norm of weight vector: |w|=50.47193
Value of slack variable (on working set): xi=13.75902
Value of slack variable (global): xi=13.82237
Norm of longest difference vector: ||Psi(x,y)-Psi(x,ybar)||=831.41726
Runtime in cpu-seconds: 2021.61
Final number of constraints in cache: 156
Compacting linear model...done
Writing learned model...done
=== END _tune-hyperparameter4: ./run learn ../cv.train --- OK [2027s]
=== START _tune-hyperparameter4: ./run predict ../cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions4
Reading model...done.
Reading test examples... (33 examples) done.
Classifying test examples...done
Runtime (without IO) in cpu-seconds: 0.00
Average loss on test set: 0.0000
Zero/one-error on test set: 0.00% (33 correct, 0 incorrect, 33 total)
=== END _tune-hyperparameter4: ./run predict ../cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions4 --- OK [0s]
=== START program5: ./run evaluate ../program1/cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions4
=== END program5: ./run evaluate ../program1/cv.test /home/mlcomp/worker1/scratch/program1/cvTestPredictions4 --- OK [0s]
CV error rate 0.0 with hyperparameter 100.0
Best hyperparameter value is 100.0; got CV error rate 0.0
=== END program1: ./run learn ../dataset6/train --- OK [2498s]
===== MAIN: predict/evaluate on train data =====
=== START program7: ./run stripLabels ../dataset6/train ../program0/evalTrain.in
=== END program7: ./run stripLabels ../dataset6/train ../program0/evalTrain.in --- OK [0s]
=== START program1: ./run predict ../program0/evalTrain.in ../program0/evalTrain.out
=== START _tune-hyperparameter-best: ./run predict ../../program0/evalTrain.in ../../program0/evalTrain.out
Reading model...done.
Reading test examples... (111 examples) done.
Classifying test examples...done
Runtime (without IO) in cpu-seconds: 0.00
Average loss on test set: 45.9459
Zero/one-error on test set: 45.95% (60 correct, 51 incorrect, 111 total)
=== END _tune-hyperparameter-best: ./run predict ../../program0/evalTrain.in ../../program0/evalTrain.out --- OK [0s]
=== END program1: ./run predict ../program0/evalTrain.in ../program0/evalTrain.out --- OK [0s]
=== START program8: ./run evaluate ../dataset6/train ../program0/evalTrain.out
=== END program8: ./run evaluate ../dataset6/train ../program0/evalTrain.out --- OK [0s]
===== MAIN: predict/evaluate on test data =====
=== START program7: ./run stripLabels ../dataset6/test ../program0/evalTest.in
=== END program7: ./run stripLabels ../dataset6/test ../program0/evalTest.in --- OK [0s]
=== START program1: ./run predict ../program0/evalTest.in ../program0/evalTest.out
=== START _tune-hyperparameter-best: ./run predict ../../program0/evalTest.in ../../program0/evalTest.out
Reading model...done.
Reading test examples... (15 examples) done.
Classifying test examples...done
Runtime (without IO) in cpu-seconds: 0.00
Average loss on test set: 53.3333
Zero/one-error on test set: 53.33% (7 correct, 8 incorrect, 15 total)
=== END _tune-hyperparameter-best: ./run predict ../../program0/evalTest.in ../../program0/evalTest.out --- OK [0s]
=== END program1: ./run predict ../program0/evalTest.in ../program0/evalTest.out --- OK [0s]
=== START program8: ./run evaluate ../dataset6/test ../program0/evalTest.out
=== END program8: ./run evaluate ../dataset6/test ../program0/evalTest.out --- OK [0s]
real 41m38.413s
user 41m31.532s
sys 0m0.252s
Run specification
supervised-learning: Main entry for supervised learning for training and testing a program on a dataset.
(learner:Program) tune-hyperparameter: Sets the hyperparameter
(numProbes:int) 5
(learner:Program) svmlight_multiclass-linear: SVMlight for multiclass classification (http://svmlight.joachims.org/svm_multiclass.html)
(splitter:Program) multiclass-utils: Validates and inspects a dataset in MulticlassClassification format.
(evaluator:Program[Evaluate]) classification-evaluator: Evaluates predictions of classification datasets (discrete outputs).
(dataset:Dataset) annealing: 126 examples, 55 features
(stripper:Program[Strip]) multiclass-utils: Validates and inspects a dataset in MulticlassClassification format.
(evaluator:Program[Evaluate]) classification-evaluator: Evaluates predictions of classification datasets (discrete outputs).
When you generate a run, you can set a time limit for the run (no more than 24 hours). After that point, we will terminate the program.
Your program can use 1.5GB of memory. More information here.
Go to the page for the run and look at the log file for signs of the responsible error.
You can also download the run and run it locally on your machine (a README file should
be included in the download which provides more information).
We said that a run was simply a program/dataset pair, but that's not the full story.
A run actually includes other helper programs such as the evaluation program and
various programs for reductions (e.g., one-versus-all, hyperparameter tuning).
More formally, a run is a given by a run specification,
which can be found on the page for any run.
A run specification is a tree where each internal node represents a program
and its children represents the arguments to be passed into its constructor.
For example, the one-versus-all program takes your binary classification program
as a constructor argument and behaves like a multiclass classification program.
Must be logged in to post comments.