SHOGUN  4.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Methods.mainpage
Go to the documentation of this file.
1 /*! \page methods Methods
2 
3  Shogun's ML functionality is currently split into feature
4  representations, feature preprocessors, kernels, kernel normalizers,
5  distances, classifier, clustering algorithms, distributions,
6  performance evaluation measures, regression methods, structured
7  output learners. The following gives a brief overview over all the
8  ML related Algorithms/Classes/Methods implemented within shogun.
9 
10  \section featrep_sec Feature Representations
11  Shogun supports a wide range of feature representations. Among them are the so
12  called simple features (cf., CSimpleFeatures) that are standard 2-d Matrices,
13  strings (cf., CStringFeatures) that however in contrast to other meanings of
14  string are just a list of vectors of arbitrary length and sparse features
15  (cf., CSparseFeatures) to efficiently represent sparse matrices.
16 
17  Each of these feature objects
18 
19  \li Simple Features (CSimpleFeatures)
20  \li Strings (CStringFeatures)
21  \li Sparse Features (CSparseFeatures)
22 
23  supports any of the standard types from bool to floats:
24 
25  Supported Types
26  \li bool
27  \li 8bit char
28  \li 8bit Byte
29  \li 16bit Integer
30  \li 16bit Word
31  \li 32bit Integer
32  \li 32bit Unsigned Integer
33  \li 32bit Float matrix
34  \li 64bit Float matrix
35  \li 96bit Float matrix
36 
37  Many other feature types available. Some of them are based on the three basic
38  feature types above, like CTOPFeatures (TOP Kernel features from CHMM),
39  CFKFeatures (Fisher Kernel features from CHMM) and CRealFileFeatures (vectors
40  fetched from a binary file). It should be noted that all
41  feature objects are derived from CFeatures
42  More complex
43  \li CAttributeFeatures - Features of attribute value pairs.
44  \li CCombinedDotFeatures - Features that allow stacking of dot features.
45  \li CCombinedFeatures - Features that allow stacking of arbitrary features.
46  \li CDotFeatures - Features that support a certain set of features (like multiplication with a scalar + addition to a dense vector). Examples are sparse and dense features.
47  \li CDummyFeatures - Features without content; Only number of vectors is known.
48  \li CExplicitSpecFeatures - Implement spectrum kernel feature space explicitly.
49  \li CImplicitWeightedSpecFeatures - DotFeatures that implicitly implement weighted spectrum kernel features.
50  \li CFactorGraphFeatures - Maintains arrays of feature graphs
51  \li CImplicitWeightedSpecFeatures - Features that compute the Weighted Spectrum Kernel feature space
52  \li CLatentFeatures - Features for latent learning
53  \li CLBPPyrDotFeatures - Local Binary Patterns with Scale Pyramids as dot features
54  \li CPolyFeatures - Implement DotFeatures for the polynomial kernel
55  \li CRandomFourierDotFeatures - Implement the random fourier features for the DotFeatures
56  \li CRandomKitchenSinksDotFeatures - Implement the Random Kitchen Sinks (RKS) for the DotFeatures
57  \li CSparsePolyFeatures - Implement DotFeatures for the polynomial kernel
58  \li CWDFeatures - DotFeatures that implicitly implement weighted degree kernel features
59 
60  In addition, labels are represented in CLabels and the alphabet of a string in
61  CAlphabet.
62 
63 
64 
65  \section preproc_sec Preprocessors
66  The aforementioned features can be on-the-fly preprocessed to e.g. subtract the mean or normalize vectors to norm 1 etc. The following pre-processors are implemented
67  \li CDimensionReductionPreprocessor - Lowers dimensionality of dense matrices
68  \li CFisherLDA - Performs linear discriminant analysis on input feature vectors/matrices
69  \li CHomogeneousKernelMap - An additive kernel map
70  \li CKernelPCA - Performs kernel principal component analysis
71  \li CNormOne - Normalizes vectors to norm 1
72  \li CLogPlusOne - Adds 1 and applies log()
73  \li CPCACut - Keeps eigenvectors with the highest eigenvalues
74  \li CPNorm - Normalizes vectors to have p-norm
75  \li CPruneVarSubMean - Removes dimensions with little variance, subtracting the mean
76  \li CRandomFourierGaussPreproc - Random Fourier Features for the Gauss kernel
77  \li CRescaleFeatures - Rescale range of features to independent ranges
78  \li CSortUlongString - Sorts vectors
79  \li CSortWordString - Sorts vectors
80  \li CSumOne - Normalizes vectors to have sum 1
81 
82 
83 
84  \section classifiers_sec Classifiers
85 
86  A multitude of Classifiers are implemented in shogun. Among them are several
87  standard 2-class classifiers, 1-class classifiers and multi-class
88  classifiers. Several of them are linear classifiers and SVMs. Among the
89  fastest linear SVM-classifiers are CSGD, CSVMOcas and CLibLinear (capable of
90  dealing with millions of examples and features).
91 
92  \subsection linclassi_sec Linear Classifiers
93  \li CPerceptron - Standard online perceptron
94  \li CAveragedPerceptron - A simple extension of the standard perceptron.
95  \li CFeatureBlockLogisticRegression - A linear binary logistic loss classifier
96  \li CGaussianProcessClassification - A binary multiclass classifier based on Gaussian Processes
97  \li CLDA - Fishers linear discriminant
98  \li CLPM - Linear programming machine (1-norm regularized SVM)
99  \li CLPBoost - Linear programming machine using boosting on the features
100  \li CNearestCentroid - A nearest shrunk centroid classifier
101  \li CPluginEstimate - A classifier that takes two CHMMLinear probabilistic models as input
102 
103  \subsubsection svmclassi_sec Support Vector Machines
104  \li CSVM - A generic Support Vector Machine (SVM)
105  \li CLibLinear - A linear SVM with l2-regularized bias
106  \li COnlineLibLinear - A purely online version of CLibLinear
107  \li CSVMLin - A linear SVM with l2-regularized bias
108  \li CSVMOcas - A linear SVM with l2-regularized bias
109  \li CSVMLight - A variant of SVMlight using pr_loqo as its internal solver
110  \li CLibSVM - LibSVM modified to use shoguns kernel framework
111  \li CSVMSGD - An SVM with stochastic gradient
112  \li COnlineSVMSGD - A purely online version of SVM with stochastic gradient
113  \li CMPDSVM - Minimal Primal Dual SVM
114  \li CGPBTSVM - Gradient Projection Technique SVM
115  \li CWDSVMOcas - CSVMOcas based SVM using explicitly spanned WD-Kernel feature space
116  \li CGNPPSVM - SVM solver based on the generalized nearest point problem
117  \li CNewtonSVM - linear primal SVM trained using Newton-like iterations
118  \li CSGDQN - An SVM with Quasi-Newton stochastic gradient
119  \li CGMNPSVM - A true multiclass one vs. rest SVM
120  \li CMCSVM - An experimental multiclass SVM
121  \li CLibSVMMultiClass - LibSVMs one vs. one multiclass SVM solver
122  \li CLibSVMOneClass - LibSVMs one-class SVM
123 
124 
125  \subsubsection vwclassi_sec Vowpal Wabbit
126  \li CVowpalWabbit - An implementation of online learning algorithm used in Vowpal Wabbit
127 
128 
129  \subsection distmachine_sec Distance Machines
130  \li k-Nearest Neighbor - Standard k-NN
131 
132 
133 
134  \section regression_sec Regression
135  \li CLeastSquaresRegression - Least square regression
136  \li CGaussianProcessRegression - Regression based on Gaussian Processes
137 
138  \subsection Support Vector Regression
139  \li CSVRLight - SVMLight based SVR
140  \li CLibSVR - LIBSVM based SVR
141  \li CMKLRegression - Multiple Kernel Learning for regression
142 
143  \subsection other_regress Others
144  \li CLinearRidgeRegression - A regularized least square method for classification and regression
145  \li CKernelRidgeRegression - A regularized least square method for classification and regression
146  \li CLeastAngleRegression - To solve L1 regularized least square regression
147 
148 
149  \section distrib_sec Distributions
150  \li CHMM - Hidden Markov Models
151  \li CEMMixtureModel - EM specialized for Mixture models
152  \li CHistogram - Histogram
153  \li CGaussian - Gaussian Distribution
154  \li CKernelDensity - Kernel Density Estimation technique
155  \li CLinearHMM - Markov chains (embedded in ``Linear'' HMMs)
156  \li CPositionalPWM - Postional PWM
157  \li CMixtureModel - Mixture of various simple distributions
158 
159  \subsection distrib_cla Classical Distributions
160  \li CGaussianDistribution - Dense version of well-known Gaussian Distribution
161 
162 
163  \section cluster_sec Clustering
164  \li CHierarchical - Agglomerative hierarchical single linkage clustering.
165  \li CKMeans - k-Means Clustering
166 
167 
168 
169  \section mkl_sec Multiple Kernel Learning
170  \li CMKL - A support vector machine based method for use with multiple kernels
171  \li CMKLOneClass - Multiple Kernel Learning for one-class-classification
172  \li CMKLClassification - Multiple Kernel Learning for two-class-classification
173  \li CMKLMulticlass - L1-norm Multiple Kernel Learning for multiclass classification
174 
175 
176 
177 
178  \section kernels_sec Kernels
179  \li CANOVAKernel - ANalysis Of VAriances (ANOVA) kernel
180  \li CAUCKernel - To maximize AUC in SVM training (takes a kernel as input)
181  \li CBesselKernel - Bessel Kernel
182  \li CCauchyKernel - Cauchy Kernel
183  \li CChi2Kernel - Chi^2 Kernel
184  \li CCircularKernel - Circular kernel
185  \li CCombinedKernel - Combined kernel to work with multiple kernels
186  \li CCommUlongStringKernel - Spectrum Kernel with spectrums of up to 64bit
187  \li CCommWordStringKernel - Spectrum kernel with spectrum of up to 16 bit
188  \li CConstKernel - A ''kernel'' returning a constant
189  \li CCustomKernel - A user supplied custom kernel
190  \li CDiagKernel - A kernel with nonzero elements only on the diagonal
191  \li CDistanceKernel - A transformation to transform distances into similarities
192  \li CFixedDegreeStringKernel - A string kernel
193  \li CExponentialKernel - A kernel closely related to the Gaussian Kernel
194  \li CGaussianARDKernel - A Gaussian Kernel with Automatic Relevance Detection
195  \li CGaussianKernel - The standard Gaussian kernel
196  \li CGaussianMatchStringKernel - A variant of the Gaussian kernel on strings of same length
197  \li CGaussianShiftKernel - Gaussian kernel with shift (inspired by the Weighted Degree shift kernel
198  \li CGaussianShortRealKernel - Gaussian Kernel on 32bit Floats
199  \li CHistogramIntersectionKernel - A kernel that computes the histogram intersection distance between sets of histograms
200  \li CHistogramWordStringKernel - A TOP kernel on Sequences
201  \li CInverseMultiQuadricKernel - Inverse MultiQuadric kernel
202  \li CJensenShannonKernel - The Jensen-Shannon kernel
203  \li CLinearARDKernel - Linear Kernel with Automatic Relevance Detection
204  \li CLinearKernel - Linear Kernel
205  \li CLinearStringKernel - Linear Kernel on Strings
206  \li CLocalAlignmentStringKernel - kernel that compares two sequences through all possible local alignments
207  \li CLocalityImprovedStringKernel - A kernel inspired from polynomial kernel that emphasizes on local features
208  \li CLogKernel - Log Kernel
209  \li CLocalAlignmentStringKernel - The local alignment kernel
210  \li CLocalityImprovedStringKernel - The locality improved kernel
211  \li CMatchWordStringKernel - Another String kernel
212  \li CMultiquadricKernel - MultiQuadric kernel
213  \li COligoStringKernel - The oligo string kernel
214  \li CPolyKernel - The standard polynomial kernel
215  \li CPolyMatchStringKernel - Polynomial kernel on strings
216  \li CPolyMatchWordStringKernel - Polynomial kernel on strings
217  \li CPowerKernel - Power Kernel
218  \li CProductKernel - Combines a number of kernels into a single ProductKernel
219  \li CPyramidChi2 - Pyramid chi2 kernel (from image analysis)
220  \li CRationalQuadraticKernel - Rational Quadratic kernel
221  \li CRegulatoryModulesStringKernel - regulatory modules string kernel
222  \li CSalzbergWordStringKernel - salzberg features based string kernel
223  \li CSigmoidKernel - Tanh sigmoidal kernel
224  \li CSimpleLocalityImprovedStringKernel - A variant of the locality improved kernel
225  \li CSNPStringKernel - A variant of the polynomial kernel on strings of same length
226  \li CSparseSpatialSampleStringKernel - Sparse Spatial Sample String Kernel
227  \li CSpectrumMismatchRBFKernel - Spectrum mismatch rbf kernel
228  \li CSpectrumRBFKernel - Spectrum rbf kernel
229  \li CSphericalKernel - Spherical kernel
230  \li CSplineKernel - The Spline Kernel (function is the cubic polynomial)
231  \li CSubsequenceStringKernel - Subsequence String Kernel (SSK)
232  \li CTensorProductPairKernel - The Tensor Product Pair Kernel (TPPK)
233  \li CTStudentKernel - Generalized T-Student Kernel
234  \li CWaveKernel - Wave kernel
235  \li CWaveletKernel - Wavelet kernel
236  \li CWeightedCommWordStringKernel - A weighted (or blended) spectrum kernel
237  \li CWeightedDegreePositionStringKernel - Weighted Degree kernel with shift
238  \li CWeightedDegreeRBFKernel - Weighter Degree rbf kernel
239  \li CWeightedDegreeStringKernel - Weighted Degree string kernel
240 
241 
242 
243 
244 
245  \subsection kernel_normalizer Kernel Normalizers
246  Since several of the kernels pose numerical challenges to SVM optimizers,
247  kernels can be ``normalized'' for example to have ones on the diagonal.
248 
249  \li CSqrtDiagKernelNormalizer - divide kernel by square root of product of diagonal
250  \li CAvgDiagKernelNormalizer - divide by average diagonal value
251  \li CFirstElementKernelNormalizer - divide by first kernel element k(0,0)
252  \li CIdentityKernelNormalizer - no normalization
253  \li CDiceKernelNormalizer - normalization inspired by the dice coefficient
254  \li CRidgeKernelNormalizer - adds a ridge on the kernel diagonal
255  \li CScatterKernelNormalizer - scatter-normalized kernel
256  \li CTanimotoKernelNormalizer - tanimoto coefficient inspired normalizer
257  \li CVarianceKernelNormalizer - normalize vectors in feature space to norm 1
258  \li CZeroMeanCenterKernelNormalizer - centers the kernel in feature space
259 
260 
261 
262 
263  \section dist_sec Distances
264  Distance Measures to measure the distance between objects. They can be used
265  in CDistanceMachine's like CKNN. The following distances are implemented:
266 
267  \li CAttenuatedEuclideanDistance - Euclidean Distance (ignoring 0s)
268  \li CBrayCurtisDistance - Bray curtis distance
269  \li CCanberraMetric - Canberra metric
270  \li CCanberraWordDistance - Canberra metric for words
271  \li CChebyshewMetric - Chebyshew metric
272  \li CChiSquareDistance - Chi^2 distance
273  \li CCosineDistance - Cosine distance
274  \li CCustomDistance - User provided custom distances
275  \li CCustomMahalanobisDistance - Vector based calculation for Mahalanobis Distance
276  \li CEuclidianDistance - Euclidian Distance
277  \li CGeodesicMetric - Geodesic metric
278  \li CHammingWordDistance - Hamming Distance
279  \li CJensenMetric - Jensen metric
280  \li CMahalanobisDistance - Mahalanobis Distance
281  \li CManhattanMetric - Manhattan metric
282  \li CManhattanWordDistance - Manhattan distance for words
283  \li CMinkowskiMetric - Minkowski metric
284  \li CSparseEuclideanDistance - Sparse Euclidean Distance
285  \li CTanimotoDistance - Tanimoto distance
286 
287 
288 
289 
290  \section eval_sec Evaluation
291  \subsection perf_sec Performance Measures
292  Performance measures assess the quality of a prediction and are implemented
293  in CPerformanceMeasures. They following measures are implemented:
294  \li Receiver Operating Curve (ROC)
295  \li Area under the ROC curve (auROC)
296  \li Area over the ROC curve (aoROC)
297  \li Precision Recall Curve (PRC)
298  \li Area under the PRC (auPRC)
299  \li Area over the PRC (aoPRC)
300  \li Detection Error Tradeoff (DET)
301  \li Area under the DET (auDET)
302  \li Area over the DET (aoDET)
303  \li Cross Correlation coefficient (CC)
304  \li Weighted Relative Accuracy (WRAcc)
305  \li Balanced Error (BAL)
306  \li F-Measure
307  \li Accuracy
308  \li Error
309 
310 */

SHOGUN Machine Learning Toolbox - Documentation