ML 以前の世界が存在していたことを信じられないこともあります。現代のデータ分析の多くは ML 技術を基盤として構築されており、今後もその傾向が続くでしょう。ただし、ML 技術を使用するには、主に Python の使用、コードの開発、多くの新しいテクノロジーの理解が必要になるため、誰もがこれらの大きな進歩の恩恵を受けられるわけではありません。特にビッグデータや分散システムがゲームに参入すると、事態は複雑になります。
これは、SQL クエリ エンジンが解決しようとしている問題です。シンプルでありながら強力な SQL コマンドを使用して、分散システムの複雑な世界で作業できるようになります。 dask-sql は、Python 専用の Dask 分散ライブラリ上に構築された新しい SQL クエリ エンジンです (免責事項: 作者は私です)。この新しいライブラリを使用すると、Python を SQL および分散スケーラブル コンピューティングと組み合わせることができます。(詳細については、私の他の記事を参照してください)。 dask-sql の最新バージョン 0.3.0 には機械学習の実験的なサポートが含まれているので、今日はその使い方を見ていきます。もちろん、データ サイエンスの世界で有名な Iris データセットを使用します。この特定のデータ サンプルは小さいですが、この記事に示されているすべてのものは、クラスターにコンピューティング ノードを追加するだけで、より大量のデータに簡単に拡張できます。 補足: dask-sql を使用した ML はまだ実験段階です :-) お気軽にお試しください。ただし、注意して使用してください。 前提条件と準備 この記事では、あなた (またはデータ エンジニア) がすでに dask-sql をセットアップして実行していることを前提としています。詳細については、ドキュメントまたはこのブログ投稿を参照してください。また、最近のバージョンでは dask-sql のネイティブ サポートも提供している Apache Hue などの BI ツールなど、SQL Server インターフェイスを介して dask-sql に接続していると想定します。 dask-sql の Python インターフェースを使用している場合でも、この手順に従うことができます。 Jupyterノートブックを次のセルで初期化するだけです
次のコード例では、各SQLコマンドの前に%%sqlを追加します。たとえば、
データの読み込みと準備 準備が整ったら、データのインポートを開始しましょう。 dask-sql は大規模な Python および Dask エコシステムを活用しているため、さまざまな場所からさまざまな形式でデータ サンプルを読み取ることができます。この例では、かなり標準的な CSV 形式でインターネットからデータを取得します。
データセットは「iris」という名前のテーブルとして読み込まれ、保存されます。 persist=True にすると、dask-sql はデータをメモリにキャッシュします。 データが正しく読み込まれているかどうかを確認します アイリスの説明 ご覧のとおり、データ型は自動的に割り当てられます。次の標準 SQL コマンドを使用して、データの最初の 10 行を表示できます。
アイリスの花のデータセットの簡単な紹介: 上記の出力に示されているように、データセットはアイリスの花とその種の測定値を記述します。これは機械学習における標準データセットの 1 つであり、多くの種類の ML 手法の例として使用できます。この例では、教師なしクラスタリング アルゴリズムを適用します。 トレーニングを始める前に、まずすべての ML パイプラインにおけるもう 1 つの重要なステップである特徴抽出を実行しましょう。私は生物学者ではないので、ここでは、萼片の長さと萼片の幅を掛け合わせるという、非常に単純で素朴な新しい関数を例として使用します。 SQL ステートメントと関数を使用して、より複雑な機能を生成することもできます。それだけでは不十分な場合は、dask-sql を使用すると、Python で記述されたユーザー定義関数 (UDF) を登録できます。
作業を楽にするために、この拡張テーブルに別名を導入しましょう
これで機械学習を適用する準備が整いました。 機械学習モデルのトレーニング 機械学習モデルには、線形回帰のような単純なモデルから、強力なブースト決定木、トランスフォーマーのような最先端の研究モデルまで、さまざまな種類があります。これらの多くは有名な scikit-learn Python パッケージに実装されているため、(他の多くのライブラリとともに)dask-sql でも利用できます。 この例では、k-Means クラスタリング アルゴリズムを適用しました。つまり、データセットを類似した特性を持つ行のクラスターにグループ化します。すべてがうまくいけば、アルゴリズムに指示しなくても、同じ種類の花をグループ化できるようになることを期待しています。このアルゴリズムのパフォーマンスがどの程度優れているか見てみましょう (ネタバレ: あまり優れていません)。 dask-sql 互換モデルとその設定について詳しく知りたい場合は、ドキュメントを参照することをお勧めします。 それでは、データにクラスタリング アルゴリズムを適用してみましょう。
ご覧のとおり、トレーニングには新しい SQL 構造 CREATE MODEL を使用しました。この構造は、トレーニングするモデルを指定するためのいくつかのパラメータを取得します。私たちの場合、scikit-learn から k-Means アルゴリズムを選択し、グループまたはクラスターの希望数を 3 に設定します (種が 3 つあるため)。 scikit-learn パッケージのアルゴリズムは中程度のサイズのデータではうまく機能しますが、それ以上のサイズが必要な場合は、dask-ml を参照してください。 トレーニングはすぐに完了するはずです(データセットの合計が小さいため)。次に、予測の確認に進みます。 パフォーマンスを確認する
この SQL ステートメントは、トレーニング済みのモデルを指定されたデータに適用し、モデルの予測ターゲットを含む新しい列「target」を追加します。最初の 10 行からは、良さそうです (すべての「setosa」は同じ予測ターゲットを持っています)。したがって、より多くの計算を行うためにエイリアスを再度導入します。
簡単にするために、結果を簡単に見て、種の分布と予測されるクラスターを調べるだけにします。
まったく完璧ではありませんが、幸いなことにこれは ML に関する記事ではないので、最適化の手順は省略します :-)。 BIツールではこれらの数値を自動的にプロットできる場合があり、Pythonユーザーであれば
まとめ 最後までこの投稿を読んでいただきありがとうございました。かなり多くの内容を取り上げたので、ここで簡単にまとめます。
さらに詳しく知りたい場合は、ドキュメントにアクセスして、データの SQL 処理を確認してください。 オリジナルリンク: https://towardsdatascience.com/machine-learning-in-sql-it-actually-works-56e8d91fc273 |
<<: 人工知能に関してどのような基礎教育が必要でしょうか?
>>: 2020年、全国の産業用ロボット出荷台数は前年比19.1%増加した。
気候変動は現在人類が取り組むべき最も重要な課題の一つとなっています。この急速に拡大する危機には、その...
はじめに: AI 開発についてさらに詳しく知りたいですか? この記事では、AIプログラムを作成する際...
皆さんご存知のとおり、2013年以来、我が国は世界最大の産業用ロボットの需要と応用市場となっています...
最近、GPT-4(コンテキスト長32k)、MosaicMLのMPT(コンテキスト長65k)、Anth...
7月7日、MDN Web Documentation Project(旧称Mozilla Deve...
技術概要:今回は主に教師なし特徴学習とディープラーニングの最近の発展と、時系列モデル問題におけるそれ...
10月12日、国家情報セキュリティ標準化技術委員会の公式サイトによると、同委員会が組織し策定した技...
Apple による最近の研究により、高解像度画像における拡散モデルのパフォーマンスが大幅に向上しま...
人工知能を真に理解するために、研究者は、環境に対する人間のような理解を再現できる基礎的な AGI 技...
2019年グローバルスマート博覧会は今年5月9日から11日まで蘇州工業園区で開催される予定だ。蘇州...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
人工知能は現代のビジネス界に多くの変化をもたらしています。多くの企業が AI を活用して顧客をより深...
大規模言語モデルがコード生成において並外れた能力を発揮していることは誰もが知っています。しかし、コン...