forked from openbigdatagroup/psvm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
svm_predict.h
75 lines (63 loc) · 2.29 KB
/
svm_predict.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
Copyright 2007 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef SVM_PREDICT_H__
#define SVM_PREDICT_H__
#include <string>
#include "model.h"
namespace psvm {
// Structure for evaluating the prediction result. The calculation is
// based on the four values shown below:
// Real class\Predicted class POSITIVE NEGATIVE
// Positive a b
// Negative c d
struct EvaluationResult {
int num_total;
int num_pos;
int num_neg;
int num_pos_pos;
int num_pos_neg;
int num_neg_pos;
int num_neg_neg;
double positive_precision; // a/(a+c)
double positive_recall; // a/(a+b)
double negative_precision; // d/(b+d)
double negative_recall; // d/(c+d)
double accuracy; // (a+d)/(a+b+c+d)
};
// Predicts the class labels of documents according to the model file.
// Sample usage:
// SvmPredictor predictor;
// predictor.ReadModel(modelfilename);
// EvaluationResult result;
// predictor.PredictDocument(document, chunksize, &result);
class SvmPredictor {
public:
// Loads the model from the model_file
void ReadModel(const char* model_file);
// Predicts the class label for the samples in data_file. The result is
// stored in 'result' on return of the method.
void PredictDocument(const char* testdata_filename,
const char* predict_filename,
int chunk_size,
EvaluationResult *result);
// Prints the time information of current processor.
std::string PrintTimeInfo();
// Save time statistic information into a file.
// For processor #, it is stored in "path/file_name.#"
void SaveTimeInfo(const char *path, const char* file_name);
private:
// Stores model information including kernel info and support vectors.
Model model_;
};
}
#endif