Implementierungen
Der Algorithmus Support-Vector-Machine ist in vielen verschiedenen Sprachen verfügbar. Viele greifen intern auf die Bibliothek libSVM zurück und müssen dadurch nur ein Interface bereit stellen.
PHP
In php steht ein Interface zu libSVM zur Verfügung. Es existiert eine Dokumentation, die die Installation und Nutzung erklärt. Dort wurde auch folgendes Beispiel entnommen:
<?php
$data = array(
array(-1, 1 => 0.43, 3 => 0.12, 9284 => 0.2),
array(1, 1 => 0.22, 5 => 0.01, 94 => 0.11),
);
$svm = new SVM();
$model = $svm->train($data);
$data = array(1 => 0.43, 3 => 0.12, 9284 => 0.2);
$result = $model->predict($data);
var_dump($result);
$model->save('model.svm');
?>
Python (sklearn)
Das bekannte Machine-Learning-Framework sklearn nutzt ebenfalls libSVM. Das folgende Beispiel, sowie andere Varianten des SVM-Algorithmus sind zu finden unter der sklearn SVM Dokumentation.
from sklearn import svm
X = [[0, 0], [1, 1]]
y = [0, 1]
clf = svm.SVC()
clf.fit(X, y)
clf.predict([[2., 2.]])
Java (weka)
In Java steht SVM über das weka-Framework zur Verfügung. Die Dokumentation des Algorithmus, der intern ebenfalls libSVM nutzt, ist hier) zu finden.
NodeJS
Für NodeJS lässt sich der Support-Vector-Machine Algorithmus über den Packet Manager npm installieren. Die Dokumentation des Paketes und das hier aufgeführte Beispiel ist unter diesem Link verfügbar. Die Implementierung nutzt intern ebenfalls libSVM.
var svm = require('node-svm');
var xor_data = [
[[0, 0], 0],
[[0, 1], 1],
[[1, 0], 1],
[[1, 1], 0]
];
var clf = new svm.CSVC();
clf.train(xor_data).done(function () {
// predict things
xor_data.forEach(function(ex){
var prediction = clf.predictSync(ex[0]);
console.log('%d XOR %d => %d', ex[0][0], ex[0][1], prediction);
});
});
MatLab
MatLab ist bei vielen mathematischen Anwendungen ein beliebtes Programm. Besonders zum Visualisieren von Funktionen ist es hervorragend geeignet. Eine Implementierung des SVM-Algorithmus ist ebenfalls enthalten: fitcsvm . Mit MatLab lassen sich nicht nur die Datenpunkte als Grafik plotten, sondern auch die Trennebenen, die der SVM-Algorithmus findet, visualisieren.
Author: Daniel Beneker