diff options
| author | Gertjan van den Burg <burg@ese.eur.nl> | 2016-09-20 16:39:32 +0200 |
|---|---|---|
| committer | Gertjan van den Burg <burg@ese.eur.nl> | 2016-09-20 16:39:32 +0200 |
| commit | 6767624ba7ed53b01daec2a654a7f41180c90b90 (patch) | |
| tree | dbd6959bb4980cbe504f04593277644083313d48 | |
| parent | Switch to using exit_failure and use of err for errors (diff) | |
| download | gensvm-6767624ba7ed53b01daec2a654a7f41180c90b90.tar.gz gensvm-6767624ba7ed53b01daec2a654a7f41180c90b90.zip | |
Only need model for calculating SVs
| -rw-r--r-- | include/gensvm_sv.h | 2 | ||||
| -rw-r--r-- | src/gensvm_optimize.c | 2 | ||||
| -rw-r--r-- | src/gensvm_sv.c | 10 |
3 files changed, 7 insertions, 7 deletions
diff --git a/include/gensvm_sv.h b/include/gensvm_sv.h index 8347b95..b47d622 100644 --- a/include/gensvm_sv.h +++ b/include/gensvm_sv.h @@ -16,6 +16,6 @@ #include "gensvm_base.h" // function declarations -long gensvm_num_sv(struct GenModel *model, struct GenData *data); +long gensvm_num_sv(struct GenModel *model); #endif diff --git a/src/gensvm_optimize.c b/src/gensvm_optimize.c index 9332995..4f13f50 100644 --- a/src/gensvm_optimize.c +++ b/src/gensvm_optimize.c @@ -94,7 +94,7 @@ void gensvm_optimize(struct GenModel *model, struct GenData *data) note("Optimization finished, iter = %li, loss = %15.16f, " "rel. diff. = %15.16f\n", it-1, L, (Lbar - L)/L); - note("Number of support vectors: %li\n", gensvm_num_sv(model, data)); + note("Number of support vectors: %li\n", gensvm_num_sv(model)); model->training_error = (Lbar - L)/L; diff --git a/src/gensvm_sv.c b/src/gensvm_sv.c index 8a8e6d3..abfb871 100644 --- a/src/gensvm_sv.c +++ b/src/gensvm_sv.c @@ -26,18 +26,18 @@ * @return number of support vectors with this solution * */ -long gensvm_num_sv(struct GenModel *model, struct GenData *data) +long gensvm_num_sv(struct GenModel *model) { long i, j, num_correct, num_sv = 0; double value; - for (i=0; i<data->n; i++) { + for (i=0; i<model->n; i++) { num_correct = 0; - for (j=0; j<data->K; j++) { - value = matrix_get(model->Q, data->K, i, j); + for (j=0; j<model->K; j++) { + value = matrix_get(model->Q, model->K, i, j); num_correct += (value > 1); } - num_sv += (num_correct < data->K - 1); + num_sv += (num_correct < model->K - 1); } return num_sv; |
