Die Dokumentation wird noch erstellt, nachdem das Projekt eine neue, einheitliche Lern-API eingeführt hat, die nun für alle Maschinenlernmodelle gilt. Das meiste wurde gerade erst gestern aktualisiert, aber einige Teile brauchen vielleicht noch Aufmerksamkeit.
Beantworten Sie Ihre ursprüngliche Frage, finden Sie ein Beispiel für Polynom-SV-Regression unten. Nehmen wir an, wir haben zweidimensionale Eingabevektoren, und wir würden gerne eine Zuordnung von diesen Vektoren zu einem einzelnen Skalarwert lernen.
// Declare a very simple regression problem
// with only 2 input variables (x and y):
double[][] inputs =
{
new[] { 3.0, 1.0 },
new[] { 7.0, 1.0 },
new[] { 3.0, 1.0 },
new[] { 3.0, 2.0 },
new[] { 6.0, 1.0 },
};
double[] outputs =
{
65.3,
94.9,
65.3,
66.4,
87.5,
};
Aus Gründen des Beispiels werden wir die Maschine Komplexität Parameter auf einen sehr hohen Wert, wodurch den Lernalgorithmus gesetzt hart margen Lösungen zu finden, die sonst nicht sehr gut verallgemeinern würden. Beim Training in der realen Welt Probleme, lassen Sie die Eigenschaften UseKernelEstimation und UseComplexityHeuristic auf true gesetzt oder eine Rastersuche führen ihre optimalen Parameter zu finden:
// Create a LibSVM-based support vector regression algorithm
var teacher = new FanChenLinSupportVectorRegression<Polynomial>()
{
Tolerance = 1e-5,
// UseKernelEstimation = true,
// UseComplexityHeuristic = true
Complexity = 10000,
Kernel = new Polynomial(degree: 1) // you can change the degree
};
Jetzt, nachdem wir den Lernalgorithmus erstellt haben, können wir es verwenden können Zug ein SVM-Modell aus den Daten:
// Use the algorithm to learn the machine
var svm = teacher.Learn(inputs, outputs);
und schließlich können wir die Maschinen Antworten für den Satz von Eingaben erhalten und wir können überprüfen, wie gut die von der Maschine vorausgesagten Werte im Vergleich zu der erwarteten Grunde Wahrheit waren:
// Get machine's predictions for inputs
double[] prediction = svm.Score(inputs);
// Compute the error in the prediction (should be 0.0)
double error = new SquareLoss(outputs).Loss(prediction);
Hinweis: Die Beispiele und die Dokumentation wurden endlich aktualisiert. – Cesar