org.knime.base.node.mine.svm.learner
Class SvmAlgorithm
java.lang.Object
org.knime.base.node.mine.svm.learner.SvmAlgorithm
public class SvmAlgorithm
- extends Object
This class is the implementation of a binary SVM learning algorithm.
The main algorithm is described in:
Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector
Machines, by John C. Platt. This source code also contains the improvements
to this algorithm presented in: Improvements to Platt's SMO Algorithm for SVM
Classifier Design, by Keerthi a.o.
In order to understand this code, you should read the above papers (which
describe the algorithm used) and possibly other documents about SVMs in
general.
The variable names used in this class follow the notations from the papers.
- Author:
- Stefan, University of Konstanz, Nicolas Cebron, University of Konstanz
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SvmAlgorithm
public SvmAlgorithm(DoubleVector[] inputData,
String positiveClass,
Kernel kernel,
double paramC)
- The main constructor.
- Parameters:
inputData
- the input vectorspositiveClass
- the class value for which to consider an input
vector a 'positive' example. if input vectors have other class
values, they are considered 'negative'paramC
- the "C" from the problem constraintskernel
- the kernel to use in the algorithm
run
public Svm run(ExecutionMonitor exec)
throws CanceledExecutionException,
Exception
- Runs the main algorithm and return the resulting SVM.
- Parameters:
exec
- progress is reported here
- Returns:
- the resulting SVM
- Throws:
CanceledExecutionException
- if the algorithm is canceled.
Exception
- if the algorithm is not able to find support vectors.
Copyright, 2003 - 2010. All rights reserved.
University of Konstanz, Germany.
Chair for Bioinformatics and Information Mining, Prof. Dr. Michael R. Berthold.
You may not modify, publish, transmit, transfer or sell, reproduce, create derivative works from, distribute, perform, display,
or in any way exploit any of the content, in whole or in part, except as otherwise expressly permitted in writing by the
copyright owner or as specified in the license file distributed with this product.