SQL開発者のための In-Database Python 分析
このチュートリアルの目的は、SQLプログラマーにSQL Serverで機械学習ソリューションを構築する実践的な体験を提供することです。 このチュートリアルでは、ストアドプロシージャにPythonコードを追加することで、Pythonをアプリケーションに組み込む方法を学習します。
[!NOTE]
同様のチュートリアルのR版はこちら。R版はSQL Server 2017とSQL Server 2016の両方で動作します。
概要
機械学習開発のライフサイクルは一般的に、データの取得とクレンジング、データの探索と特徴エンジニアリング、モデルのトレーニングとチューニング、そして最終的には本番環境へのモデル展開で構成されます。実際のコーディング、デバッグ、テストは、以下のようなPython用の統合開発環境(Python Tools for Visual Studio、PyCharm、Spyderなど)を使用するのが最適です。
Python IDEでソリューションを作成してテストした後、PythonコードをTransact-SQLストアドプロシージャとしてSQL Serverに展開します。このチュートリアルでは、必要なすべてのPythonコードを提供します。
-
サンプルデータセットとすべてのスクリプトファイルをローカルコンピュータにダウンロードします。
-
Step 2: PowerShellを使用したSQL Serverへのデータインポート
指定したインスタンス上にデータベースとテーブルを作成し、サンプルデータをテーブルにロードするPowerShellスクリプトを実行します。
-
Transact-SQLストアドプロシージャからPythonを実行し、基本的なデータの探索と可視化を実行します。
-
ユーザ定義関数を活用しデータの特徴抽出を行います。
-
Step 5: T-SQLを使用したモデルのトレーニングと保存
ストアドプロシージャ化したPythonコードにより機械学習モデルを構築して保存します。
-
モデルをデータベースに保存した後、Transact-SQLを使用して予測のためにモデルを呼び出します。
[!NOTE]
ストアドプロシージャに埋め込まれたコードに問題がある場合、ストアドプロシージャから返される情報は通常、エラーの原因を理解するには不十分であるため、PythonコードのテストはPython用の統合開発環境(IDE)を使用することをお勧めします。
シナリオ
このチュートリアルでは、よく知られているNYC Taxiデータセットを使用します。このチュートリアルをすばやく簡単にするために、データはサンプリングして利用します。このデータセットの、時刻、距離、ピックアップ場所などの列に基づき、特定の乗車においてチップが得られるかどうかを予測するバイナリ分類モデルを作成します。
要件
チュートリアルを開始する前に、次の準備を完了する必要があります。:
-
SQL Server 2017のDatabase Engine ServicesおよびMachine Learning Services(In-Database)をインストールしてください。
-
SQL Server 2017 内でPython(およびR)実行するにはsp_configureでexternal scripts enabledの設定変更が必要です。またexternal scripts enabledパラメータは設定変更の反映にSQL Server 2017の再起動が必要です。
-
1.外部スクリプト実行機能の有効化
T-SQLEXEC sp_configure 'external scripts enabled', 1;
-
2.SQL Server 2017の再起動
cmdnet stop "SQL Server Launchpad (MSSQLSERVER)" net stop "SQL Server (MSSQLSERVER)" net start "SQL Server (MSSQLSERVER)" net start "SQL Server Launchpad (MSSQLSERVER)"
netコマンドに渡すインスタンス名は環境に応じて変更してください。またSQL Server AgentサービスなどSQL Serverサービスに依存するサービスがある場合には明示的に再開してください。
-
-
このチュートリアルで使用するSQL Serverログインには、データベースやその他のオブジェクトの作成、データの更新、データの参照、ストアドプロシージャの実行の権限が必要です。
リンク
次のステップ
出典
In-Database Python Analytics for SQL Developers