ホームページ >テクノロジー周辺機器 >AI >PostgreSMLチュートリアル:SQLで機械学習を行う

PostgreSMLチュートリアル:SQLで機械学習を行う

Christopher Nolan
Christopher Nolanオリジナル
2025-03-07 09:16:12250ブラウズ

機械学習の一般的な傾向には、トレーニングのためにモデルの環境にデータを転送することが含まれます。 しかし、このプロセスを逆転させた場合はどうなりますか?最新のデータベースが機械学習モデルよりも大幅に大きいことを考えると、モデルをデータセットに移動する方が効率的ではないでしょうか?

これはPostgreSMLの背後にある基本的な概念です。データはその場所に残り、データベースにコードを持ち込みます。機械学習へのこの逆のアプローチは、「データベース」の従来の概念に挑戦する多くの実用的な利点を提供します。

postgreSml:概要とその利点

PostgreSMLは、広く使用されているPostgreSQLデータベースに基づいて構築された包括的な機械学習プラットフォームです。 「database in in-database」機械学習と呼ばれる新しいアプローチを導入し、各ステップに個別のツールを必要とせずにSQL内でさまざまなMLタスクを実行できるようにします。

その比較的新規性にもかかわらず、PostgreSMLはいくつかの重要な利点を提供します:PostgresML Tutorial: Doing Machine Learning With SQL

database ml:
    PostgreSQLデータベース内でMLモデルを直接トレーニング、展開、および実行します。これにより、データベースと外部MLフレームワーク間の一定のデータ転送の必要性がなくなり、効率が向上し、遅延が削減されます。
  • sql API:トレーニング、微調整、および機械学習モデルの展開のためにSQLをレバレッジします。これにより、複数のMLフレームワークにあまり精通していないデータアナリストと科学者のワークフローが簡素化されます。
  • 事前に訓練されたモデル:ラマ、ファルコン、バート、ミストラルなどの多数の事前に訓練されたモデルにアクセスできるように、ハガーフェイスを統合します。
  • カスタマイズと柔軟性: scikit-learn、xgboost、lgbm、pytorch、およびtensorflowの幅広いアルゴリズムをサポートし、データベース内で多様な監視された学習タスクを可能にします。
  • 生態系統合:
  • このチュートリアルでは、典型的な機械学習ワークフローを使用してこれらの機能を実証します。 データの読み込み
データ前処理

PostgresML Tutorial: Doing Machine Learning With SQL モデルトレーニング

HyperParameter微調整

    生産展開
  1. これらすべての手順は、Postgresデータベース内で実行されます。始めましょう!
  2. postgreSML
  3. を使用した完全な監視された学習ワークフロー

    始めましょう:postgreSml free tier

    1. https://www.php.cn/link/3349958a3e56580d4e415da345703886
    2. で無料アカウントを作成します

    PostgresML Tutorial: Doing Machine Learning With SQL

    1. 寛大なリソースを提供する無料の層を選択します:

    PostgresML Tutorial: Doing Machine Learning With SQL

    サインアップ後、プロジェクトとリソースを管理するためにPostgreSMLコンソールにアクセスします。

    PostgresML Tutorial: Doing Machine Learning With SQL

    「管理」セクションでは、計算のニーズに基づいて環境をスケーリングできます。

    PostgresML Tutorial: Doing Machine Learning With SQL 1。 postgresのインストールとセットアップ

    postgreSmlにはpostgresqlが必要です。 さまざまなプラットフォームのインストールガイドが利用可能です:

    windows
  • mac os
  • linux

インストールを確認します:

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のダイヤモンドデータセットを使用します。 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 Regressorをトレーニングします:

マルチクラス分類器をトレーニングします:

前処理

SELECT pgml.train(
 project_name => 'Diamond prices prediction',
 task => 'regression',
 relation_name => 'diamonds',
 y_column_name => 'price',
 algorithm => 'xgboost'
);
前処理を伴うランダムフォレストモデルをトレーニング:

SELECT pgml.train(
 project_name => 'Diamond cut quality prediction',
 task => 'classification',
 relation_name => 'diamonds',
 y_column_name => 'cut',
 algorithm => 'xgboost',
 test_size => 0.1
);
postgreSmlは、さまざまな前処理オプション(エンコード、帰属、スケーリング)を提供します

HyperParametersの指定

カスタムハイパーパラメーターを使用してXGBoost Regressorをトレーニングします:

sudo apt update
sudo apt install postgresql postgresql-contrib
sudo passwd postgres  # Set a new Postgres password
# Close and reopen your terminal

HyperParameterチューニング

グリッド検索を実行する

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サービスを構築するには、

に関係する場合があります
  1. ユーザーインターフェイスの作成(たとえば、StreamlitまたはTaipyを使用)
  2. バックエンドの開発(python、node.js)。
  3. データベースインタラクションには
  4. などのライブラリを使用しています。psycopg2 バックエンドでのプリプロセシングデータ。pg-promise ユーザーインタラクション時に
  5. トリガー
  6. pgml.predict
  7. 結論

PostgreSMLは、機械学習への新しいアプローチを提供します。 理解を深めるために、PostgreSMLドキュメントを調べて、DataCampのSQLコースやAIファンダメンタルチュートリアルなどのリソースを検討してください。

以上がPostgreSMLチュートリアル:SQLで機械学習を行うの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。