Files
SVMClassifier/types_8hpp_source.html
2025-06-22 11:25:27 +00:00

29 KiB

<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> </head>
SVM Classifier C++ 1.0.0
High-performance Support Vector Machine classifier with scikit-learn compatible API
<script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ var searchBox = new SearchBox("searchBox", "search/",'.html'); /* @license-end */ </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); /* @license-end */ </script>
<script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ $(document).ready(function() { init_codefold(0); }); /* @license-end */ </script>
Loading...
Searching...
No Matches
types.hpp
1#pragma once
2
3#include <string>
4#include <vector>
5#include <memory>
6
7namespace svm_classifier {
8
12 enum class KernelType {
13 LINEAR,
14 RBF,
15 POLYNOMIAL,
16 SIGMOID
17 };
18
22 enum class MulticlassStrategy {
23 ONE_VS_REST,
24 ONE_VS_ONE
25 };
26
30 enum class SVMLibrary {
31 LIBLINEAR,
32 LIBSVM
33 };
34
38 enum class TrainingStatus {
39 SUCCESS,
40 INVALID_PARAMETERS,
41 INSUFFICIENT_DATA,
42 MEMORY_ERROR,
43 CONVERGENCE_ERROR
44 };
45
50 std::vector<int> predictions;
51 std::vector<std::vector<double>> probabilities;
52 std::vector<std::vector<double>> decision_values;
53 bool has_probabilities = false;
54 };
55
60 double training_time = 0.0;
62 int iterations = 0;
63 double objective_value = 0.0;
64 TrainingStatus status = TrainingStatus::SUCCESS;
65 };
66
71 double accuracy = 0.0;
72 double precision = 0.0;
73 double recall = 0.0;
74 double f1_score = 0.0;
75 std::vector<std::vector<int>> confusion_matrix;
76 };
77
81 inline std::string kernel_type_to_string(KernelType kernel)
82 {
83 switch (kernel) {
84 case KernelType::LINEAR: return "linear";
85 case KernelType::RBF: return "rbf";
86 case KernelType::POLYNOMIAL: return "polynomial";
87 case KernelType::SIGMOID: return "sigmoid";
88 default: return "unknown";
89 }
90 }
91
95 inline KernelType string_to_kernel_type(const std::string& kernel_str)
96 {
97 if (kernel_str == "linear") return KernelType::LINEAR;
98 if (kernel_str == "rbf") return KernelType::RBF;
99 if (kernel_str == "polynomial" || kernel_str == "poly") return KernelType::POLYNOMIAL;
100 if (kernel_str == "sigmoid") return KernelType::SIGMOID;
101 throw std::invalid_argument("Unknown kernel type: " + kernel_str);
102 }
103
107 inline std::string multiclass_strategy_to_string(MulticlassStrategy strategy)
108 {
109 switch (strategy) {
110 case MulticlassStrategy::ONE_VS_REST: return "ovr";
111 case MulticlassStrategy::ONE_VS_ONE: return "ovo";
112 default: return "unknown";
113 }
114 }
115
119 inline MulticlassStrategy string_to_multiclass_strategy(const std::string& strategy_str)
120 {
121 if (strategy_str == "ovr" || strategy_str == "one_vs_rest") {
122 return MulticlassStrategy::ONE_VS_REST;
123 }
124 if (strategy_str == "ovo" || strategy_str == "one_vs_one") {
125 return MulticlassStrategy::ONE_VS_ONE;
126 }
127 throw std::invalid_argument("Unknown multiclass strategy: " + strategy_str);
128 }
129
133 inline SVMLibrary get_svm_library(KernelType kernel)
134 {
135 return (kernel == KernelType::LINEAR) ? SVMLibrary::LIBLINEAR : SVMLibrary::LIBSVM;
136 }
137
138} // namespace svm_classifier
Model evaluation metrics.
Definition types.hpp:70
double f1_score
Macro-averaged F1-score.
Definition types.hpp:74
double recall
Macro-averaged recall.
Definition types.hpp:73
std::vector< std::vector< int > > confusion_matrix
Confusion matrix.
Definition types.hpp:75
double accuracy
Classification accuracy.
Definition types.hpp:71
double precision
Macro-averaged precision.
Definition types.hpp:72
Prediction result structure.
Definition types.hpp:49
std::vector< int > predictions
Predicted class labels.
Definition types.hpp:50
std::vector< std::vector< double > > decision_values
Decision function values.
Definition types.hpp:52
std::vector< std::vector< double > > probabilities
Class probabilities (if available)
Definition types.hpp:51
bool has_probabilities
Whether probabilities are available.
Definition types.hpp:53
Training metrics structure.
Definition types.hpp:59
double objective_value
Final objective value.
Definition types.hpp:63
int support_vectors
Number of support vectors.
Definition types.hpp:61
int iterations
Number of iterations.
Definition types.hpp:62
double training_time
Training time in seconds.
Definition types.hpp:60

Generated on Sun Jun 22 2025 11:25:27 for SVM Classifier C++ by doxygen 1.9.8 </html>