クラスタリング アルゴリズムを学びつつ Azure Machine Learning で実装するための情報
こんにちは、Microsoft テクニカル エバンジェリストの大田です。
先日機械学習関連のセミナーを開催したのですが、その際の資料や動画の準備が整ったのでここにログしておきます。
セミナーのコンセプト
データ解析・機械学習に関して、様々な入門者向け情報を提供してきましたが、やはり実案件になると色々と躓くことが増えてきました。
どんなところで躓くかというと、下記のポイントが多いです。
- どんな成果を求めて、どんなデータを使うかという「ゴール設定力」
- 期限を決めて根気よく繰り返すための「精神力(というか慣れ)」
- データを貯めたり定期的に処理しするための「インフラ構築力」
- 解析をする際のモデル手法の選定や、その内容を理解するための「統計解析力」
- そのモデルを実現するための「実装力」
# もちろん、案件で経験を積めばさらに課題が見えるかもしれないです。
そのため、このポイントを「みんなで解決していこう」というコンセプトでセミナーを開催しました。いきなり全部はできないので、今回は「インフラ構築力」「統計解析力」「実装力」を鍛えるためのコンテンツを共有しました。
セミナー資料と動画
セミナー資料はそれぞれ下記に公開しています。
上坂さん、清水さんのは「インフラ構築力」に特化しています。
上坂さんは Hadoop の解説と Azure ML との連携方法を紹介しています。
清水さんは、定期的な処理・データの移動・可視化について紹介しています。
三上さんは「統計解析力」に特化した情報を提供しています。具体的にはクラスタリングの全体像や K-means クラスタリングについて解説してくれています。
大田は「実装力」に特化した資料になっており、K-means クラスタリングを Azure ML で実現する方法を紹介しました。
アルゴリズムから学ぶAzure ML モジュールの使いこなし方 -- Azure Machine Learning との連携について学ぶ -- HDInsight編
株式会社ネクストスケープ エバンジェリスト
上坂 貴志
K meansによるクラスタリングの解説と具体的なクラスタリングの活用方法の紹介
フリーランス
三上 威
Azure Machine Learning でのK-means 法の具体的な活用方法
日本マイクロソフト テクニカル エバンジェリスト
大田 昌幸
未来を見据える Power BI! Azure Machine Learning との連携
日本マイクロソフト サポート エンジニア
清水 磨
資料の詳細な解説・デモを見たい場合には、Chennnl 9 というMS動画サイトで公開しているので活用してください。
Azure Blob ストレージへのファイルアップロード方法
Azure Blob ストレージへのファイルアップロード方法をご質問いただくことがありますので、アクセス方法をメモしておきます。
なお、Azure ストレージの概要については過去記事をご参照ください
データをアップロードする方法
ストレージへのデータのアップロード方法にはいくつかの方法があります。
- (イチオシ!)Microsoft Azure Storage Explorer (Windows,Mac, Linux)
- Azure CLI というコマンドラインツール (Windows,Mac, Linux)
- AzCopy ツール (Windows)
- 各社様の開発されている独自ツールをご利用いただく。
- 自作
Microsoft Azure Storage Explorer の利用
プラットフォームを選ばないツールで、これが一番便利です。
ここからダウンロードできるので、活用してみてください。
Azure CLI というコマンドラインツールのご利用 (Mac, Linux, Windows でご利用いただけます。)
Azure CLI というツールをご活用いただくことで、コマンドラインで Azure の操作が可能です。下記情報を参考に、Azure CLI の活用をご検討ください。
Azure CLI のインストールと構成
https://azure.microsoft.com/ja-jp/documentation/articles/xplat-cli/
Azure Storage での Azure CLI の使用
https://azure.microsoft.com/ja-jp/documentation/articles/storage-azure-cli/
なお、上記 API の場合には並行処理は実装していないため、
まずはこのツールをお試しいただき、実業務内で利用に耐えうるパフォーマンスかをご確認ください。
# これが一番簡易な方法ですが、データ量によってはパフォーマンスに難があると考えており、上記のように案内させていただきました。
#並行処理に関する情報は文末に記載しました。
Windows 環境をご用意いただき、AzCopy ツールをご利用いただく。
弊社正式のツールとして AzCopy というツールがございます。
Windows 限定ではございますが、高速にデータのアップロードができますので、ご検討ください。
https://azure.microsoft.com/ja-jp/documentation/articles/storage-use-azcopy/
各社様の開発されている独自ツールをご利用いただく。
Cyberduck というツールで Azure へデータをアップロードすることが可能です。
並行してアップロードする実装を行っているか?という内部実装については不明ですが、選択肢の一つとして案内させていただきました。
https://trac.cyberduck.io/wiki/help/en/howto/azure
自作する際にご確認いただきたいこと
大量のデータをアップロードする場合、アップロード方法を工夫する必要があります。
Blob Storage の場合、高速にデータをアップロードするツールの実装は下記のようになります。
- クライアント側でデータをブロック単位に分ける。
- ブロック ID を付与して、Azure Blob Storage へ”並行して”アップロードする
上記のように、いくつかのブロックを並行してアップロードすることにより、
大きなデータであっても高速にアップロードできるようになります。
AzCopy も並行してアップロードするようになっており、高速にデータを転送可能になっています。
参考情報: Blob Parallel Upload and Download
http://blogs.microsoft.co.il/applisec/2012/05/14/blob-parallel-upload-and-download/
データ移動・加工の自動化ツール Azure Data Factory の情報まとめ
データの移動/変換/分析/発行の調整・自動化サービスである Azure Data Factory を紹介します。
docs.com にてスライドを公開しましたので、詳細はそちらを参照してください。
スライド作成時点では Visual Studio 2013 のみに対応していましたが、現時点では Visual Studio 2015 のアドインも公開されています。
基本的に Web 上(Azure Portal上) で操作はできるのですが、Visual Studio で完結させたい方はご活用ください。