aboutsummaryrefslogtreecommitdiff
path: root/src/gensvm_optimize.c
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2020-07-12 23:37:57 +0100
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2020-07-12 23:37:57 +0100
commit19d98bb3d3ddf7c941c0d1e9df9e3614e0ccd68b (patch)
tree58cac0e2c30b7971d187deab2701ee70657b74a9 /src/gensvm_optimize.c
parentRemove unused OPTFLAGS (diff)
downloadgensvm-19d98bb3d3ddf7c941c0d1e9df9e3614e0ccd68b.tar.gz
gensvm-19d98bb3d3ddf7c941c0d1e9df9e3614e0ccd68b.zip
Print training accuracyHEADmaster
Diffstat (limited to 'src/gensvm_optimize.c')
-rw-r--r--src/gensvm_optimize.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/gensvm_optimize.c b/src/gensvm_optimize.c
index df46ec4..c6c8538 100644
--- a/src/gensvm_optimize.c
+++ b/src/gensvm_optimize.c
@@ -56,7 +56,7 @@
void gensvm_optimize(struct GenModel *model, struct GenData *data)
{
long it = 0;
- double L, Lbar;
+ double L, Lbar, acc;
long n = model->n;
long m = model->m;
@@ -98,9 +98,14 @@ void gensvm_optimize(struct GenModel *model, struct GenData *data)
Lbar = L;
L = gensvm_get_loss(model, data, work);
- if (it % GENSVM_PRINT_ITER == 0)
+ if (it % GENSVM_PRINT_ITER == 0) {
+ gensvm_predict_labels(data, model, work->yhat);
+ acc = gensvm_prediction_perf(data, work->yhat);
note("iter = %li, L = %15.16f, Lbar = %15.16f, "
- "reldiff = %15.16f\n", it, L, Lbar, (Lbar - L)/L);
+ "reldiff = %15.16f, acc = %.2f\n", it, L, Lbar,
+ (Lbar - L)/L, acc);
+ }
+
it++;
}
@@ -120,10 +125,14 @@ void gensvm_optimize(struct GenModel *model, struct GenData *data)
model->status = 2;
}
+ // compute final training accuracy
+ gensvm_predict_labels(data, model, work->yhat);
+ acc = gensvm_prediction_perf(data, work->yhat);
+
// print final iteration count and loss
note("Optimization finished, iter = %li, loss = %15.16f, "
- "rel. diff. = %15.16f\n", it-1, L,
- (Lbar - L)/L);
+ "rel. diff. = %15.16f, acc = %.2f\n", it-1, L,
+ (Lbar - L)/L, acc);
// compute and print the number of SVs in the model
note("Number of support vectors: %li\n", gensvm_num_sv(model));