VantageのデータをAzure Machine Learning Studioで使用する方法
概要
Azure Machine Learning (ML) Studioは、データに対する予測分析ソリューションの構築、テスト、およびデプロイに使用できる、ドラッグ&ドロップ可能なコラボレーションツールです。ML Studioは、Azure Blob Storageからデータを取得することができます。このスタートガイドでは、ML Studio に組み込まれた Jupter Notebook 機能を使用して Teradata Vantage データセットを Blob Storage にコピーする方法を説明します。このデータは、ML Studio で機械学習モデルを構築、学習し、本番環境にデプロイするために使用することができます。
前提条件
-
Teradata Vantageインスタンスへのアクセス。
Vantage のテスト インスタンスが必要な場合は、 https://clearscape.teradata.com. で無料でプロビジョニングできます。 -
Azureサブスクリプションまたは 無料アカウント の作成* Azure ML Studio ワークスペース
-
(オプション) AdventureWorks DW 2016データベース のダウンロード( 「モデルの学習」 セクションなど)
-
「vTargetMail」 テーブルを SQL Server から Teradata Vantageに復元およびコピーします。
-
手順
初期設定
-
現在利用可能な格納場所にストレージ アカウントがあり、このスタート ガイドの Web service plan に DEVTEST Standard を選択していない限り、ML Studio ワークスペースの作成中に、新規のストレージ アカウントを作成する必要がある場合があります。 Azure ポータル にログオンし、ストレージ アカウントを開き、 コンテナ がまだ存在しない場合は作成します。
-
ストレージアカウント名 と キー をメモ帳にコピーし、Python3 NotebookでAzure Blob Storageアカウントにアクセスするために使用します。
-
最後に、Configuration プロパティを開き、'Secure transfer required' を Disabled に設定して、ML Studioインポートデータモジュールがブロブストレージアカウントにアクセスできるようにする。
データのロード
ML Studioにデータを取り込むために、まずはTeradata VantageからAzure Blob Storageにデータをロードする必要があります。ML Jupyter Notebookを作成し、Teradataに接続するためのPythonパッケージをインストールし、Azure Blob Storageにデータを保存することにします。
https://portal.azure.com/[Azure ポータル] にログオンし、 *ML Studioワークスペース* に移動して、 https://studio.azureml.net/[Machine Learning Studio を起動] し 、 *サインイン*します。
-
以下の画面が表示されます。 Notebooks をクリックして、正しいリージョン/ワークスペースにいることを確認し、Notebook の New
をクリックします。
-
Python3 を選択し、Notebook インスタンスに 名前を付け ます。
-
Jupyter Notebook インスタンスに、 Teradata Vantage Python package for Advanced Analytics をインストールします。
pip install teradataml
Microsoft Azure ML StudioとTeradata Vantage Pythonパッケージの間の検証は行われていません。 -
Microsoft Azure Storage Blob Client Library for Python をインストールします。
!pip install azure-storage-blob
-
以下のライブラリをインポートしてください。
import teradataml as tdml from teradataml import create_context, get_context, remove_context from teradataml.dataframe.dataframe import DataFrame import pandas as pd from azure.storage.blob import (BlockBlobService)
-
以下のコマンドを使用して Teradata に接続します。
create_context(host = '<hostname>', username = '<database user name>', password = '<password>')
-
Teradata Python DataFrameモジュールを使用してデータを取得します。
train_data = DataFrame.from_table("<table_name>")
-
Teradata DataFrameをPanda DataFrameに変換します。
trainDF = train_data.to_pandas()
-
データをCSVに変換します。
trainDF = trainDF.to_csv(head=True,index=False)
-
Azue Blob Storage アカウント名、キー、コンテナ名の変数を割り当てます。
accountName="<account_name>" accountKey="<account_key>" containerName="mldata"
-
Azure Blob Storageにファイルをアップロードします。
blobService = BlockBlobService(account_name=accountName, account_key=accountKey) blobService.create_blob_from_text(containerNAme, 'vTargetMail.csv', trainDF)
-
Azure ポータル にログオンし、BLOB ストレージ アカウントを開いて、アップロードされたファイルを表示します。
モデルの学習
既存の Azure Machine Learning を使用したデータの分析 の記事を使って、Azure Blob Storageのデータに基づいて予測型機械学習モデルを構築します。顧客が自転車を購入する可能性があるかどうかを予測することで、自転車店であるアドベンチャーワークスのためのターゲットマーケティングキャンペーンを構築する予定です。
データのインポート
データは、上のセクションでコピーした vTargetMail.csv
という Azure Blob Storage ファイルにあります。
1.. Azure Machine Learning Studio にサインインし、 Experiments をクリックします。 2.. 画面左下の +NEW をクリックし、 Blank Experiment を選択します。 3.. 実験の名前として「Targeted Marketing」を入力します。 4.. Data Input and output の下にある Import data モジュールをモジュール ペインからキャンバスにドラッグします。 5.. [プロパティ] ペインで Azure Blob Storage の詳細 (アカウント名、キー、コンテナ名) を指定します。
experimentキャンバスの下にある Run をクリックして、実験を実行します。
実験が正常に終了したら、Import Data モジュールの下部にある出力ポートをクリックし、 Visualize を選択してインポートしたデータを確認します。
データのクリーンアップ
データをクリーンアップするには、モデルに関連しないいくつかの列を削除する。次を実行します。
-
Data Transformation < Manipulation の下にある*Select Columns in Dataset*モジュールをキャンバスにドラッグします。このモジュールを*Import Data*モジュールに接続します。
-
プロパティペインの*Launch column selector*をクリックして、ドロップする列を指定します。
3.*CustomerAlternateKey*と*GeographyKey*の2 つのカラムを除外します。
モデルの構築
80%は機械学習モデルの学習用、20%はモデルのテスト用としてデータを80対20に分割します。この2値分類問題には、「Two-Class」アルゴリズムを使用します。
-
SplitData モジュールをキャンバスにドラッグし、「Select Columns in DataSet」で接続します。
-
プロパティペインで「Fraction of rows in the first output dataset」に「0.8」を入力します。
-
Two-Class Boosted Decision Tree モジュールを検索し、キャンバスにドラッグします。
-
Train Model モジュールを検索してキャンバスにドラッグし、Two-Class Boosted Decision Tree (MLアルゴリズム)モジュールと Split Data (アルゴリズムをトレーニングするためのデータ)モジュールに接続して入力を指定する。
-
次に、[プロパティ]ペインで Launch column selector をクリックします。予測するカラムとして BikeBuyer カラムを選択します。
モデルの評価
次に、このモデルがテストデータでどのように動作するかをテストします。選択したアルゴリズムと異なるアルゴリズムを比較し、どちらがより良いパフォーマンスを示すかを確認します。
-
Score Model モジュールをキャンバスにドラッグし、 Train Model と Split Data モジュールに接続します。
-
Two-Class Bayes Point Machine を検索し、実験キャンバスにドラッグします。このアルゴリズムが、Two-Class Boosted Decision Treeと比較して、どのようなパフォーマンスを示すかを比較します。
-
Train Model 」と「Score Model」モジュールをコピーして、キャンバスに貼り付けます。
-
Evaluate Model モジュールを検索して、キャンバスにドラッグし、2つのアルゴリズムを比較します。
-
実行 実験します。
-
Evaluate Model モジュールの下部にある出力ポートをクリックし、Visualize をクリックします。
提供される指標は、ROC曲線、精度-再現性ダイアグラム、リフトカーブです。これらの指標を見ると、最初のモデルが2番目のモデルよりも良い性能を発揮していることがわかります。最初のモデルが何を予測したかを見るには、スコア モデルの出力ポートをクリックし、可視化をクリックします。
テストデータセットに2つの列が追加されているのがわかります。 1. スコアリングされた確率:顧客がバイクの購入者である可能性。 2. スコアされたラベル:モデルによって行われた分類 - 自転車の購入者(1)またはそうでない(0)。このラベリングのための確率の閾値は50%に設定されており、調整することが可能です。
BikeBuyer列(実際)とScored Labels列(予測)を比較すると、モデルがどの程度うまく機能したかが分かります。次のステップとして、このモデルを使用して新規顧客の予測を行い、このモデルをWebサービスとして公開したり、SQL Data Warehouseに結果を書き戻したりすることが可能です。
さらに詳しく
-
予測型機械学習モデルの構築の詳細については、 Introduction to Machine Learning on Azureを参照してください。
-
大規模なデータセットのコピーには、Teradata Parallel Transporterのロード/アンロード オペレーターとAzure Blob Storageの間のインターフェイスである Teradata Access Module for Azure の利用を検討してください。
ご質問がある場合、またはさらにサポートが必要な場合は、コミュニティ フォーラムにアクセスしてサポートを受け、他のコミュニティ メンバーと交流してください。 |