14 #ifndef MLPACK_METHODS_LINEAR_SVM_LINEAR_SVM_FUNCTION_HPP 15 #define MLPACK_METHODS_LINEAR_SVM_LINEAR_SVM_FUNCTION_HPP 27 template <
typename MatType = arma::mat>
42 const arma::Row<size_t>& labels,
43 const size_t numClasses,
44 const double lambda = 0.0001,
45 const double delta = 1.0,
46 const bool fitIntercept =
false);
63 const size_t featureSize,
64 const size_t numClasses,
65 const bool fitIntercept =
false);
74 arma::sp_mat& groundTruth);
82 double Evaluate(
const arma::mat& parameters);
93 double Evaluate(
const arma::mat& parameters,
95 const size_t batchSize = 1);
105 template <
typename GradType>
106 void Gradient(
const arma::mat& parameters,
119 template <
typename GradType>
120 void Gradient(
const arma::mat& parameters,
121 const size_t firstId,
123 const size_t batchSize = 1);
136 template <
typename GradType>
138 GradType& gradient)
const;
154 template <
typename GradType>
156 const size_t firstId,
158 const size_t batchSize = 1)
const;
166 const arma::sp_mat&
Dataset()
const {
return dataset; }
183 arma::mat initialPoint;
186 arma::sp_mat groundTruth;
210 #endif // MLPACK_METHODS_LINEAR_SVM_LINEAR_SVM_FUNCTION_HPP double Lambda() const
Gets the regularization parameter.
Definition: linear_svm_function.hpp:173
The hinge loss function for the linear SVM objective function.
Definition: linear_svm_function.hpp:28
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
The core includes that mlpack expects; standard C++ includes and Armadillo.
void GetGroundTruthMatrix(const arma::Row< size_t > &labels, arma::sp_mat &groundTruth)
Constructs the ground truth label matrix with the passed labels.
Definition: linear_svm_function_impl.hpp:74
arma::mat & InitialPoint()
Modify the initial point for the optimization.
Definition: linear_svm_function.hpp:163
double EvaluateWithGradient(const arma::mat ¶meters, GradType &gradient) const
Evaluate the gradient of the hinge loss function, following the LinearFunctionType requirements on th...
Definition: linear_svm_function_impl.hpp:360
const arma::mat & InitialPoint() const
Return the initial point for the optimization.
Definition: linear_svm_function.hpp:161
void Gradient(const arma::mat ¶meters, GradType &gradient)
Evaluate the gradient of the hinge loss function following the LinearFunctionType requirements on the...
Definition: linear_svm_function_impl.hpp:239
LinearSVMFunction(const MatType &dataset, const arma::Row< size_t > &labels, const size_t numClasses, const double lambda=0.0001, const double delta=1.0, const bool fitIntercept=false)
Construct the Linear SVM objective function with given parameters.
Definition: linear_svm_function_impl.hpp:27
bool FitIntercept() const
Gets the intercept flag.
Definition: linear_svm_function.hpp:176
arma::sp_mat & Dataset()
Modify the dataset.
Definition: linear_svm_function.hpp:168
double Evaluate(const arma::mat ¶meters)
Evaluate the hinge loss function for all the datapoints.
Definition: linear_svm_function_impl.hpp:146
const arma::sp_mat & Dataset() const
Get the dataset.
Definition: linear_svm_function.hpp:166
size_t NumFunctions() const
Return the number of functions.
Definition: linear_svm_function_impl.hpp:494
void Shuffle()
Shuffle the dataset.
Definition: linear_svm_function_impl.hpp:111
double & Lambda()
Sets the regularization parameter.
Definition: linear_svm_function.hpp:171
static void InitializeWeights(arma::mat &weights, const size_t featureSize, const size_t numClasses, const bool fitIntercept=false)
Initialize Linear SVM weights (trainable parameters) with the given parameters.
Definition: linear_svm_function_impl.hpp:53