17 namespace classification {
21 template<
class KERNEL=mlpack::LinearKernel,
45 template<
class... Args>
46 SVM (
const size_t num_class,
const T& C,
const Args&... args ) :
47 solver_(
"fanSMO"),C_(C),cov_(args...), oneclass_(false) { } ;
54 template<
class... Args>
55 SVM (
const size_t num_class,
const std::string solver,
56 const T& C,
const Args&... args ) :
57 solver_(solver),C_(C),cov_(args...), oneclass_(false) { } ;
65 template<
class... Args>
66 SVM (
const arma::Mat<T>& inputs,
67 const arma::Row<size_t>& labels,
68 const size_t num_class,
70 const Args&... args );
77 template<
class... Args>
78 SVM (
const arma::Mat<T>& inputs,
79 const arma::Row<size_t>& labels,
80 const size_t num_class,
81 const Args&... args );
87 void Train (
const arma::Mat<T>& inputs,
88 const arma::Row<size_t>& labels,
89 const size_t num_class );
95 void Train (
const arma::Mat<T>& inputs,
96 const arma::Row<size_t>& labels );
102 void Classify (
const arma::Mat<T>& inputs,
103 arma::Row<size_t>& labels )
const ;
110 void Classify (
const arma::Mat<T>& inputs,
111 arma::Row<size_t>& labels,
112 arma::Mat<T>& dec_func )
const;
120 const arma::Row<size_t>& responses );
129 const arma::Row<size_t>& responses );
134 template<
typename Archive>
138 ar ( cereal::make_nvp(
"X",X_),
139 cereal::make_nvp(
"nclass",nclass_),
140 cereal::make_nvp(
"y",y_),
141 cereal::make_nvp(
"alphas",alphas_),
142 cereal::make_nvp(
"oldalphas",old_alphas_),
143 cereal::make_nvp(
"ulab",ulab_),
144 cereal::make_nvp(
"idx",idx_),
145 cereal::make_nvp(
"C",C_),
146 cereal::make_nvp(
"oneclass",oneclass_),
147 cereal::make_nvp(
"eps",eps_),
148 cereal::make_nvp(
"tau",tau_),
149 cereal::make_nvp(
"cov",cov_),
150 cereal::make_nvp(
"max_iter",max_iter_),
151 cereal::make_nvp(
"iter",iter_),
152 cereal::make_nvp(
"solver",solver_) );
156 std::map<int,std::string> solvers_ = {{0,
"fanSMO"}};
157 std::string solver_ = solvers_[SOLVER];
163 arma::Row<size_t> ulab_;
164 arma::Row<T> alphas_;
165 arma::Row<T> old_alphas_;
167 bool oneclass_ =
false;
170 size_t max_iter_ = 5000;
173 OnevAll<SVM<KERNEL,SOLVER,T>> ova_;
180 void _fanSMO (
const arma::Mat<T>& inputs,
181 const arma::Row<size_t>& labels );
187 std::pair<int, int> _selectset ( arma::Row<T> G, arma::Mat<T> Q );
195 #include "svm_impl.h"
void Train(const arma::Mat< T > &inputs, const arma::Row< size_t > &labels, const size_t num_class)
SVM(const size_t num_class, const T &C, const Args &... args)
SVM(const size_t num_class, const std::string solver, const T &C, const Args &... args)
T ComputeAccuracy(const arma::Mat< T > &points, const arma::Row< size_t > &responses)
T ComputeError(const arma::Mat< T > &points, const arma::Row< size_t > &responses)
void serialize(Archive &ar, const unsigned int)
void Classify(const arma::Mat< T > &inputs, arma::Row< size_t > &labels) const