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.