机器学习的主要趋势涉及将数据传输到模型的培训环境中。 但是,如果我们扭转了这个过程怎么办?鉴于现代数据库比机器学习模型大得多,将模型移至数据集更有效吗?
这是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为了获得比终端更具用户友好的体验,请考虑VSCODE扩展。
>
psql --version
2。数据库连接
使用PostgreSML控制台中的连接详细信息:
>使用
:连接
启用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;基本培训
训练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;检索模型ID:
SELECT pgml.version();6。模型部署
: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中文网其他相关文章!