openModeller  Version 1.4.0
svm_alg.cpp File Reference
#include "svm_alg.hh"
#include "svm.h"
#include <openmodeller/MeanVarianceNormalizer.hh>
#include <openmodeller/Sampler.hh>
#include <openmodeller/Exceptions.hh>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
Include dependency graph for svm_alg.cpp:

Go to the source code of this file.

Classes

struct  svm_model

Defines

#define NUM_PARAM   9
#define SVMTYPE_ID   "SvmType"
#define KERNELTYPE_ID   "KernelType"
#define DEGREE_ID   "Degree"
#define GAMMA_ID   "Gamma"
#define COEF0_ID   "Coef0"
#define C_ID   "C"
#define NU_ID   "Nu"
#define PROB_ID   "ProbabilisticOutput"
#define PSEUDO_ID   "NumberOfPseudoAbsences"
#define SVM_LOG_PREFIX   "SvmAlgorithm: "

Functions

OM_ALG_DLL_EXPORT AlgorithmImplalgorithmFactory ()
OM_ALG_DLL_EXPORT AlgMetadata
const * 
algorithmMetadata ()

Variables

static AlgParamMetadata parameters [NUM_PARAM]
static AlgMetadata metadata

Define Documentation

#define C_ID   "C"

Definition at line 52 of file svm_alg.cpp.

Referenced by SvmAlgorithm::initialize().

#define COEF0_ID   "Coef0"

Definition at line 51 of file svm_alg.cpp.

Referenced by SvmAlgorithm::initialize().

#define DEGREE_ID   "Degree"

Definition at line 49 of file svm_alg.cpp.

Referenced by SvmAlgorithm::initialize().

#define GAMMA_ID   "Gamma"

Definition at line 50 of file svm_alg.cpp.

Referenced by SvmAlgorithm::initialize().

#define KERNELTYPE_ID   "KernelType"

Definition at line 48 of file svm_alg.cpp.

Referenced by SvmAlgorithm::initialize().

#define NU_ID   "Nu"

Definition at line 53 of file svm_alg.cpp.

Referenced by SvmAlgorithm::initialize().

#define NUM_PARAM   9

Definition at line 45 of file svm_alg.cpp.

#define PROB_ID   "ProbabilisticOutput"

Definition at line 54 of file svm_alg.cpp.

Referenced by SvmAlgorithm::initialize().

#define PSEUDO_ID   "NumberOfPseudoAbsences"

Definition at line 55 of file svm_alg.cpp.

Referenced by SvmAlgorithm::initialize().

#define SVM_LOG_PREFIX   "SvmAlgorithm: "

Definition at line 57 of file svm_alg.cpp.

Referenced by SvmAlgorithm::initialize(), and SvmAlgorithm::iterate().

#define SVMTYPE_ID   "SvmType"

Definition at line 47 of file svm_alg.cpp.

Referenced by SvmAlgorithm::initialize(), and SvmAlgorithm::needNormalization().


Function Documentation

OM_ALG_DLL_EXPORT AlgorithmImpl* algorithmFactory ( )

Definition at line 241 of file svm_alg.cpp.

OM_ALG_DLL_EXPORT AlgMetadata const* algorithmMetadata ( )

Definition at line 248 of file svm_alg.cpp.

References metadata.


Variable Documentation

Initial value:
 {

  "SVM",                     
  "SVM (Support Vector Machines)", 
  "0.5",                           

  
  "Support vector machines (SVMs) are a set of related supervised learning methods that belong to a family of generalized linear classifiers. They can also be considered a special case of Tikhonov regularization. A special property of SVMs is that they simultaneously minimize the empirical classification error and maximize the geometric margin; hence they are also known as maximum margin classifiers. Content retrieved from Wikipedia on the 13th of June, 2007: http://en.wikipedia.org/w/index.php?title=Support_vector_machine&oldid=136646498.",

  
  "Support vector machines map input vectors to a higher dimensional space where a maximal separating hyperplane is constructed. Two parallel hyperplanes are constructed on each side of the hyperplane that separates the data. The separating hyperplane is the hyperplane that maximises the distance between the two parallel hyperplanes. An assumption is made that the larger the margin or distance between these parallel hyperplanes the better the generalisation error of the classifier will be. The model produced by support vector classification only depends on a subset of the training data, because the cost function for building the model does not care about training points that lie beyond the margin. Content retrieved from Wikipedia on the 13th of June, 2007: http://en.wikipedia.org/w/index.php?title=Support_vector_machine&oldid=136646498. The openModeller implementation of SVMs makes use of the libsvm library version 2.85: Chih-Chung Chang and Chih-Jen Lin, LIBSVM: a library for support vector machines, 2001. Software available at http://www.csie.ntu.edu.tw/~cjlin/libsvm.\n\nRelease history:\n version 0.1: initial release\n version 0.2: New parameter to specify the number of pseudo-absences to be generated; upgraded to libsvm 2.85; fixed memory leaks\n version 0.3: when absences are needed and the number of pseudo absences to be generated is zero, it will default to the same number of presences\n version 0.4: included missing serialization of C\n version 0.5: the indication if the algorithm needed normalized environmental data was not working when the algorithm was loaded from an existing model.",

  "Vladimir N. Vapnik", 
  "1) Vapnik, V. (1995) The Nature of Statistical Learning Theory. SpringerVerlag. 2) Schölkopf, B., Smola, A., Williamson, R. and Bartlett, P.L.(2000). New support vector algorithms. Neural Computation, 12, 1207-1245. 3) Schölkopf, B., Platt, J.C., Shawe-Taylor, J., Smola A.J. and Williamson, R.C. (2001). Estimating the support of a high-dimensional distribution. Neural Computation, 13, 1443-1471. 4) Cristianini, N. & Shawe-Taylor, J. (2000). An Introduction to Support Vector Machines and other kernel-based learning methods. Cambridge University Press.", 

  "Renato De Giovanni in collaboration with Ana Carolina Lorena", 
  "renato [at] cria . org . br", 

  0, 
  0, 

  NUM_PARAM, 
  parameters
}

Definition at line 186 of file svm_alg.cpp.

Definition at line 62 of file svm_alg.cpp.