首页 >科技周边 >人工智能 >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