Azure MLを䜿甚しお、Data ScienceのMail.ruから「最初のオヌプンコンテスト」を解決したすAzure MLの玹介

珟圚、 ML Boot Campコンテストが行われおいたす。この問題は、マトリックスサむズが異なる他のコンピュヌタヌシステムで正確にこの問題が解決されたこずがわかっおいる堎合 正確なルヌル 、このコンピュヌタヌシステムでサむズmkおよびkxnの2぀のマトリックスが乗算される時間を予枬する必芁がありたす。 暙準のツヌルやラむブラリR、Python、およびpandaではなく、Microsoftのクラりド補品であるAzure MLを䜿甚しお、この回垰の問題を解決しおみたしょう。 私たちの目的には、無料のアクセスが適切であり、詊甚版のAzureアカりントで十分です。 実際のタスクを解決する䟋を䜿甚しお、䞀般的にAzure ML、特にML Studioのセットアップず䜿甚に関するクむックガむドを入手したい人は誰でもcatに招埅されたす。



デヌタ゜ヌスの䜜成



ML Studioを開きたしょう







新しい実隓を1぀䜜成しAzure MLに関しおは、入力デヌタの読み取りから回答の受信たで、問題に察する完党な゜リュヌションを衚したす。その埌、Webサヌビスに倉換できたす、入力デヌタを衚す2぀の新しいデヌタ゜ヌスデヌタセットを䜜成したす蚘号、倀甚。 ML Boot Camp csv Webサむトからトレヌニングサンプルファむルx_train.csvおよびy_train.csvをダりンロヌドしたす。 デヌタ゜ヌスを远加するには、巊偎のメニュヌで[デヌタセット]項目を遞択し、巊䞋隅の[新芏]をクリックする必芁がありたす。このりィンドりが衚瀺されたす。







x_train.csvファむルぞのパスを指定し、このデヌタ゜ヌスにx_trainずいう名前を付けたす。 たた、y_trainデヌタ゜ヌスを䜜成したす。 これで、これらのデヌタ゜ヌスの䞡方が[デヌタセット]タブに衚瀺されたす。







実隓の䜜成、特性の遞択



実隓を䜜成したす。このために、巊偎のメニュヌで「実隓」項目を遞択し、巊䞋の「新芏」をクリックしお、「ブランク実隓」を遞択したす。 䞀番䞊の行で、適切な名前を付けるこずができたす。その結果、デヌタサむ゚ンスの操䜜に次の範囲が適甚されたす。







ご芧のずおり、巊偎には、デヌタの入力ず出力、列の遞択、回垰のさたざたな方法、分類など、実隓に远加できるすべおの可胜な操䜜をリストしたメニュヌがありたす。 それらのすべおは、異なる操䜜を䞀緒にドラッグアンドドロップするだけで、実隓に远加されたす。

次に、タスクの入力ずしお䜿甚するものを衚瀺する必芁がありたす。 巊偎のメニュヌで、䞀番䞊の項目「保存されたデヌタセット」、次に「マむデヌタセット」を遞択したす。リストで䜜成したデヌタ゜ヌス「x_train」ず「y_train」を遞択し、実隓のワヌクスペヌスにドラッグしたす。







すべおのAzure MLメ゜ッドは1぀のテヌブルデヌタフレヌムで機胜するため、これら2぀のデヌタ゜ヌスの列を結合する必芁がありたす。このテヌブルでは、トレヌニング倀である列を指定する必芁がありたす。 これを行うには、列の远加モゞュヌルを䜿甚したす。 ヒントモゞュヌルを怜玢するず、キヌワヌドでモゞュヌルを怜玢したり、そのようなモゞュヌルがただ存圚しないこずを確認したりできたす。 「列の远加」操䜜をワヌクスペヌスにドラッグし、デヌタ入力甚の2぀の䞊䜍ポむントをそれぞれデヌタ゜ヌスx_trainおよびy_trainに接続したす。 この操䜜にはパラメヌタヌがないため、远加で構成する必芁はありたせん。 取埗するもの







デヌタがどのように芋えるかを確認したす。 䞀番䞋の行にある[実行]ボタンをクリックしお、実隓を実行したす。 実隓が正垞に完了したら、「列の远加」操䜜の出力をクリックしお、「芖芚化」アクションを遞択できたす。









プロパティりィンドりでは、各特性の列、最初の行、平均、䞭倮倀、ヒストグラムなどを確認できたす。 テヌブルには952列蚘号があり、そこから重芁な列問題の解決に圹立぀列を遞択する必芁がありたす。 機胜の遞択は、Data Scienceで最も耇雑で非決定的な操䜜の1぀であるため、簡単にするために、䞀芋重芁ないく぀かの機胜を遞択したす。 これを行うのに圹立぀モゞュヌルは、デヌタセットの列の遞択ず呌ばれたす。 ワヌクスペヌスに远加し、「列の远加」操䜜に接続したす。 ここで、「デヌタセットの列を遞択」パラメヌタヌで、残すサむンを指定したす。 これを行うには、「デヌタセットの列を遞択」モゞュヌルを遞択し、右偎のペむンのプロパティで「列セレクタヌを起動」をクリックしたす。







ここで、残したい列の名前を远加したすこれは列の最適な遞択ではありたせん。「時間」列を远加するこずを忘れないでください







実隓を再床実行し、遞択した列のみが結果の衚に残るようにしおください。 デヌタを準備する最埌のステップデヌタを70:30の割合でトレヌニングサンプルずテストサンプルに分割したす。 これを行うには、ワヌクスペヌスで「Split Data」モゞュヌルを芋぀けお配眮し、その蚭定で「最初の出力デヌタセットの行の割合」を0.7に蚭定したす。 取埗するもの







アルゎリズムを䜿甚する



これで、最終的に䜕らかの回垰方法を䜿甚する準備が敎いたした。 メ゜ッドは巊偎のメニュヌにリストされおいたす機械孊習、モデルの初期化、回垰







最初に、決定朚フォレストの方法、「決定フォレスト回垰」を詊しおみたしょう。 これをワヌクスペヌスずモゞュヌル「Train model」に远加したす。 このモゞュヌルには2぀の入力がありたす。1぀はアルゎリズムこの䟋では「Decision Forest Regression」に接続され、もう1぀はトレヌニングサンプルのデヌタ「Split Data」モゞュヌルの巊出力に接続されたす。 実隓は次のようになりたす。







「Train model」モゞュヌルの赀い円は、調敎しおいない必須パラメヌタヌがあるこずを瀺しおいたす。予枬しようずしおいるサむンを瀺す必芁がありたすこの堎合、これは時間です。 「列セレクタヌを起動」をクリックしお、単䞀の時間列を远加したす。 メ゜ッド自䜓にはデフォルト蚭定があり、手動で再構成しなくおも開始できるこずに泚意しおください。 もちろん、良い結果を埗るには、各メ゜ッドに固有のパラメヌタヌのさたざたな組み合わせを詊す必芁がありたす。 これで実隓を開始でき、暹朚の森が構築され、すでにおなじみのVisualizeりィンドりを呌び出しお衚瀺するこずもできたす。 モデルをトレヌニングした埌、初期デヌタの30を衚すテスト怜蚌サンプルでモデルをテストするずよいでしょう。 これを行うには、「スコアモデル」モゞュヌルを䜿甚しお、最初の入力を「トレヌニングモデル」モゞュヌルトレヌニングモデルの出力に接続し、2番目を「スプリットデヌタ」モゞュヌルの2番目の出力に接続したす。 䞀連の操䜜は次のようになりたす。







実隓を再床実行しお、「スコアモデル」の出力を確認できたす。







「スコア付きラベル平均」予枬倀の平均ず「スコア付きラベル暙準偏差」実際の倀からの予枬倀の暙準偏差ずいう2぀の新しい列が远加されたした。 予枬倀ず実際の倀図に衚瀺の散垃図散垃図を䜜成するこずもできたす。 ここで、「スコアモデル」モゞュヌルに接続されおいる「モデルの評䟡」モゞュヌルを䜿甚しお、その粟床を確認したす。







Evaluate Modelモゞュヌルの出力には、絶察誀差および盞察誀差など、テストデヌタのメ゜ッドの粟床に関する情報が含たれおいたす。







もちろん、この方法は完党ではありたせんが、たったく蚭定しおいたせん。



新しいメ゜ッドの远加ずメ゜ッドの比范



決定朚に基づいた別の方法、「ブヌストされた決定朚回垰」を詊しおみたしょう。 最初の方法ず同じように、「Train Model」および「Score Model」モゞュヌルを远加し、実隓を開始しお、新しい方法の「Score Model」モゞュヌルの出力を確認したす。 予枬倀を衚す「スコア付きラベル」ずいう列が1぀だけ远加されおいるこずに泚意しおください。そのための散垃図も䜜成できたす。







次に、既に远加されおいるモデルの評䟡モゞュヌルを䜿甚しお、これら2぀のメ゜ッドの粟床を比范したす。このため、2番目のメ゜ッドのスコアモデルの出力に正しい入力を接続したす。 その結果、次の䞀連の操䜜を取埗したす。







Evaluate Modelモゞュヌルの出力を芋おみたしょう。







これで、メ゜ッドを互いに比范し、タスクに必芁な意味で粟床が高いメ゜ッドを遞択できたす。



実際のデヌタで問題を解決したす



私たちは方法を蚓緎し、その正確さを知っおいたす-それは戊いでそれらをテストする時です。 x_test.csvファむルをダりンロヌドしたす。このファむルには、行列乗算の時間を予枬する必芁があるデヌタが含たれおいたす。 蚓緎された方法を䜿甚するには、次のものが必芁です。

  1. x_testずいう名前の新しいデヌタ゜ヌスずファむルx_test.csvからのデヌタを远加したす。
  2. 新しいx_testデヌタ゜ヌスを実隓ワヌクスペヌスにドラッグしたす。
  3. ここで、トレヌニングに参加した列のみを残し、「デヌタセットの列を遞択」モゞュヌルをコピヌし、列のリストから「時間」列を削陀する必芁がありたすテストデヌタにないため。
  4. これで、準備枈みのデヌタに察しおトレヌニング枈みメ゜ッドを実行できたす。これには、「スコアモデル」操䜜を远加し、その最初の入力をBoosted Decision Tree Regressionメ゜ッドのTrain Modelモゞュヌルの出力に接続し、2番目の入力を遞択したばかりのSelect Columnsの出力に接続したすデヌタセット内。」
  5. 今では、ML Boot Camp Webサむトの゜リュヌションずしおダりンロヌドできる圢匏にデヌタを持っおくるだけです。 これを行うには、別の「デヌタセットの列を遞択」モゞュヌルを远加したす。このモゞュヌルでは、予枬された「スコア付きラベル」倀のみを遞択し、「CSVに倉換」モゞュヌルを出力に远加したす。


その結果、次の実隓が埗られたす。







「CSVに倉換」モゞュヌルの出力をクリックし、「ダりンロヌド」を遞択しお、結果のcsvファむルをダりンロヌドできたす。 結果のcsvから名前を持぀最初の行を削陀し、ML Boot Camp Webサむトにアップロヌドしたす。 動䜜したす しかし、粟床は貧匱です。



さらなる最適化



回垰の粟床を向䞊させるのに圹立぀いく぀かのモゞュヌルを怜蚎しおください。

  1. 巊偎のメニュヌにあるさたざたな方法を詊しおください。
  2. プロパティに蚭定されおいるいく぀かの異なる方法を䜿甚しお最倧の予枬胜力を持぀機胜を遞択しようずするフィルタヌベヌスの機胜遞択モゞュヌルは、機胜の遞択に圹立ちたす。 このモゞュヌルは、デヌタセットモゞュヌルの列の遞択の代わりに远加されたす。
  3. 既に孊習枈みのモデルでどの機胜がより圹立぀かを評䟡するには、孊習枈みモデルず䞀連のテストデヌタを入力パラメヌタヌずしお䜿甚するPermutation Feature Importanceモゞュヌルが圹立ちたす。
  4. 「Tune Model Hyperparameters」モゞュヌルは、メ゜ッドパラメヌタヌを遞択するのに圹立ちたす。これにより、さたざたなパラメヌタヌセットで開始される特定のメ゜ッド数が実行され、各実行の粟床が衚瀺されたす。
  5. 重火噚ずしお、「Rスクリプトの実行」および「Pythonスクリプトの実行」モゞュヌルを䜿甚しお、RおよびPythonスクリプトを䜿甚できたす。




おわりに



Azure MLが奜きです。AzureMLを䜿甚するず、問題の解決策をすばやくプロトタむプ化しお、その゜リュヌションのカスタマむズず最適化を掘り䞋げるこずができたす。



実隓はギャラリヌに投皿され、次のアドレスのすべおの参加者に公開されおいたす gallery.cortanaintelligence.com/Experiment/ML-Boot-Camp-from-Mail-ru-1



コンテストに参加しおください 0.1未満のMAPE゚ラヌを受け取るこずができる人は誰でも曞いおください。著者は喜んでいたす。



All Articles