LegoAgent-Eve
|
Klasse zur Erkennung des Figurtyps mithilfe einer Support-Vector-Machine. More...
Public Member Functions | |
SVM (Dataset dataset) | |
Constructor for Support Vector Machine. More... | |
void | findSupportVectors () |
void | computeSeparator () |
Berchnet die Trennlinie zwischen den beiden Punktewolken. More... | |
Figure | classify (IDataPoint dataPoint) |
Bestimmt den Typ des gegebenen Datenpunkts anhand der bereitgestellten Daten. More... | |
Private Attributes | |
Dataset | dataSet |
Vector | PointOnSeparator |
Es sei im 2D-Raum die Gerade des Separators (Hyperebene) als g(x, y) = this.PointOnSeparator + n * this.vectorParallelToSeparator (die Straße entlang) mit dem orthogonalen Vektor this.vectorToSeparatorSide (von der Straßenmitte zum Rand der Straße in einem Schritt) More... | |
Klasse zur Erkennung des Figurtyps mithilfe einer Support-Vector-Machine.
Constructor for Support Vector Machine.
dataset | the dataset all operations are referring to |
References SVM.findSupportVectors().
Figure classify | ( | IDataPoint | dataPoint | ) |
Bestimmt den Typ des gegebenen Datenpunkts anhand der bereitgestellten Daten.
Berechnet sich im Zweifelsfall
Implements ISVM.
References Figure.circle, Dataset.getSvmOrientation(), Vector.linearcombination(), Logger.log(), Figure.rectangle, Vector.subtract(), IDataPoint.toVector(), and Figure.UNKNOWN.
Referenced by Recognition.recognizeSVM().
void computeSeparator | ( | ) |
Berchnet die Trennlinie zwischen den beiden Punktewolken.
Berechne Linearkombination von vektorAB und vectorABinvert zu c - a "Rechtwinkelig über die Straße gehen"
Damit ergibt sich im 2D-Raum die Gerade des Separators (Hyperebene) als g(x, y) = this.PointOnSeparator + n * this.vectorParallelToSeparator (die Straße entlang) mit dem orthogonalen Vektor this.vectorToSeparatorSide (von der Straßenmitte zum Rand der Straße in genau einem Schritt)
Implements ISVM.
References Vector.add(), Vector.getOrthogonal(), Dataset.getSVMPoints(), Vector.linearcombination(), Logger.log(), Vector.multiply(), Vector.subtract(), and IDataPoint.toVector().
Referenced by SVM.findSupportVectors().
void findSupportVectors | ( | ) |
Implements ISVM.
References SVM.computeSeparator(), Dataset.getAllData(), Dataset.getSvmOrientation(), Logger.log(), Dataset.setSvmOrientation(), and Dataset.setsVMPoints().
Referenced by SVM.SVM(), and Recognition.train().
|
private |
|
private |
Es sei im 2D-Raum die Gerade des Separators (Hyperebene) als g(x, y) = this.PointOnSeparator + n * this.vectorParallelToSeparator (die Straße entlang) mit dem orthogonalen Vektor this.vectorToSeparatorSide (von der Straßenmitte zum Rand der Straße in einem Schritt)