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