Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
未だに、Ver2を実践されている方もいらっしゃるようですが・・・
https://aka.ms/IoTKitHoL から公開しているIoTの要素を一通り学ぶ自学自習が可能なハンズオンコンテンツは、現在、Version 3です。IoTデバイス(PinKit/NETMF、Raspberry Pi2/Win10IoTCore)、または、Wpf EmulatorでIoT Hubに送ったセンサーデータを元に、デバイス識別子、計測時間、加速度からの温度状態予測をStep 7でMLを使っています。このコンテンツでは、IoT Hubで受信したセンサーデータをStream Analyticsで決めうちで温度の状態をHot、Coldに分類してストレージに格納したデータを使っています。
ハンズオンセミナーの時間の制約があり、こうしているのですが、実際には、デバイスごとの実測値を元に、温度のHot、Coldは決める必要があります。SASSensorテーブルには温度も含め蓄積されているので、R Scriptを使って、ML Studioの中で温度の高い低いを決めることが可能です。
Step10まで一通り終わった方は、是非、以下の方法を試してみて、よりリアルなMachine Learningにチャレンジしてください。
実は私は、データアナリストのプロフェッショナルでもなく、R Scriptのプロでもなく、未だ手探りの状態で、「あぁこれなら動くね」的な感じで作っています。もっといい書き方あるよーってかた、是非、フィードバックお願いします。
テーブルからのデータ読み込み
まずは、ML StudioでExperimentsを一つ新たに作成します。そして、”Data Input and Output”の”Import Data”をドラッグ&ドロップし、
プロパティで
- Data Source → Azure Table
- Account Name、Account Keyは、SASSensorのストレージの情報を入力
- Table name → SASSensor
- Rows to scan ... →ScanAll
とします。プロパティの入力が終わったらRUNで実行します。
データの分割
これがAzure MLのせいなのか、R Scriptがもともとそうなのか、ちょっとわからないのですが、時間がR Scriptを通すと、1970年1月1日からのTick数になってしまうので、分割します。
まず、Data Transformation→ManipulationのSelect Columns in Datasetを二つ追加してImport Dataに接続します。
左側は、timeを抽出します。後でマージする必要があるので、msgIdも一緒に抽出します。ちなみに、msgIdは計測時に、全ての計測レコードが一意に特定できるようにデバイスに付与している値です。左側のSelect Columns in Datasetのプロパティは、
右側は、timeだけを排除します。
設定したら、またRUNします。これで、左側のSelect Columns in Datasetから、timeとmsgIdのデータセットが、右側からはtime以外のデータセットが出力されます。
R Scriptで温度のHot、Coldを決定し新しくカラムを追加する
まずは、R Language ModulesのExecute R Scriptを追加し、右側のSelect Columns in Datasetの出力とつなぎます。
Execute R Scriptのスクリプトには、
と入力します。これで、各deviceId毎の温度の平均値を求めて、その平均値より温度が高ければHot、低ければColdという値を持つ、TempStatusというプロパティが追加されます。この段階で学習モデルの教師データが作成できます。
R言語の実行の過程で、tempmeanというプロパティが追加されています。この値は、deviceId毎に計算された温度(temp)の平均値です。ハンズオン資料の中で、TempStatusのカテゴリに変換するパートがありますが、このR言語内でカテゴリに変換しても構いません。
時間をマージする
Data TransformationのManipulationのJoin Dataを追加し、二系統のデーターセットをマージします。
プロパティで、双方のmsgIdをキーにしてデータを結合します。
各項目、設定したらRUNするのをお忘れなく。
結果をデータセットとして保存する
Join Dataの下の○を右クリックし、”Save as Dataset”を選択し、
変換した結果をデータセットとして保存します。名前は適当に付けて構いません。例えば、”Categorized Temp Status Data”とか。すると
保存が完了すると、”Saved Datasets”→”My Datasets”の下に現れます。
後は、ハンズオンのStep 7の冒頭のImport Dataをこの保存したデーターセットに置き換えれば、変換したデータを使った予測モデルが作成可能です。









