const-fixing functions
[mldemos:mldemos.git] / Core / roc.h
1 /*********************************************************************\r
2 MLDemos: A User-Friendly visualization toolkit for machine learning\r
3 Copyright (C) 2010  Basilio Noris\r
4 Contact: mldemos@b4silio.com\r
5 \r
6 This library is free software; you can redistribute it and/or\r
7 modify it under the terms of the GNU Lesser General Public License,\r
8 version 3 as published by the Free Software Foundation.\r
9 \r
10 This library is distributed in the hope that it will be useful, but\r
11 WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
13 Lesser General Public License for more details.\r
14 \r
15 You should have received a copy of the GNU Lesser General Public\r
16 License along with this library; if not, write to the Free\r
17 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
18 *********************************************************************/\r
19 #ifndef _ROC_H_\r
20 #define _ROC_H_\r
21 \r
22 struct floatPair\r
23 {\r
24     union\r
25     {\r
26         float _[2];\r
27         struct{\r
28             float first;\r
29             float second;\r
30         };\r
31     };\r
32     floatPair(float a, float b) : first(a), second(b) {}\r
33 };\r
34 \r
35 typedef std::pair<float, float> f32pair;\r
36 typedef std::vector<f32pair> rocData;\r
37 \r
38 /*\r
39 IplImage *GetRocImage();\r
40 void roc_on_mouse( int event, int x, int y, int flags, void* param );\r
41 IplImage *RocImage(std::vector<std::vector<f32pair> > dataVector, std::vector<char *> legend = std::vector<char *>(), CvSize res = cvSize(512,512));\r
42 void RocCurve(std::vector<f32pair> data);\r
43 void RocCurves(std::vector<std::vector<f32pair> > dataVector, std::vector<char *> legend = std::vector<char *>());\r
44 void SaveRocImage(const char *filename);\r
45 */\r
46 \r
47 void SaveRoc(std::vector<f32pair> data, const char *filename);\r
48 std::vector<f32pair> LoadRoc(const char *filename);\r
49 \r
50 std::vector<f32pair> FixRocData(std::vector<f32pair> data);\r
51 std::vector<float> GetBestFMeasures();\r
52 float GetBestThreshold(std::vector<f32pair> data);\r
53 std::vector<float> GetBestFMeasure(std::vector<f32pair> data);\r
54 std::pair<float,float> GetMicroMacroFMeasure(std::vector<f32pair> data);\r
55 float GetAveragePrecision(std::vector<f32pair> data);\r
56 float GetRocValueAt(std::vector<f32pair> data, float threshold);\r
57 \r
58 #endif // _ROC_H_\r