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;
208 #include "linear_svm_function_impl.hpp" 210 #endif // MLPACK_METHODS_LINEAR_SVM_LINEAR_SVM_FUNCTION_HPP The hinge loss function for the linear SVM objective function.
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.
double Lambda() const
Gets the regularization parameter.
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.
Linear algebra utility functions, generally performed on matrices or vectors.
bool FitIntercept() const
Gets the intercept flag.
The core includes that mlpack expects; standard C++ includes and Armadillo.
double EvaluateWithGradient(const arma::mat ¶meters, GradType &gradient) const
Evaluate the gradient of the hinge loss function, following the LinearFunctionType requirements on th...
arma::mat & InitialPoint()
Modify the initial point for the optimization.
arma::sp_mat & Dataset()
Modify the dataset.
void Shuffle()
Shuffle the dataset.
size_t NumFunctions() const
Return the number of functions.
void GetGroundTruthMatrix(const arma::Row< size_t > &labels, arma::sp_mat &groundTruth)
Constructs the ground truth label matrix with the passed labels.
const arma::mat & InitialPoint() const
Return the initial point for the optimization.
double & Lambda()
Sets the regularization parameter.
void Gradient(const arma::mat ¶meters, GradType &gradient)
Evaluate the gradient of the hinge loss function following the LinearFunctionType requirements on the...
double Evaluate(const arma::mat ¶meters)
Evaluate the hinge loss function for all the datapoints.
const arma::sp_mat & Dataset() const
Get the dataset.