Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GUIでやる機械学習 Azure Machine Learning Studioの紹介
Search
rhistoba
August 18, 2018
0
29
GUIでやる機械学習 Azure Machine Learning Studioの紹介
rhistoba
August 18, 2018
Tweet
Share
More Decks by rhistoba
See All by rhistoba
Tailwindcssを使ってCSSを恐れず書こう
rhistoba
1
490
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
88
5.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
380
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
17k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Teambox: Starting and Learning
jrom
133
8.8k
Practical Orchestrator
shlominoach
186
10k
Fireside Chat
paigeccino
34
3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
A designer walks into a library…
pauljervisheath
204
24k
Six Lessons from altMBA
skipperchong
27
3.5k
Happy Clients
brianwarren
98
6.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Transcript
GUIでやる機械学習: Azure Machine Learning Studioの紹介 2018/08/18 @rhistoba
自己紹介 名前: 鳥羽 隼司(とば しゅんじ) 所属: R社(新卒入社2年目ぐらい) 業務: Railsアプリケーションの開発 学生時代に音声関係の研究室に在籍していて、
そこで機械学習を使ってたりしてました • 業務では…(´・ω・`) • 今回は学生時代に学んだことの絞りカスを使って 発表させていただきます 2 日常生活の足(VTR-F)
なんでGUIで機械学習やるの? • なるべくコードレスで機械学習の実験に集中したい ◦ やりたいのはコーディングではなく機械学習の実験 ◦ ライブラリの使い方を覚えることは機械学習の実験の本質ではない • GUIで手軽に全部やろうぜ ◦
前処理 ◦ 予測モデル作成 ◦ 可視化 ◦ デプロイ • (GUI関係ないけど)できれば簡単にサービスとして提供できてほしい 3
Azure Machine Learning Studio • GUIで機械学習の実験ができるAzureのサービス ◦ 作成した実験をWebAPIとしてデプロイできる ◦ Python、R、SQLも使える
• Azureサブスクリプション不要で無料枠が使える ◦ 実験ではすべての機能にアクセスできる ◦ 実稼働WebAPIの利用は有料枠のみ • 以下AMLSと略す 4
5 AMLSの実験画面
6 データの可視化
AMLSの特徴 • 様々な機械学習のソリューションをサポート ◦ 分類、回帰、レコメンド、クラスタリング、異常検知 • コードレスで機械学習の実験が(ほぼ)できる ◦ PythonやR、SQLを使うこともできる •
特に面倒な前処理のモジュールが充実 ◦ このあたりのコードを書かなくて済むのはうれしい ◦ 欠損値や外れ値の対応、数値の標準化、テキスト処理など ◦ テキスト処理は日本語があまりサポートされていないので、改善してもらいたい … • テーブルデータを扱うのに向いている ◦ 画像や音声を扱うのは向いてないかも 7
実際にAMLSで実験してみる 8
やってみたこと • AMLSでゲームの売上数を予測 • 用いるデータ ◦ Kaggle - Video Game
Sales ◦ https://www.kaggle.com/gregorut/videogamesales ◦ 16600 rows ◦ Columns ▪ Rank,Name,Platform,Year,Genre,Publisher,NA_Sales,EU_Sales, JP_Sales,Other_Sales,Global_Sales • Name, Genre, Platformの3つを使ってGlobal_Sales(売上本数)を予測 9
実験フロー 1. データのインポート 2. データの前処理 3. 学習データで予測モデルを学習 4. テストデータで予測モデルを評価・比較 作成した実験画面
• https://i.gyazo.com/f47329f6308f5196ef7904921eef3eaa.mp4 10
データセットのインポート • https://www.kaggle.com/gregorut/videogamesales からcsvをDL • AMLSの操作 ◦ +NEW -> DATASET
-> FROM LOCAL FILE ◦ ローカルにDLしたcsvからデータセットが生成される
データの前処理(テキスト編) • テキストを数値特徴量に変換して学習しやすくする ◦ Bag of wordsというテキストの数値特徴量に変換 • このままでは扱いにくいので低次元特徴量に変換して扱いやすくする ◦
主成分分析を使う ▪ 高次元データの特徴を保持したまま、低次元に変換できる ▪ 今回の例:1699 -> 20 mario metal monster hunter 1 mario bros 1 0 0 0 2 metal gear 0 1 0 0 3 monster hunter 0 0 1 1 Bag of wordsの例
データの前処理(売上編) • 元のカラムGlobal_Salesは数値の分布に偏りがあった ◦ 学習に使う上で不利 • そこで対数変換(log)で分布の偏りをなくす 変換前 変換後
学習データで予測モデルを学習 • 学習アルゴリズムの選択 • 予測の種類 ◦ Classification(分類) : カテゴリの予測 ◦
Regression(回帰) : 数値の予測 • 今回は売上数を予測するので回帰 ◦ 2つのアルゴリズムを使って予測モデルを構築、性能を比較する ▪ 線形回帰 ▪ ランダムフォレスト回帰
テストデータで予測モデルを評価・比較 • データを学習用75%、テスト用25%で実験 • 学習された予測モデルの評価結果を見てみる • ランダムフォレスト回帰のほうが数値的には優秀 線形回帰 ランダムフォレスト回帰 評価結果
実際の予測結果を見てみる 実際の予測結果を見ると良かったり悪 かったりという感じ グリッドサーチで予測モデルをチュー ニングしてこんなもんだった とりあえずこれぐらいで妥協してWeb サービス化する 16
Webサービスとしてデプロイする
実験できた後 • API Webサービスとして提供できるようにする • 実験が完了したらWebサービス用にモジュールをセットアップする ◦ Web用のInput/Outputを定義 ◦ 学習で作成した辞書、予測モデルを使う
デプロイに際して変更した箇所 • 元データから余計なカラムを取った後をWebサービスの入力とした • テキスト特徴量抽出で、実験から辞書データを取り出して使った • 主成分分析の変換ルールを実験から取り出して使った 作成したWebサービスの画面 • https://i.gyazo.com/bd5cad7a2e6b2da29e5b0c68b4dc274b.mp4
Webサービスのデプロイ • 構築したWebサービスをRunして正常に通ったら、Deploy Web Serviceでデプロイ する • メニューのWeb Servicesの欄にサービスが追加される
Webサービスの管理画面 できること • APIの利用状況の確認 • APIのテスト • APIキーやリクエストURI の確認 •
API使用方法
Webサービスのテスト画面
まとめ • Azure Machine Learning Studioを使えばGUIで機械学習ができる • 大体コードレスで実験できる • APIのデプロイもできる
• 機械学習のサービス提供の敷居が低くてとても助かる 23
おまけ フロント組んでみた 24 https://game-sales-prediction.firebaseapp.com/