機器學習的主要趨勢涉及將數據傳輸到模型的培訓環境中。 但是,如果我們扭轉了這個過程怎麼辦?鑑於現代數據庫比機器學習模型大得多,將模型移至數據集更有效嗎?
這是PostgreSML背後的基本概念 - 數據仍在其位置,您將代碼帶到數據庫中。這種機器學習的倒置方法提供了許多實踐優勢,這些優勢挑戰了“數據庫”的常規概念。 > postgresml:概述及其優點>
Postgresml是一個建立在廣泛使用的PostgreSQL數據庫基於的綜合機器學習平台。它介紹了一種名為“ database”機器學習的新穎方法,使您能夠在SQL中執行各種ML任務,而無需為每個步驟提供單獨的工具。
儘管具有相對新穎性,但PostgreSML提供了幾個關鍵好處:
在PostgreSQL數據庫中直接在PostgreSQL數據庫中直接運行ML模型。這消除了對數據庫和外部ML框架之間恆定數據傳輸的需求,從而提高了效率並降低了延遲。
超參數微調
註冊後,您將訪問Postgresml控制台以管理項目和資源。
“管理”部分允許您根據計算需求擴展環境。
1。安裝和設置Postgres
> PostgreSML需要PostgreSQL。 可用於各種平台的安裝指南:
mac os
sudo apt update sudo apt install postgresql postgresql-contrib sudo passwd postgres # Set a new Postgres password # Close and reopen your terminal
>
psql --version
2。數據庫連接
使用PostgreSML控制台中的連接詳細信息:
>使用
:連接
啟用PGML擴展名:psql
psql -h "host" -U "username" -p 6432 -d "database_name"
3。數據加載
CREATE EXTENSION IF NOT EXISTS pgml;
SELECT pgml.version();
填充表:
import seaborn as sns diamonds = sns.load_dataset("diamonds") diamonds.to_csv("diamonds.csv", index=False)
驗證數據:
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 );
INSERT INTO diamonds (carat, cut, color, clarity, depth, table_, price, x, y, z) FROM '~/full/path/to/diamonds.csv' DELIMITER ',' CSV HEADER;
4。模型培訓
SELECT * FROM diamonds LIMIT 10;
訓練XGBoost回歸劑:
>預處理
SELECT pgml.train( project_name => 'Diamond prices prediction', task => 'regression', relation_name => 'diamonds', y_column_name => 'price', algorithm => 'xgboost' );
PostgreSML提供各種預處理選項(編碼,插圖,縮放)。
SELECT pgml.train( project_name => 'Diamond cut quality prediction', task => 'classification', relation_name => 'diamonds', y_column_name => 'cut', algorithm => 'xgboost', test_size => 0.1 );
sudo apt update sudo apt install postgresql postgresql-contrib sudo passwd postgres # Set a new Postgres password # Close and reopen your terminal
執行網格搜索:
psql --version
使用pgml.predict
進行預測:
psql -h "host" -U "username" -p 6432 -d "database_name"
使用特定模型,指定其ID:
CREATE EXTENSION IF NOT EXISTS pgml;
SELECT pgml.version();
:pgml.deploy
>
import seaborn as sns diamonds = sns.load_dataset("diamonds") diamonds.to_csv("diamonds.csv", index=False)
,best_score
和most_recent
。
rollback
>
創建一個用戶界面(例如,使用簡化或taipy)。
psycopg2
在用戶交互時,pg-promise
觸發pgml.predict
結論>
以上是PostgreSML教程:使用SQL進行機器學習的詳細內容。更多資訊請關注PHP中文網其他相關文章!