勾配ブースティング回帰勾配ブースティング回帰
5
(1)

先日 Azure 認定資格 AI-900 に合格しました。次に狙うは AI-100 Azure AI Engineer Associate です。

本ブログは Lenovo E595 (AMD Ryzen5/3500U), RAM 16GB, Windows 10 Pro / x64 (20H2) 環境で復習しながら作成しました。

AI-100 概要:
 Azure AI Engineer Associate 認定資格の受験者は、認識サービス、機械学習、知識マイニングを使用して、自然言語処理、音声、コンピュータ ビジョン、会話型 AI を含む Microsoft AI ソリューションを設計および実装する、専門知識が必要です。 このロールの責任には、AI ソリューションの要件の分析、適切なツールとテクノロジの推奨、スケーラビリティとパフォーマンスの要件を満たす AI ソリューションの設計と実装が含まれます。 受験生は、ソリューション アーキテクトからビジョンAzure AI Engineer翻訳し、データ科学者、データ エンジニア、IoT スペシャリスト、および AI 開発者と協力して、完全なエンドツーエンドのソリューションを構築します。 この認定資格の受験対象者は、Microsoft Azure Cognitive Services、Azure Bot Service、Azure Cognitive Search、および Azure のデータ ストレージを使用する AI アプリとエージェントの設計と実装に関する知識と経験が必要です。さらに、受験者は、オープン ソース テクノロジを使用するソリューションを推奨し、Azure AI ポートフォリオを構成するコンポーネントと利用可能なデータ ストレージ オプションを理解し、特定の要件を満たすためにカスタム API を開発する必要がある時期を理解できる必要があります。


ちなみに、AI-900 概要はシンプルです。
 Azure AI Fundamentals 認定資格の受験者は、機械学習 (ML) および人工知能 (AI) の概念と関連する Microsoft Azure サービスの基礎知識を持っている必要があります。 この認定資格は、一般的な ML および AI ワークロードの知識と、それらを Azure に実装する方法を示す機会です。

AI-900 学習コンテンツ (MSLearn は AzureML 使用想定)

機械学習モデルを作成する https://docs.microsoft.com/ja-jp/learn/paths/create-machine-learn-models/ が対象範囲に含まれます。

同コンテンツの紹介:
 機械学習は、予測モデリングと人工知能の基盤となります。 機械学習の核となる原則と、一般的なツールとフレームワークを使用して機械学習モデルをトレーニング、評価、および使用する方法について説明します。

 演習を最後まで行うには、次のものが必要です。

  • Microsoft Azure サブスクリプション。 まだお持ちでない場合は、https://azure.microsoft.com/free から無料試用版にサインアップできます。
  • コンピューティング インスタンスとクローンされた ml-basics リポジトリがある Azure Machine Learning ワークスペース。

AzureML の操作方法も大切だが、ローカルPC で演習したい方がいると思います。(Azure Data Studio を使う)

Azure Data Studio は既に導入済みでしょうか?(VS Code でも代用可能。Python Notebook を使用できる IDE で)
→ https://docs.microsoft.com/ja-jp/sql/azure-data-studio/download-azure-data-studio?view=sql-server-ver15 ここから環境に合うものを選択して無償ダウンロード&インストールをお願いいたします。

これまで、MSLearn 学習した方の大半は Visual Studio Code, Azure Data Studio をインストール済みだと思います。
ついでに、基礎 Python 程度のスキル(操作経験)はお持ちでしょう。

次に学習コンテンツを入手(リポジトリのクローン)しましょう。

手順は MSLearn コンテンツに記載があります。
Azure Machine Learning ワークスペースはローカル環境に読み替えるだけです。

ここでは、D:\MSLearn フォルダ(を作成済み)に
> git clone https://github.com/microsoftdocs/ml-basics を実行します。

Regression.ipynb ノートブックを VSCode で開きます。
(演習 – 回帰モデルをトレーニングして評価する コンテンツ例)

Kernel は ローカル環境に導入済み(であれば、なければ導入してください)Python 3
Attach to は標準で localhost になっていることを確認してください。

演習開始

Python と Notebook の経験者はそのまま演習を開始できます。
[Run all] 実施例は次の画像です。

多分、Python と Notebook 経験者であれば pandas モジュールは導入済みと思いますが、pandas モジュールのインストールが必要等のメッセージが表示されれば、> pip install pandas を実施してください。
そして本コンテンツで他に必要そうなモジュールインストールコマンド。
> pip install metaplotlib
> pip install sklearn

この演習の目的は、データをランダムに サブセットに分割し、 1 つのサブセットを使用してモデルをトレーニングし、もう一方を使用してモデルを評価することで理解を深めるものです。

ここでは、各カラム(列)に CSV ファイルが配列されたことが分かります。
なお、この Notebook では「回帰モデルをトレーニングして評価する」目的の学習シナリオが盛り込まれています。回帰モデルとは高校数学で習った通りで【複数の統計要因から未来を予測するモデル】のことで、平均二乗誤差 (MSE メトリック)で評価までを行って『初めて意味を持つ結果』となります。

metaplotlib によってプロット図を描画(演習)

fig.show() が Notebook に記述しているので、ローカル環境が適切に構築されていれば次のプロット図を表示します。他にもヒストグラムやカテゴリ毎のカウントグラフに散布図など。ここは、懐かしい高校数学を思い出すしかないですね。工業高校等で高校数学の範囲が少なかった方や数学は全く理解していないので覚えていない方は、申し訳ないですが ML を使いこなして Azure 受験に合格し、仕事の能力証明をするためにも数学を再学習することを強くおススメします。

scikit-learn (サイキットラーン) による学習

ランダムフォレストを扱うために、scikit-learn ライブラリ内 train_test_split を使うことが学習コンテンツに記述されているので実施します。

結果は学習セット 511 行、テストセット 220 行となりました。

モデル オブジェクトの fit() メソッドを呼び出して、トレーニングする特徴量とラベルの配列を指定するシナリオまで注意深く説明指示に従ってください。

学習モデルの評価演習と誤差指標(MSE, RMSE, R2)

評価演習

誤差指標(ここでは詳細割愛しますが、AI-900 出題に登場しましたよ)

MSE: 201972.55947035606
RMSE: 449.41357285951665
R2: 0.6040454736919187

いよいよ大詰めです。ここまで演習できれば、ある程度の目星が付いたとおもいます。
そして「勾配ブースティング回帰」演習へ。

勾配ブースティング回帰 GradientBoostingRegressor を理解し演習して、ML モデルの基礎学習を確立する教材が多いと思いますし、これを避けて通れないでしょう。そのくらい必須基礎です。

勾配ブースティングについて簡単に説明すると、勾配降下法、アンサンブル学習のことで、末尾に付く文言によって特性が示されます。MSLearn 本コンテンツでは Regressor (回帰)です。本コンテンツ以外ではDecisionTree (決定木)などもあります。

誤差指標もここまで改善しました。

MSE: 109359.55030636564
RMSE: 330.6955553169193
R2: 0.7856074654281082

演習を続けていくと、誤差指標は更に改善します。(良い学習コンテンツですね)
そして学習済みモデルを保存する演習もあります。

ここまででクラウドを使わずにローカル演習できることを確認しました。余裕がある方は、引き続き「Regression Challenge」コンテンツにもどうぞ。

以上、ご覧いただきありがとうございました。

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

投稿者 斉藤之雄 (Yukio Saito)

Global Information and Communication Technology OTAKU / Sports volunteer / Social Services / Master of Technology in Innovation for Design and Engineering, AIIT / BA, Social Welfare, NFU / twitter@yukio_saitoh