mlpack
Verbindet DuckDB mit der C++-Machine-Learning-Bibliothek mlpack
Maintainer: eddelbuettel
Installation und Laden
INSTALL mlpack FROM community;LOAD mlpack;Beispiel
-- Perform adaBoost (using weak learner 'Perceptron' by default)-- Read 'features' into 'X', 'labels' into 'Y', use optional parameters-- from 'Z', and prepare model storage in 'M'CREATE TABLE X AS SELECT * FROM read_csv("https://eddelbuettel.github.io/duckdb-mlpack/data/iris.csv");CREATE TABLE Y AS SELECT * FROM read_csv("https://eddelbuettel.github.io/duckdb-mlpack/data/iris_labels.csv");CREATE TABLE Z (name VARCHAR, value VARCHAR);INSERT INTO Z VALUES ('iterations', '50'), ('tolerance', '1e-7');CREATE TABLE M (key VARCHAR, json VARCHAR);
-- Train model for 'Y' on 'X' using parameters 'Z', store in 'M'CREATE TEMP TABLE A AS SELECT * FROM mlpack_adaboost_train("X", "Y", "Z", "M");
-- Count by predicted groupSELECT COUNT(*) as n, predicted FROM A GROUP BY predicted;
-- Model 'M' can be used to predictCREATE TABLE N (x1 DOUBLE, x2 DOUBLE, x3 DOUBLE, x4 DOUBLE);-- inserting approximate column mean valuesINSERT INTO N VALUES (5.843, 3.054, 3.759, 1.199);-- inserting approximate column mean values, min values, max valuesINSERT INTO N VALUES (5.843, 3.054, 3.759, 1.199), (4.3, 2.0, 1.0, 0.1), (7.9, 4.4, 6.9, 2.5);-- and this predict one element eachSELECT * FROM mlpack_adaboost_pred("N", "M");Über mlpack
Überwachtes Lernen
Die mlpack-Erweiterung ermöglicht das Anpassen (bzw. Trainieren) und Vorhersagen (bzw. Klassifizieren) mit den implementierten Modellen, derzeit AdaBoost, Random Forests sowie (regularisierte) lineare und logistische Regression. Das Format ist für diese vier Methoden gleich: Vier Tabellen, etwa „X“, „Y“, „Z“ und „M“, liefern die Eingaben für Merkmale „X“, Labels „Y“, optionale modellabhängige Parameter in „Z“ sowie eine Ausgabetabelle „M“ für das JSON-serialisierte Modell. Für alle vier Methoden kann nach einer Modellanpassung (bzw. einem Training) eine Vorhersage (bzw. Klassifikation) mit „M“ und neuen Prädiktorwerten „N“ erfolgen, wie im Beispiel gezeigt. Alle „fit“- (bzw. „train“-)Methoden nehmen vier Parametertabellen entgegen, alle „predict“-Methoden zwei.
Unüberwachtes Lernen
Zusätzlich steht eine k-Means-Clustering-Methode zur Verfügung. Sie verwendet drei Tabellen für Daten, Parameter und Ergebnisse.
Allgemeine Informationen
Ein Parameterpaar „mlpack_verbose“ (zusätzliche Daten anzeigen) und „mlpack_silent“ (Anzeige minimaler Zusammenfassungen unterdrücken) kann ebenfalls gesetzt werden.
Die Implementierung betont noch den „minimalen“ Teil einer „(ersten) MVP-Demo“ (wobei MVP für „minimally viable product“ steht). Sie kapselt fünf Methoden des überwachten und unüberwachten maschinellen Lernens und stellt Builds für Linux und macOS bereit. Weitere Methoden, Optionen oder Parameter lassen sich vergleichsweise einfach hinzufügen. Da sich Schnittstellen ändern können, während wir ausloten, wie die Schnittstellenerzeugung aus mlpack selbst automatisiert werden kann, sollte die Erweiterung als experimentell betrachtet werden.
Weitere Informationen finden Sie im Repository.
Hinzugefügte Funktionen
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| mlpack_adaboost_train | table | use adaboost to train and store a model | parameters ‘iterations’, ‘tolerance’, ‘perceptronIter’ and ‘silent’ | NULL |
| mlpack_adaboost_pred | table | predict classification using stored adaboost stored model | NULL | NULL |
| mlpack_linear_regression_fit | table | fit and store linear regression model | parameters ‘lambda’, ‘intercept’ and ‘silent’ | NULL |
| mlpack_linear_regression_pred | table | predict using stored linear regression model | NULL | NULL |
| mlpack_logistic_regression_fit | table | fit and store logistic regression model | parameters ‘lambda’, ‘intercept’ and ‘silent’ | NULL |
| mlpack_logistic_regression_pred | table | predict classification using stored logistic regression model | NULL | NULL |
| mlpack_random_forest_train | table | use random forest to train and store a model | parameters ‘nclasses’, ‘ntrees’, ‘seed’, ‘threads’ and ‘silent’ | NULL |
| mlpack_random_forest_pred | table | predict classification using stored random forest model | NULL | NULL |
| mlpack_kmeans | table | use kmeans unsupervised clustering | parameters ‘clusters’, and ‘iterations’ | NULL |
| mlpack_mlpack_version | scalar | returns the version string for the mlpack version used | NULL | NULL |
| mlpack_armadillo_version | scalar | returns the version string for the armadillo version used | NULL | NULL |
Überladene Funktionen
Diese Erweiterung fügt keine Funktionsüberladungen hinzu.
Hinzugefügte Typen
Diese Erweiterung fügt keine Typen hinzu.
Hinzugefügte Einstellungen
| name | description | input_type | scope | aliases |
|---|---|---|---|---|
| mlpack_silent | Toggle whether to operate in silent mode, default is false | BOOLEAN | GLOBAL | [] |
| mlpack_verbose | Toggle whether to operate in verbose mode, default is false | BOOLEAN | GLOBAL | [] |