チュートリアル 2: あやめの分類: モデルを構築するTutorial 2: Classify Iris - Build a model

Azure Machine Learning サービス (プレビュー) は、データ サイエンスと高度な分析を支援する統合ソリューションです。データの準備、実験の開発、モデルのデプロイをクラウド スケールで行うプロフェッショナルなデータ サイエンティストを対象としています。Azure Machine Learning services (preview) are an integrated, data science and advanced analytics solution for professional data scientists to prepare data, develop experiments, and deploy models at cloud scale.

このチュートリアルは、3 部構成のシリーズのパート 2 になります。This tutorial is part two of a three-part series. チュートリアルのこのパートでは、Azure Machine Learning サービスを使って次の作業を行います。In this part of the tutorial, you use Azure Machine Learning services to:

  • スクリプトを開いてコードを確認するOpen scripts and review code
  • ローカル環境でスクリプトを実行するExecute scripts in a local environment
  • 実行履歴を確認するReview run histories
  • ローカル Azure CLI ウィンドウでスクリプトを実行するExecute scripts in a local Azure CLI window
  • ローカル Docker 環境でスクリプトを実行するExecute scripts in a local Docker environment
  • リモート Docker 環境でスクリプトを実行するExecute scripts in a remote Docker environment
  • クラウド Azure HDInsight 環境でスクリプトを実行するExecute scripts in a cloud Azure HDInsight environment

このチュートリアルでは、経時的な変化を伴わないあやめデータ セットを使用します。This tutorial uses the timeless Iris flower data set.

前提条件Prerequisites

このチュートリアルを完了するには、次のものが必要です。To complete this tutorial, you need:

  • Azure サブスクリプション。An Azure subscription. Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.
  • 実験アカウントと Azure Machine Learning Workbench (こちらのクイック スタートの説明に従ってインストールされていること)An experimentation account and Azure Machine Learning Workbench installed as described in this quickstart
  • プロジェクトおよびあやめデータ (チュートリアルのパート 1 で準備したもの)The project and prepared Iris data from Tutorial part 1
  • Docker エンジン (ローカルにインストールされ、実行されていること)。A Docker engine installed and running locally. Docker の Community Edition でかまいません。Docker's Community Edition is sufficient. Docker のインストール方法については、こちら (https://docs.docker.com/engine/installation/) をご覧ください。Learn how to install Docker here: https://docs.docker.com/engine/installation/.

iris_sklearn.py と構成ファイルを確認するReview iris_sklearn.py and the configuration files

  1. Azure Machine Learning Workbench アプリケーションを起動します。Launch the Azure Machine Learning Workbench application.

  2. チュートリアル シリーズのパート 1 で作成した myIris プロジェクトを開きます。Open the myIris project you created in Part 1 of the tutorial series.

  3. 開いたプロジェクトで、左端のウィンドウにある [ファイル] ボタン (フォルダー アイコン) を選択して、プロジェクト フォルダーのファイルを一覧表示します。In the open project, select the Files button (the folder icon) on the far-left pane to open the file list in your project folder.

    Azure Machine Learning Workbench プロジェクトを開く

  4. iris_sklearn.py Python スクリプト ファイルを選択します。Select the iris_sklearn.py Python script file.

    スクリプトを選択

    Workbench の新しいテキスト エディター タブにコードが表示されます。The code opens in a new text editor tab inside the Workbench. このスクリプトは、このチュートリアル パートの全体にわたって使います。This is the script you use throughout this part of the tutorial.

    注意

    このサンプル プロジェクトは頻繁に更新されるため、表示されるコードが前出のコードとは厳密に一致しない場合があります。The code you see might not be exactly the same as the preceding code, because this sample project is updated frequently.

    ファイルを開く

  5. Python スクリプト コードを観察して、コーディングのスタイルを把握します。Inspect the Python script code to become familiar with the coding style.

    スクリプト iris_sklearn.py は、次のタスクを実行します。The script iris_sklearn.py performs the following tasks:

    • 既定のデータ準備パッケージ (iris.dprep) を読み込んで pandas DataFrame を作成します。Loads the default data preparation package called iris.dprep to create a pandas DataFrame.

    • 問題を解きづらくするためにランダム機能を追加します Adds random features to make the problem more difficult to solve. あやめデータセットはほぼ 100% の精度で簡単に分類できるほどに小さいため、ランダム性が必要となります。Randomness is necessary because Iris is a small data set that is easily classified with nearly 100% accuracy.

    • scikit-learn 機械学習ライブラリを使ってロジスティック回帰モデルを構築します。Uses the scikit-learn machine learning library to build a logistic regression model. このライブラリには、Azure Machine Learning Workbench が既定で付属しています。This library comes with Azure Machine Learning Workbench by default.

    • pickle ライブラリを使用して、モデルを outputs フォルダーのファイルにシリアル化します。Serializes the model using the pickle library into a file in the outputs folder.

    • シリアル化されたモデルを読み込み、逆シリアル化してメモリに展開します。Loads the serialized model, and then deserializes it back into memory.

    • 逆シリアル化されたモデルを使用して、新しいレコードに対する予測を行います。Uses the deserialized model to make a prediction on a new record.

    • matplotlib ライブラリを使用して、混同行列と多クラス ROC (Receiver Operating Characteristic: 受信者動作特性) 曲線という 2 つのグラフをプロットし、それらを outputs フォルダーに保存します。Plots two graphs, a confusion matrix and a multi-class receiver operating characteristic (ROC) curve, using the matplotlib library, and then saves them in the outputs folder. ご利用の環境にまだ存在しない場合は、このライブラリをインストールしてください。You can install this library in your environment if it isn't there already.

    • 正則化項とモデル精度を実行履歴に自動でプロットします。Plots the regulatization rate and model accuracy in the run history automatically. run_logger オブジェクトは、正則化項とモデル精度をログに記録する目的で終始使用されます。The run_logger object is used throughout to record the regularization rate and the model accuracy into the logs.

ローカル環境で iris_sklearn.py を実行するRun iris_sklearn.py in your local environment

  1. Azure Machine Learning のコマンド ライン インターフェイス (CLI) を起動します。Start the Azure Machine Learning command-line interface (CLI):

    1. Azure Machine Learning Workbench を起動します。Launch the Azure Machine Learning Workbench.

    2. [ワークベンチ] メニューの [ファイル] > [コマンド プロンプトを開く] を選択します。From the Workbench menu, select File > Open Command Prompt.

    Azure Machine Learning コマンド ライン インターフェイス (CLI) ウィンドウは、Windows 上のプロジェクト フォルダー C:\Temp\myIris\> で起動します。The Azure Machine Learning command-line interface (CLI) window starts in the project folder C:\Temp\myIris\> on Windows. このプロジェクトは、チュートリアルのパート 1 で作成したものと同じです。This project is the same as the one you created in Part 1 of the tutorial.

    重要

    後続の手順を実行するには、この CLI ウィンドウを使用する必要があります。You must use this CLI window to accomplish the next steps.

  2. Python プロット ライブラリ matplotlib がまだインストールされていない場合は、CLI ウィンドウでこのライブラリをインストールします。In the CLI window, install the Python plotting library, matplotlib, if you do not already have the library.

    iris_sklearn.py スクリプトは、scikit-learnmatplotlib の 2 つの Python パッケージに依存しています。The iris_sklearn.py script has dependencies on two Python packages: scikit-learn and matplotlib. scikit-learn パッケージについては、Azure Machine Learning Workbench であらかじめインストールされます。The scikit-learn package is installed by Azure Machine Learning Workbench for your convenience. 一方、matplotlib については、まだインストールされていなければ、手動でインストールする必要があります。But, you need to install matplotlib if you don't have it installed yet.

    matplotlib をインストールせずに読み進めた場合でも、このチュートリアルのコードは正常に実行されます。If you move on without installing matplotlib, the code in this tutorial can still run successfully. ただし、履歴で視覚化されるような混同行列の出力や多クラス ROC 曲線のプロットをコードから生成することはできません。However, the code will not be able to produce the confusion matrix output and the multi-class ROC curve plots shown in the history visualizations.

    pip install matplotlib
    

    このインストールの所要時間は約 1 分です。This install takes about a minute.

  3. Workbench アプリケーションに戻ります。Return to the Workbench application.

  4. [iris_sklearn.py] というタブを見つけます。Find the tab called iris_sklearn.py.

    スクリプトのタブを見つける

  5. そのタブのツール バーで、実行環境として [ローカル] を選択し、実行するスクリプトとして iris_sklearn.py を選択します。In the toolbar of that tab, select local as the execution environment, and iris_sklearn.py as the script to run. そのように選択されている場合もあります。These may already be selected.

    ローカルとスクリプトの選択

  6. ツール バーの右側に移動し、[引数] フィールドに「0.01」と入力します。Move to the right side of the toolbar and enter 0.01 in the Arguments field.

    この値は、ロジスティック回帰モデルの正則化項に対応します。This value corresponds to the regularization rate of the logistic regression model.

    ローカルとスクリプトの選択

  7. [実行] ボタンを選択します。Select the Run button. ジョブが直ちにスケジュールされます。A job is immediately scheduled. Workbench ウィンドウの右側の [ジョブ] ウィンドウにジョブが一覧表示されます。The job is listed in the Jobs pane on the right side of the workbench window.

    ローカルとスクリプトの選択

    しばらくすると、ジョブの状態が [送信しています] から [実行中] になり、最後に [完了] に変化します。After a few moments, the status of the job transitions from Submitting, to Running, and finally to Completed.

  8. [ジョブ] ウィンドウで、ジョブの状態テキストの [完了] をクリックします。Select Completed in the job status text in the Jobs pane.

    sklearn の実行

    ポップアップ ウィンドウが開いて、実行の標準出力 (stdout) テキストが表示されます。A pop-up window opens and displays the standard output (stdout) text for the run. stdout テキストを閉じるには、ポップアップ ウィンドウの右上にある [閉じる] (x) ボタンを選択します。To close the stdout text, select the Close (x) button on the upper right of the pop-up window.

    標準出力

  9. [ジョブ] ウィンドウの同じジョブの状態で、[完了] 状態と開始時刻のすぐ上に表示されている青色のテキスト iris_sklearn.py [n] (n は実行回数) を選択します。In the same job status in the Jobs pane, select the blue text iris_sklearn.py [n] (n is the run number) just above the Completed status and the start time. [Run Properties](実行プロパティ) ウィンドウが開き、その特定の実行について、次の情報が表示されます。The Run Properties window opens and shows the following information for that particular run:

    • 実行プロパティ情報Run Properties information
    • OutputsOutputs
    • メトリックMetrics
    • 視覚化 (存在する場合)Visualizations, if any
    • ログLogs

    実行が完了すると、ポップアップ ウィンドウに次の結果が表示されます。When the run is finished, the pop-up window shows the following results:

    注意

    このチュートリアルでは、トレーニング セットにあらかじめランダム化を組み込んでいるため、実際の結果はこちらに示した結果と異なる場合があります。Because the tutorial introduced some randomization into the training set earlier, your exact results might vary from the results shown here.

    Python version: 3.5.2 |Continuum Analytics, Inc.| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)]
    
    Iris dataset shape: (150, 5)
    Regularization rate is 0.01
    LogisticRegression(C=100.0, class_weight=None, dual=False, fit_intercept=True,
           intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
           penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
           verbose=0, warm_start=False)
    Accuracy is 0.6792452830188679
    
    ==========================================
    Serialize and deserialize using the outputs folder.
    
    Export the model to model.pkl
    Import the model from model.pkl
    New sample: [[3.0, 3.6, 1.3, 0.25]]
    Predicted class is ['Iris-setosa']
    Plotting confusion matrix...
    Confusion matrix in text:
    [[50  0  0]
     [ 1 37 12]
     [ 0  4 46]]
    Confusion matrix plotted.
    Plotting ROC curve....
    ROC curve plotted.
    Confusion matrix and ROC curve plotted. See them in Run History details pane.
    
  10. [Run Properties](実行プロパティ) タブを閉じて [iris_sklearn.py] タブに戻ります。Close the Run Properties tab, and then return to the iris_sklearn.py tab.

  11. 追加の実行を繰り返します。Repeat for additional runs.

    [引数] フィールドには、0.001 から 10 の範囲で一連の値を入力してください。Enter a series of values in the Arguments field ranging from 0.001 to 10. [実行] を選択して、さらに何度かコードを実行します。Select Run to execute the code a few more times. コードのロジスティック回帰モデルに渡す引数の値を毎回変えることで、そのたびに異なる結果になります。The argument value you change each time is fed to the logistic regression model in the code, resulting in different findings each time.

実行履歴を詳しく確認するReview the run history in detail

Azure Machine Learning Workbench では、スクリプトの実行がすべて実行履歴レコードとしてキャプチャされます。In Azure Machine Learning Workbench, every script execution is captured as a run history record. [実行] ビューを開くと、特定のスクリプトの実行履歴を表示することができます。If you open the Runs view, you can view the run history of a particular script.

  1. 実行の一覧を開くには、左側のツール バーにある [実行] ボタン (時計のアイコン) を選択します。To open the list of Runs, select the Runs button (clock icon) on the left toolbar. 次に、[iris_sklearn.py] を選択して iris_sklearn.py[Run Dashboard](実行ダッシュボード) を表示します。Then select iris_sklearn.py to show the Run Dashboard of iris_sklearn.py.

    実行ビュー

  2. [Run Dashboard](実行ダッシュボード) タブが表示されます。The Run Dashboard tab opens.

    複数回の実行を通じてキャプチャされた統計情報を確認します。Review the statistics captured across the multiple runs. タブの上部にはグラフが表示されます。それぞれの実行には連番が付され、その詳細が画面下部のテーブルに一覧表示されます。Graphs render in the top of the tab. Each run has a consecutive number, and the run details are listed in the table at the bottom of the screen.

    実行ダッシュボード

  3. テーブルをフィルター処理し、いずれかのグラフを選択すると、各実行の状態、期間、精度、正則化項が表示されます。Filter the table, and then select any of the graphs to view the status, duration, accuracy, and regularization rate of each run.

  4. Runs テーブルで、いくつかの実行の横にあるチェック ボックスをオンにします。Select the checkboxes next to two or more runs in the Runs table. [比較] ボタンを選択すると、詳細な比較ウィンドウが表示されます。Select the Compare button to open a detailed comparison pane. 横並びに表示される比較結果を確認してください。Review the side-by-side comparison.

  5. [比較] ウィンドウの左上にある、実行の一覧に戻るボタンを選択し、[Run Dashboard](実行ダッシュボード) に戻ります。To return to the Run Dashboard, select the Run List back button on the upper left of the Comparison pane.

    実行の一覧に戻る

  6. 個々の実行を選択して、実行の詳細ビューを表示します。Select an individual run to see the run detail view. [Run Properties](実行プロパティ) セクションに、選択した実行の統計情報が一覧表示されることに注目してください。Notice that the statistics for the selected run are listed in the Run Properties section. 出力フォルダーに書き込まれたファイルは [出力] セクションに一覧表示され、そこからファイルをダウンロードすることができます。The files written into the output folder are listed in the Outputs section, and you can download the files from there.

    実行の詳細

    [Visualizations](視覚化) セクションには、混同行列と多クラス ROC 曲線の 2 つのプロットが表示されます。The two plots, the confusion matrix and the multi-class ROC curve, are rendered in the Visualizations section. ログ ファイルはすべて [ログ] セクションでも確認できます。All the log files can also be found in the Logs section.

ローカル Docker 環境でスクリプトを実行するRun scripts in local Docker environments

必要に応じて、ローカルの Docker コンテナーに対してスクリプトを実行して実験することができます。Optionally, you can experiment with running scripts against a local Docker container. Docker などの追加の実行環境を構成し、それらの環境でスクリプトを実行することができます。You can configure additional execution environments, such as Docker, and run your script in those environments.

注意

リモート Azure VM または Azure HDInsight Spark クラスターの Docker コンテナーで実行するディスパッチ用のスクリプトで実験する場合は、Ubuntu ベースの Azure データ サイエンス仮想マシンまたは HDInsight クラスターの作成手順に関するページに従ってください。To experiment with dispatching scripts to run in a Docker container in a remote Azure VM or an Azure HDInsight Spark cluster, you can follow the instructions to create an Ubuntu-based Azure Data Science Virtual Machine or HDInsight cluster.

  1. その作業が済んでいない場合は、お使いの Windows マシンまたは MacOS マシンのローカルに Docker をインストールして起動してください。If you have not yet done so, install and start Docker locally on your Windows or MacOS machine. 詳しくは、Docker のインストール手順 (https://docs.docker.com/install/) をご覧ください。For more information, see the Docker installation instructions at https://docs.docker.com/install/. Community Edition でかまいません。Community edition is sufficient.

  2. 左側のウィンドウでフォルダー アイコンを選択して、目的のプロジェクトのファイルを一覧表示します。On the left pane, select the Folder icon to open the Files list for your project. aml_config フォルダーを展開します。Expand the aml_config folder.

  3. あらかじめ構成されているいくつかの環境が存在します (docker-pythondocker-spark、および local)。There are several environments that are preconfigured: docker-python, docker-spark, and local.

    各環境に、2 つのファイルがあります。たとえば、docker.compute (docker-python および docker-spark の場合) と docker-python.runconfig などです。Each environment has two files, such as docker.compute (for both docker-python and docker-spark) and docker-python.runconfig. 各ファイルをテキスト エディターで開くと、特定のオプションを構成することができます。Open each file to see that certain options are configurable in the text editor.

    邪魔にならないように、開いているテキスト エディターのタブで [閉じる] (x) を選択してください。To clean up, select Close (x) on the tabs for any open text editors.

  4. docker-python 環境を使用して iris_sklearn.py スクリプトを実行します。Run the iris_sklearn.py script by using the docker-python environment:

    • 左側のツール バーで時計アイコンを選択して [実行] パネルを開きます。On the left toolbar, select the Clock icon to open the Runs pane. [すべての実行] を選択します。Select All Runs.

    • [すべての実行] タブの上部で、既定の [local] ではなく、[docker-python] を対象の環境として選択します。On the top of the All Runs tab, select docker-python as the targeted environment instead of the default local.

    • 次に右側へ移動して、実行するスクリプトとして [iris_sklearn.py] を選択します。Next, move to the right side and select iris_sklearn.py as the script to run.

    • [引数] フィールドは空のままにしてください。スクリプトによって既定値が指定されるためです。Leave the Arguments field blank because the script specifies a default value.

    • [実行] ボタンを選択します。Select the Run button.

  5. 新しいジョブが開始されることがわかります。Observe that a new job starts. これは Workbench ウィンドウの右側の [ジョブ] ウィンドウに一覧表示されます。It appears in the Jobs pane on the right side of the workbench window.

    Docker に対して初めて実行するときは、ジョブの完了までに数分程度余分に時間がかかります。When you run against Docker for the first time, the job takes a few extra minutes to finish.

    Azure Machine Learning Workbench によって新しい Docker ファイルがバックグラウンドで構築されます。Behind the scenes, Azure Machine Learning Workbench builds a new Docker file. その新しいファイルから、docker.compute ファイルに指定された基本 Docker イメージと conda_dependencies.yml ファイルに指定された Python の依存関係パッケージが参照されます。The new file references the base Docker image specified in the docker.compute file and the dependency Python packages specified in the conda_dependencies.yml file.

    Docker エンジンによって次のタスクが実行されます。The Docker engine performs the following tasks:

    • Azure から基本イメージをダウンロードする。Downloads the base image from Azure.
    • conda_dependencies.yml ファイルに指定された Python パッケージをインストールする。Installs the Python packages specified in the conda_dependencies.yml file.
    • Docker コンテナーを起動する。Starts a Docker container.
    • 実行構成に応じて、プロジェクト フォルダーのローカル コピーをコピーするか、参照する。Copies or references, depending on the run configuration, the local copy of the project folder.
    • iris_sklearn.py スクリプトを実行する。Executes the iris_sklearn.py script.

    最終的には、対象の環境に [local] を選んだときとまったく同じ結果になります。In the end, you should see the exact same results as you do when you target local.

  6. 今度は Spark を試してみましょう。Now, let's try Spark. Docker の基本イメージには、プレインストールされて構成済みの Spark インスタンスが含まれており、これを使用して PySpark スクリプトを実行することができます。The Docker base image contains a preinstalled and configured Spark instance that you can use to execute a PySpark script. この基本イメージを使用すると、Spark のインストールと構成に時間を費やすことなく、Spark プログラムの開発とテストを簡単に行うことができます。Using this base image is an easy way to develop and test your Spark program, without having to spend time installing and configuring Spark yourself.

    iris_spark.py ファイルを開きます。Open the iris_spark.py file. このスクリプトは、iris.csv データ ファイルを読み込み、Spark Machine Learning ライブラリのロジスティック回帰アルゴリズムを使って、あやめデータセットを分類します。This script loads the iris.csv data file, and uses the logistic regression algorithm from the Spark Machine Learning library to classify the Iris data set. 実行環境を [docker-spark] に変更し、スクリプトを [iris_spark.py] に変更して、再度実行します。Now change the run environment to docker-spark and the script to iris_spark.py, and then run it again. このプロセスは、先ほどよりも少し時間がかかります。これは、Docker コンテナー内で Spark セッションを作成して開始する必要があるためです。This process takes a little longer because a Spark session has to be created and started inside the Docker container. また、stdout も iris_spark.py の場合とは異なります。You can also see the stdout is different than the stdout of iris_spark.py.

  7. 引数を変えながら、さらに数回実行します。Start a few more runs and play with different arguments.

  8. iris_spark.py ファイルを開いて、Spark Machine Learning ライブラリを使用して構築されたロジスティック回帰モデルを確認します。Open the iris_spark.py file to see the logistic regression model built using the Spark Machine Learning library.

  9. [ジョブ] ウィンドウを操作し、履歴リスト ビューのほか、異なる実行環境で行われた実行の詳細ビューを開きます。Interact with the Jobs pane, run a history list view, and run a details view of your runs across different execution environments.

CLI ウィンドウでスクリプトを実行するRun scripts in the CLI window

  1. Azure Machine Learning のコマンド ライン インターフェイス (CLI) を起動します。Start the Azure Machine Learning command-line interface (CLI):

    1. Azure Machine Learning Workbench を起動します。Launch the Azure Machine Learning Workbench.

    2. [ワークベンチ] メニューの [ファイル] > [コマンド プロンプトを開く] を選択します。From the Workbench menu, select File > Open Command Prompt.

    Windows 上のプロジェクト フォルダー C:\Temp\myIris\> で CLI プロンプトが起動します。The CLI prompt starts in the project folder C:\Temp\myIris\> on Windows. これは、チュートリアルのパート 1 で作成したプロジェクトです。This is the project you created in Part 1 of the tutorial.

    重要

    後続の手順を実行するには、この CLI ウィンドウを使用する必要があります。You must use this CLI window to accomplish the next steps.

  2. CLI ウィンドウで Azure にログインします。In the CLI window, log in to Azure. az login の詳細については、こちらを参照してください。Learn more about az login.

    既にログインしていることも考えられます。You may already be logged in. その場合は、この手順を省略してかまいません。In that case, you can skip this step.

    1. コマンド プロンプトに、次のコマンドを入力します。At the command prompt, enter:

      az login
      

      このコマンドを実行すると、お使いのブラウザーから https://aka.ms/devicelogin にアクセスして使用するコードが返されます。This command returns a code to use in your browser at https://aka.ms/devicelogin.

    2. お使いのブラウザーで https://aka.ms/devicelogin にアクセスします。Go to https://aka.ms/devicelogin in your browser.

    3. プロンプトが表示されたら、CLI で受け取ったコードをブラウザーに入力します。When prompted, enter the code, which you received in the CLI, into your browser.

    Workbench アプリと CLI では、Azure リソースに対して認証を行う際に、独立した資格情報キャッシュが使用されます。The Workbench app and CLI use independent credential caches when authenticating against Azure resources. ログイン後は、キャッシュされたトークンの有効期限が切れるまで認証は不要です。After you log in, you won't need to authenticated again until the cached token expires.

  3. 所属する組織に複数の Azure サブスクリプション (エンタープライズ環境) がある場合、使用するサブスクリプションを設定する必要があります。If your organization has multiple Azure subscriptions (enterprise environment), you must set the subscription to be used. 使用するサブスクリプションを探し、サブスクリプション ID を使って設定した後、そのサブスクリプションをテストします。Find your subscription, set it using the subscription ID, and then test it.

    1. 自分が利用できる Azure サブスクリプションをすべてリストするには、次のコマンドを使用します。List every Azure subscription to which you have access using this command:

      az account list -o table
      

      az account list コマンドを実行すると、ご使用のログインで利用できるサブスクリプションの一覧が返されます。The az account list command returns the list of subscriptions available to your login. 複数存在する場合は、使用するサブスクリプションのサブスクリプション ID 値を特定します。If there is more than one, identify the subscription ID value for the subscription you want to use.

    2. 既定のアカウントとして使用する Azure サブスクリプションを設定します。Set the Azure subscription you want to use as the default account:

      az account set -s <your-subscription-id>
      

      <your-subscription-id> には、使用するサブスクリプションの ID 値を指定します。where <your-subscription-id> is ID value for the subscription you want to use. かっこは含めないでください。Do not include the brackets.

    3. 現在のサブスクリプションに関する詳細情報を要求して、新しいサブスクリプション設定を確認します。Confirm the new subscription setting by requesting the details for the current subscription.

      az account show
      
  4. Python プロット ライブラリ matplotlib がまだインストールされていない場合は、CLI ウィンドウでこのライブラリをインストールします。In the CLI window, install the Python plotting library, matplotlib, if you do not already have the library.

    pip install matplotlib
    
  5. CLI ウィンドウで、iris_sklearn.py スクリプトを実験として送信します。In the CLI window, submit the iris_sklearn.py script as an experiment.

    iris_sklearn.py の実行は、ローカル コンピューティング コンテキストに対して実行されます。The execution of iris_sklearn.py is run against the local compute context.

    • Windows の場合:On Windows:

      az ml experiment submit -c local .\iris_sklearn.py
      
    • MacOS の場合:On MacOS:

      az ml experiment submit -c local iris_sklearn.py
      

    出力は次のようになります。Your output should be similar to:

    RunId: myIris_1521077190506
    
    Executing user inputs .....
    ===========================
    
    Python version: 3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:52:12) 
    [GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)]
    
    Iris dataset shape: (150, 5)
    Regularization rate is 0.01
    LogisticRegression(C=100.0, class_weight=None, dual=False, fit_intercept=True,
              intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
              penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
              verbose=0, warm_start=False)
    Accuracy is 0.6792452830188679
    
    ==========================================
    Serialize and deserialize using the outputs folder.
    
    Export the model to model.pkl
    Import the model from model.pkl
    New sample: [[3.0, 3.6, 1.3, 0.25]]
    Predicted class is ['Iris-setosa']
    Plotting confusion matrix...
    Confusion matrix in text:
    [[50  0  0]
     [ 1 37 12]
     [ 0  4 46]]
    Confusion matrix plotted.
    Plotting ROC curve....
    ROC curve plotted.
    Confusion matrix and ROC curve plotted. See them in Run History details page.
    
    Execution Details
    =================
    RunId: myIris_1521077190506
    
  6. 出力結果を確認します。Review the output. Workbench を使ってスクリプトを実行したときと同じ出力内容と結果であることがわかります。You have the same output and results that you had when you used the Workbench to run the script.

  7. お使いのマシンに Docker がインストールされている場合、Docker 実行環境を使用して、CLI ウィンドウから Python スクリプト (iris_sklearn.py) を実行します。In the CLI window, run the Python script, iris_sklearn.py, again using a Docker execution environment (if you have Docker installed on your machine).

    • コンテナーが Windows 上にある場合:If your container is on Windows:

      実行Execution
      環境environment
      Windows 上のコマンドCommand on Windows
      PythonPython az ml experiment submit -c docker-python .\iris_sklearn.py 0.01
      SparkSpark az ml experiment submit -c docker-spark .\iris_spark.py 0.1
    • コンテナーが MacOS 上にある場合:If your container is on MacOS:

      実行Execution
      環境environment
      Windows 上のコマンドCommand on Windows
      PythonPython az ml experiment submit -c docker-python iris_sklearn.py 0.01
      SparkSpark az ml experiment submit -c docker-spark iris_spark.py 0.1
  8. Workbench に戻って次の手順を実行します。Go back to the Workbench, and:

    1. 左側のウィンドウにあるフォルダー アイコンを選択してプロジェクト ファイルを一覧表示します。Select the folder icon on the left pane to list the project files.

    2. run.py という名前の Python スクリプトを開きます。Open the Python script named run.py. このスクリプトは、正則化項を変化させながら試すのに便利です。This script is useful to loop over various regularization rates.

    実行の一覧に戻る

  9. さまざまな正則化項で実験を複数回実行してください。Run the experiment multiple times with those rates.

    このスクリプトは、10.0 という極端に大きな正則化項で iris_sklearn.py ジョブを開始します。This script starts an iris_sklearn.py job with a regularization rate of 10.0 (a ridiculously large number). その後、ループで実行を繰り返しながら正則化項を半分にしていき、0.005 以下になったところでループを抜けます。The script then cuts the rate to half in the following run, and so on, until the rate is no smaller than 0.005.

    このスクリプトには次のコードが記述されています。The script contains the following code:

    実行の一覧に戻る

  10. コマンド ラインから次のように run.py スクリプトを実行します。Run the run.py script from the command line as follows:

    python run.py
    

    このコマンドを実行すると、iris_sklearn.py が、異なる正則化項で複数回送信されます。This command submits iris_sklearn.py multiple times with different regularization rates

    run.py が完了すると、Workbench の実行履歴リスト ビューにさまざまなメトリックのグラフが表示されます。When run.py finishes, you can see graphs of different metrics in your run history list view in the workbench.

リモート Docker コンテナーでスクリプトを実行するRun scripts in a remote Docker container

リモート Linux マシンの Docker コンテナーでスクリプトを実行するには、そのリモート マシンへの SSH アクセス (ユーザー名とパスワード) が必要です。To execute your script in a Docker container on a remote Linux machine, you need to have SSH access (username and password) to that remote machine. また、マシンには Docker エンジンがインストールされ、実行されている必要があります。In addition, the machine must have a Docker engine installed and running. このような Linux マシンを入手する方法としては、Azure 上に Ubuntu ベースのデータ サイエンス仮想マシン (DSVM) を作成するのが最も簡単です。The easiest way to obtain such a Linux machine is to create an Ubuntu-based Data Science Virtual Machine (DSVM) on Azure. Azure ML Workbench で使用する Ubuntu DSVM を作成する方法に関するページを参照してください。Learn how to create an Ubuntu DSVM to use in Azure ML Workbench.

注意

CentOS ベースの DSVM はサポート "されません"。The CentOS-based DSVM is not supported.

  1. VM を作成した後、.runconfig.compute という一対のファイルを生成して、その VM を実行環境としてアタッチすることができます。After the VM is created, you can attach the VM as an execution environment by generating a pair of .runconfig and .compute files. 次のコマンドを使用してファイルを生成します。Use the following command to generate the files.

    新しいコンピューティング ターゲットに myvm という名前を付けましょう。Let's name the new compute target myvm.

    az ml computetarget attach remotedocker --name myvm --address <your-IP> --username <your-username> --password <your-password>
    

    注意

    IP アドレスは、パブリックにアドレス指定可能な完全修飾ドメイン名 (FQDN) にすることもできます (例: vm-name.southcentralus.cloudapp.azure.com)。The IP address can also be a publicly addressable fully-qualified domain name (FQDN) such as vm-name.southcentralus.cloudapp.azure.com. DSVM に FQDN を追加し、それを IP アドレスの代わりに使うことをお勧めします。It is a good practice to add an FQDN to your DSVM and use it instead of an IP address. お勧めする理由は、いずれコストを抑えるために VM を停止されることも考えられるからです。This practice is a good idea because you might turn off the VM at some point to save on cost. さらに、次回 VM を起動したときには、IP アドレスが変わっている可能性があります。Additionally, the next time you start the VM, the IP address might have changed.

    注意

    ユーザー名とパスワードの認証に加えて、--private-key-file オプションと --private-key-passphrase オプション (必要な場合) を使用して、秘密キーとそれに対応するパスフレーズ (ある場合) を指定することができます。In addition to username and password authentication, you can specify a private key and the corresponding passphrase (if any) using the --private-key-file and (optionally) the --private-key-passphrase options.

    次に、myvm コンピューティング ターゲットを準備します。次のコマンドを実行してください。Next, prepare the myvm compute target by running this command.

    az ml experiment prepare -c myvm
    

    前掲のコマンドによって、VM に Docker イメージが作成され、スクリプトが実行できる状態になります。The preceding command constructs the Docker image in the VM to get it ready to run the scripts.

    注意

    myvm.runconfigPrepareEnvironment の値は、既定値の false から true に変更することもできます。You can also change the value of PrepareEnvironment in myvm.runconfig from the default value false to true. これで初回実行の一環として Docker コンテナーが自動的に準備されます。This change automatically prepares the Docker container as part of the first run.

  2. aml_config に生成された myvm.runconfig ファイルを編集し、フレームワークを既定値の PySpark から Python に変更します。Edit the generated myvm.runconfig file under aml_config and change the framework from the default value PySpark to Python:

    Framework: Python
    

    注意

    PySpark も機能するはずですが、Python スクリプトを実行するために実際には Spark セッションを必要としない場合は、Python を使用する方が効率的です。While PySpark should also work, using Python is more efficient if you don't actually need a Spark session to run your Python script.

  3. 先ほど CLI ウィンドウで実行したものと同じコマンドを実行します。ただし、今度は対象を myvm にして、リモート Docker コンテナーで iris_sklearn.py を実行します。Issue the same command as you did before in the CLI window, using target myvm this time to execute iris_sklearn.py in a remote Docker container:

    az ml experiment submit -c myvm iris_sklearn.py
    

    実行場所がリモート Linux VM であることを除けば、docker-python 環境を使った場合と同じようにコマンドが実行されます。The command executes as if you're in a docker-python environment, except that the execution happens on the remote Linux VM. CLI ウィンドウには同じ出力情報が表示されます。The CLI window displays the same output information.

  4. コンテナー内の Spark を試してみましょう。Let's try using Spark in the container. エクスプローラーを開きます。Open File Explorer. myvm.runconfig ファイルをコピーして myvm-spark.runconfig という名前を付けます。Make a copy of the myvm.runconfig file and name it myvm-spark.runconfig. 新しいファイルを編集し、Framework の設定を Python から PySpark に変更します。Edit the new file to change the Framework setting from Python to PySpark:

    Framework: PySpark
    

    myvm.compute ファイルには一切変更を加えないでください。Don't make any changes to the myvm.compute file. 同じ VM 上の同じ Docker イメージが Spark の実行に使用されます。The same Docker image on the same VM gets used for the Spark execution. 新しい myvm-spark.runconfigTarget フィールドから、同じ myvm.compute ファイルがその名前 (myvm) で参照されます。In the new myvm-spark.runconfig, the Target field points to the same myvm.compute file via its name myvm.

  5. 次のコマンドを入力し、リモート Docker コンテナー内で実行されている Spark インスタンスで iris_spark.py スクリプトを実行します。Type the following command to run the iris_spark.py script in the Spark instance running inside the remote Docker container:

    az ml experiment submit -c myvm-spark .\iris_spark.py
    

HDInsight クラスターでスクリプトを実行するRun scripts in HDInsight clusters

このスクリプトは、HDInsight Spark クラスターで実行することもできます。You can also run this script in an HDInsight Spark cluster. Azure ML Workbench で使用する HDInsight Spark クラスターを作成する方法に関するページを参照してください。Learn how to create an HDInsight Spark Cluster to use in Azure ML Workbench.

注意

HDInsight クラスターは、プライマリ ストレージとして Azure BLOB を使用する必要があります。The HDInsight cluster must use Azure Blob as the primary storage. Azure Data Lake Storage はまだサポートされていません。Using Azure Data Lake storage is not supported yet.

  1. Spark for Azure HDInsight クラスターにアクセスできる場合は、次に示した HDInsight 実行構成コマンドを生成します。If you have access to a Spark for Azure HDInsight cluster, generate an HDInsight run configuration command as shown here. パラメーターとして HDInsight クラスター名、HDInsight のユーザー名とパスワードを指定してください。Provide the HDInsight cluster name and your HDInsight username and password as the parameters.

    次のコマンドを使用して、HDInsight クラスターを指すコンピューティング ターゲットを作成します。Use the following command to create a compute target that points to a HDInsight cluster:

    az ml computetarget attach cluster --name myhdi --address <cluster head node FQDN> --username <your-username> --password <your-password>
    

    HDInsight クラスターを準備するには、次のコマンドを実行します。To prepare the HDInsight cluster, run this command:

    az ml experiment prepare -c myhdi
    

    通常、クラスターのヘッド ノードの FQDN は <your_cluster_name>-ssh.azurehdinsight.net になります。The cluster head node FQDN is typically <your_cluster_name>-ssh.azurehdinsight.net.

    注意

    username は、HDInsight のセットアップ時に定義した、クラスターの SSH ユーザー名です。The username is the cluster SSH username defined during HDInsight setup. 既定値は sshuser です。By default, the value is sshuser. admin (クラスターの管理者 Web サイトへのアクセス用としてセットアップ時に作成される別のユーザー) ではありません。The value is not admin, which is the other user created during setup to enable access to the cluster's admin website.

  2. HDInsight クラスターで iris_spark.py スクリプトを実行します。次のコマンドを使用してください。Run the iris_spark.py script in the HDInsight cluster with this command:

    az ml experiment submit -c myhdi .\iris_spark.py
    

    注意

    リモート HDInsight クラスターで実行するときは、admin ユーザー アカウントを使って YARN (Yet Another Resource Negotiator) ジョブの実行情報を https://<your_cluster_name>.azurehdinsight.net/yarnui で確認することもできます。When you execute against a remote HDInsight cluster, you can also view the Yet Another Resource Negotiator (YARN) job execution details at https://<your_cluster_name>.azurehdinsight.net/yarnui by using the admin user account.

リソースのクリーンアップClean up resources

このアプリの使用を続けない場合は、次の手順に従って、このクイック スタートで作成したすべてのリソースを削除して、課金が発生しないようにします。If you're not going to continue to use this app, delete all resources created by this quickstart with the following steps so you don't incur any charges:

注意

Azure Machine Learning サービスに関する他のチュートリアルにこの後すぐ取り組む場合は、これらのリソースが必要となります。These resources are useful when following the other Azure Machine Learning services tutorials now.

  1. Azure Portal で、左端にある [リソース グループ] を選択します。In the Azure portal, select Resource groups on the far left.

    Azure Portal での削除

  2. リソース グループの一覧で作成したリソース グループを選択してから、[リソース グループの削除] をクリックします。From the list of resource groups, select the resource group you created, and then click Delete resource group.

  3. 削除するリソース グループの名前を入力し、[削除] をクリックします。Type the name of the resource group to delete, and then click Delete.

次の手順Next steps

3 部構成のチュートリアル シリーズのパート 2 では、次の作業を行う方法について説明しました。In this second part of the three-part tutorial series, you learned how to:

  • Workbench でスクリプトを開いてコードを確認するOpen scripts and review the code in Workbench
  • ローカル環境でスクリプトを実行するExecute scripts in a local environment
  • 実行履歴を確認するReview the run history
  • ローカル Docker 環境でスクリプトを実行するExecute scripts in a local Docker environment

それでは、このチュートリアル シリーズのパート 3 に進み、リアルタイム Web サービスとして作成したロジスティック回帰モデルをデプロイしてみましょう。Now, you can try out the third part of this tutorial series in which you can deploy the logistic regression model you created as a real-time web service.