aboutsummaryrefslogtreecommitdiff
path: root/src/predMSVMMaj.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/predMSVMMaj.c')
-rw-r--r--src/predMSVMMaj.c45
1 files changed, 25 insertions, 20 deletions
diff --git a/src/predMSVMMaj.c b/src/predMSVMMaj.c
index 5d26dc3..966c7c0 100644
--- a/src/predMSVMMaj.c
+++ b/src/predMSVMMaj.c
@@ -1,10 +1,14 @@
-#include "libMSVMMaj.h"
+#include "msvmmaj_pred.h"
+#include "MSVMMaj.h"
+#include "util.h"
#define MINARGS 3
+extern FILE *MSVMMAJ_OUTPUT_FILE;
+
void print_null(const char *s) {}
void exit_with_help();
-void parse_command_line(int argc, char **argv, struct Model *model,
+void parse_command_line(int argc, char **argv, struct MajModel *model,
char *input_filename, char *output_filename,
char *model_filename);
@@ -27,17 +31,18 @@ int main(int argc, char **argv)
char model_filename[MAX_LINE_LENGTH];
char output_filename[MAX_LINE_LENGTH];;
- struct Model *model = Malloc(struct Model, 1);
- struct Data *data = Malloc(struct Data, 1);
+ struct MajModel *model = Malloc(struct MajModel, 1);
+ struct MajData *data = Malloc(struct MajData, 1);
- if (argc < MINARGS || check_argv(argc, argv, "-help") || check_argv_eq(argc, argv, "-h") )
+ if (argc < MINARGS || msvmmaj_check_argv(argc, argv, "-help")
+ || msvmmaj_check_argv_eq(argc, argv, "-h") )
exit_with_help();
parse_command_line(argc, argv, model, input_filename, output_filename,
model_filename);
// TODO: make sure that read_data allows for files without labels
- read_data(data, input_filename);
- read_model(model, model_filename);
+ msvmmaj_read_data(data, input_filename);
+ msvmmaj_read_model(model, model_filename);
// check if the number of attributes in data equals that in model
if (data->m != model->m) {
@@ -48,29 +53,30 @@ int main(int argc, char **argv)
}
predy = Calloc(long, data->n);
- predict_labels(data, model, predy);
+ msvmmaj_predict_labels(data, model, predy);
if (data->y != NULL) {
- performance = prediction_perf(data, predy);
- info("Predictive performance: %3.2f%%\n", performance);
+ performance = msvmmaj_prediction_perf(data, predy);
+ note("Predictive performance: %3.2f%%\n", performance);
}
- if (check_argv_eq(argc, argv, "-o")) {
- write_predictions(data, predy, output_filename);
- info("Predictions written to: %s\n", output_filename);
+ if (msvmmaj_check_argv_eq(argc, argv, "-o")) {
+ msvmmaj_write_predictions(data, predy, output_filename);
+ note("Predictions written to: %s\n", output_filename);
}
- free_model(model);
- free_data(data);
+ msvmmaj_free_model(model);
+ msvmmaj_free_data(data);
free(predy);
return 0;
}
-void parse_command_line(int argc, char **argv, struct Model *model,
+void parse_command_line(int argc, char **argv, struct MajModel *model,
char *input_filename, char *output_filename, char *model_filename)
{
int i;
- void (*print_func)(const char*) = NULL;
+
+ MSVMMAJ_OUTPUT_FILE = stdout;
for (i=1; i<argc; i++) {
if (argv[i][0] != '-') break;
@@ -81,16 +87,15 @@ void parse_command_line(int argc, char **argv, struct Model *model,
strcpy(output_filename, argv[i]);
break;
case 'q':
- print_func = &print_null;
+ MSVMMAJ_OUTPUT_FILE = NULL;
i--;
+ break;
default:
fprintf(stderr, "Unknown option: -%c\n", argv[i-1][1]);
exit_with_help();
}
}
- set_print_string_function(print_func);
-
if (i >= argc)
exit_with_help();