首頁 >科技週邊 >人工智慧 >PostgreSML教程:使用SQL進行機器學習

PostgreSML教程:使用SQL進行機器學習

Christopher Nolan
Christopher Nolan原創
2025-03-07 09:16:12252瀏覽

機器學習的主要趨勢涉及將數據傳輸到模型的培訓環境中。 但是,如果我們扭轉了這個過程怎麼辦?鑑於現代數據庫比機器學習模型大得多,將模型移至數據集更有效嗎?

這是PostgreSML背後的基本概念 - 數據仍在其位置,您將代碼帶到數據庫中。這種機器學習的倒置方法提供了許多實踐優勢,這些優勢挑戰了“數據庫”的常規概念。

> postgresml:概述及其優點

> Postgresml是一個建立在廣泛使用的PostgreSQL數據庫基於的綜合機器學習平台。它介紹了一種名為“ database”機器學習的新穎方法,使您能夠在SQL中執行各種ML任務,而無需為每個步驟提供單獨的工具。 >

儘管具有相對新穎性,但PostgreSML提供了幾個關鍵好處:>

PostgresML Tutorial: Doing Machine Learning With SQL

> in-database ml:

在PostgreSQL數據庫中直接在PostgreSQL數據庫中直接運行ML模型。這消除了對數據庫和外部ML框架之間恆定數據傳輸的需求,從而提高了效率並降低了延遲。

    > sql API:利用SQL進行培訓,微調和部署機器學習模型。這簡化了數據分析師和科學家對多個ML框架不熟悉的工作流程。
  • > >>預訓練的模型:
  • >與擁抱面無縫集成,提供訪問眾多預訓練的模型,例如Llama,Falcon,Bert和Mistral。
  • 自定義和靈活性:支持Scikit-Learn,XGBoost,LGBM,Pytorch和Tensorflow的廣泛算法,可直接在數據庫中進行多種監督的學習任務。
  • >生態系統集成:與任何支持Postgres的環境一起使用多種編程語言的SDK(JavaScript,Python和Rust特別支持)。
  • >
  • 本教程將使用典型的機器學習工作流程演示這些功能:
  • 數據加載
  • 數據預處理
  • 模型培訓

超參數微調PostgresML Tutorial: Doing Machine Learning With SQL

生產部署

    所有這些步驟將在Postgres數據庫中執行。讓我們開始!
  1. > postgresml
  2. 的完整監督學習工作流程

    入門:Postgresml免費tier

    1. >創建一個免費帳戶,請> https://www.php.cn/link/3349958A3E3E56580D4E415DA345703886 >

    PostgresML Tutorial: Doing Machine Learning With SQL

      選擇提供慷慨資源的自由層:

    PostgresML Tutorial: Doing Machine Learning With SQL 註冊後,您將訪問Postgresml控制台以管理項目和資源。 >

    “管理”部分允許您根據計算需求擴展環境。 > PostgresML Tutorial: Doing Machine Learning With SQL

    1。安裝和設置Postgres

    PostgresML Tutorial: Doing Machine Learning With SQL > PostgreSML需要PostgreSQL。 可用於各種平台的安裝指南:

    > Windows

    mac os
    • linux
    • 對於WSL2,以下命令足夠:
    • >
    驗證安裝:

    sudo apt update
    sudo apt install postgresql postgresql-contrib
    sudo passwd postgres  # Set a new Postgres password
    # Close and reopen your terminal
    為了獲得比終端更具用戶友好的體驗,請考慮VSCODE擴展。

    >

    psql --version

    2。數據庫連接

    PostgresML Tutorial: Doing Machine Learning With SQL 使用PostgreSML控制台中的連接詳細信息:

    >使用

    PostgresML Tutorial: Doing Machine Learning With SQL 連接

    或者,使用文檔中所述的VSCODE擴展名。

    啟用PGML擴展名:psql

    psql -h "host" -U "username" -p 6432 -d "database_name"
    驗證安裝:

    3。數據加載

    CREATE EXTENSION IF NOT EXISTS pgml;
    >我們將使用Kaggle的Diamonds數據集。將其作為CSV下載或使用此python片段:

    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;
    基本培訓

    PostgresML Tutorial: Doing Machine Learning With SQL 訓練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
    );
    指定超參數

    >使用自定義超參數訓練XGBoost回歸劑:>
    sudo apt update
    sudo apt install postgresql postgresql-contrib
    sudo passwd postgres  # Set a new Postgres password
    # Close and reopen your terminal

    >超參數調整

    執行網格搜索:

    psql --version

    5。模型評估

    使用pgml.predict進行預測:

    >
    psql -h "host" -U "username" -p 6432 -d "database_name"

    使用特定模型,指定其ID:>

    CREATE EXTENSION IF NOT EXISTS pgml;
    檢索模型ID:

    SELECT pgml.version();
    6。模型部署

    Postgresml

    自動部署表現最佳的模型。 對於更精細的控制,請使用

    pgml.deploy>

    import seaborn as sns
    diamonds = sns.load_dataset("diamonds")
    diamonds.to_csv("diamonds.csv", index=False)
    >部署策略包括

    best_scoremost_recentrollback

    進一步探索postgresml

    > postgresml超出了監督學習的範圍。首頁具有用於實驗的SQL編輯器。 建立面向消費者的ML服務可能涉及:

    創建一個用戶界面(例如,使用簡化或taipy)。 >

    開發後端(python,node.js)。
    1. 使用
    2. 的庫進行數據庫交互。
    3. >
    4. >後端中的預處理數據。 psycopg2 在用戶交互時,pg-promise觸發
    5. pgml.predict結論
    PostgreSML提供了一種新穎的機器學習方法。 為了進一步了解您的理解,請探索GostgreSML文檔,並考慮Datacamp的SQL課程和AI基礎知識等資源。

    >

以上是PostgreSML教程:使用SQL進行機器學習的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn