Heim >Technologie-Peripheriegeräte >KI >Postgresml Tutorial: maschinelles Lernen mit SQL machen
Der vorherrschende Trend im maschinellen Lernen beinhaltet das Übertragen von Daten in die Umgebung des Modells für das Training. Was ist jedoch, wenn wir diesen Prozess umkehren würden? Wäre es nicht effizienter, die Modelle in die Datensätze zu verschieben, da moderne Datenbanken erheblich größer sind als maschinelle Lernmodelle?
Dies ist das grundlegende Konzept hinter Postgresml - die Daten bleiben an ihrem Standort und Sie bringen Ihren Code in die Datenbank. Dieser umgekehrte Ansatz für maschinelles Lernen bietet zahlreiche praktische Vorteile, die konventionelle Vorstellungen einer "Datenbank" in Frage stellen.
postgresml: Ein Überblick und ihre Vorteile
postgresml ist eine umfassende Plattform für maschinelles Lernen, die auf der weit verbreiteten Postgresql-Datenbank basiert. Es führt einen neuartigen Ansatz mit dem Namen "In-Database" -Maschinenlernen ein, mit dem Sie verschiedene ML-Aufgaben innerhalb von SQL ausführen können, ohne separate Tools für jeden Schritt zu benötigen.
Trotz seiner relativen Neuheit bietet Postgresml mehrere wichtige Vorteile:
Dieses Tutorial zeigt diese Funktionen mit einem typischen Workflow:
Alle diese Schritte werden in einer Postgres -Datenbank durchgeführt. Beginnen wir!
Ein vollständiger beaufsichtigter Lernworkflow mit PostgreSml
Nach der Anmeldung zugreifen Sie auf Ihre Postgresml -Konsole, um Projekte und Ressourcen zu verwalten.
Mit dem Abschnitt "Verwalten" können Sie Ihre Umgebung basierend auf den Rechenanforderungen skalieren.
postgresml erfordert PostgreSQL. Installationsführer für verschiedene Plattformen sind verfügbar:
Für WSL2 reicht die folgenden Befehle aus:
sudo apt update sudo apt install postgresql postgresql-contrib sudo passwd postgres # Set a new Postgres password # Close and reopen your terminal
Überprüfen Sie die Installation:
psql --version
Für eine benutzerfreundlichere Erfahrung als das Terminal die VSCODE-Erweiterung berücksichtigen.
Verwenden Sie die Verbindungsdetails in Ihrer Postgresml -Konsole:
Verbinden Sie mit psql
:
psql -h "host" -U "username" -p 6432 -d "database_name"
Verwenden Sie alternativ die VSCODE -Erweiterung wie in ihrer Dokumentation beschrieben.
Aktivieren Sie die PGML -Erweiterung:
CREATE EXTENSION IF NOT EXISTS pgml;
Überprüfen Sie die Installation:
SELECT pgml.version();
Wir werden den Diamonds -Datensatz von Kaggle verwenden. Laden Sie es als CSV herunter oder verwenden Sie diesen Python -Snippet:
import seaborn as sns diamonds = sns.load_dataset("diamonds") diamonds.to_csv("diamonds.csv", index=False)
Erstellen Sie die Tabelle:
CREATE TABLE IF NOT EXISTS diamonds ( index SERIAL PRIMARY KEY, carat FLOAT, cut VARCHAR(255), color VARCHAR(255), clarity VARCHAR(255), depth FLOAT, table_ FLOAT, price INT, x FLOAT, y FLOAT, z FLOAT );
Populate die Tabelle:
INSERT INTO diamonds (carat, cut, color, clarity, depth, table_, price, x, y, z) FROM '~/full/path/to/diamonds.csv' DELIMITER ',' CSV HEADER;
Überprüfen Sie die Daten:
SELECT * FROM diamonds LIMIT 10;
trainieren Sie einen Xgboost -Regressor:
SELECT pgml.train( project_name => 'Diamond prices prediction', task => 'regression', relation_name => 'diamonds', y_column_name => 'price', algorithm => 'xgboost' );
trainieren Sie einen Klassifikator mit mehreren Klassen:
SELECT pgml.train( project_name => 'Diamond cut quality prediction', task => 'classification', relation_name => 'diamonds', y_column_name => 'cut', algorithm => 'xgboost', test_size => 0.1 );
trainieren Sie ein zufälliges Waldmodell mit Vorverarbeitung:
SELECT pgml.train( project_name => 'Diamond prices prediction', task => 'regression', relation_name => 'diamonds', y_column_name => 'price', algorithm => 'random_forest', preprocess => '{ "carat": {"scale": "standard"}, "depth": {"scale": "standard"}, "table_": {"scale": "standard"}, "cut": {"encode": "target", "scale": "standard"}, "color": {"encode": "target", "scale": "standard"}, "clarity": {"encode": "target", "scale": "standard"} }'::JSONB );
postgresml bietet verschiedene Vorverarbeitungsoptionen (Codierung, Imputierung, Skalierung).
trainieren Sie einen Xgboost -Regressor mit benutzerdefinierten Hyperparametern:
sudo apt update sudo apt install postgresql postgresql-contrib sudo passwd postgres # Set a new Postgres password # Close and reopen your terminal
Führen Sie eine Gittersuche durch:
psql --version
Verwenden Sie pgml.predict
für Vorhersagen:
psql -h "host" -U "username" -p 6432 -d "database_name"
Um ein bestimmtes Modell zu verwenden, geben Sie seine ID an:
CREATE EXTENSION IF NOT EXISTS pgml;
Modell -IDs abrufen:
SELECT pgml.version();
postgresml bereitet automatisch das BEST-Performing-Modell bereit. Verwenden Sie für eine feinere Kontrolle pgml.deploy
:
import seaborn as sns diamonds = sns.load_dataset("diamonds") diamonds.to_csv("diamonds.csv", index=False)
Bereitstellungsstrategien umfassen best_score
, most_recent
und rollback
.
Weitere Erforschung von PostgreSml
postgresml erstreckt sich über das überwachte Lernen hinaus. Die Homepage verfügt über einen SQL -Editor zum Experimentieren. Der Aufbau eines ML-Dienstes mit Verbrauchern kann:
beinhaltenpsycopg2
oder pg-promise
für die Datenbankinteraktion. pgml.predict
bei der Benutzerinteraktion. Schlussfolgerung
postgresml bietet einen neuartigen Ansatz zum maschinellen Lernen. Um Ihr Verständnis zu fördern, erkunden Sie die Postgresml -Dokumentation und berücksichtigen Sie Ressourcen wie die SQL -Kurse und KI -Grundlagen von DataCamp.
Das obige ist der detaillierte Inhalt vonPostgresml Tutorial: maschinelles Lernen mit SQL machen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!