実践:今日から使えるビックデータ...
TRANSCRIPT
TECHNOMOBILEGROUP
HEAD OFFICETOKUSHIMA development section
| 5floor Column Minamiaoyama,7-1-5,Minamiaoyama,Minato-ku,Tokyo 107-0062,Japan| 3floor Tokushimakenkohkagaku-center,Hiraishisumiyoshi,Kawauchi-cho,Tokushima-shi Tokushima 771-0134,Japan
実践:今日から使えるビックデータハンズオン
あなたはタイタニック号で生き残れるか?知的生産性UPのための機械学習超入門
7COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
最近のツールは良く出来ていて、ブラウザ上でなんとなくブロックをつなぎ合わせていくだけで機械学習ができちゃいます。
ただし、結果が良いのかどうか評価できる知識は必要
8COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
なので、「採用する前に優秀かどうか知りたくないですか?」「どこで広告を流すと課金ユーザになってくれるのか知りたくないですか?」そういう答えを知りたいすべての人に「機械学習」を使って欲しいのです。
9COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
回帰
クラス分類 レコメンデーション
クラスタリング
教師あり 教師なし
※ほかにもいろいろ
答えをもとに学習します データを元に傾向を学習します
機械学習の種類
10COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
・回帰...数値を予測します。・クラス分類...分類を予測します。
二項分類、多項分類
・クラスタリング...グループに分けます。・レコメンデーション...お勧めを示します。
12
機械学習するためのワンパターン
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
どうやって「機械学習」ってするの?
1つのパターンを覚えればOK!→あとは調整していく
13
ワンパターン
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
1. データを取り込む2. 学習用と評価用にデータを分
ける3. 学習用データを使って学習す
る。4. 学習した結果を使って評価用
のデータの答えを推測する。5. 推測した答えを評価する。
14
早速実践
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
ツールはなにがよいの?
マイクロソフトのAzure MLを使います。1ヶ月無料で使える。1ヶ月後もFreeプランがあります。
AzureML
http://azure.microsoft.com/ja-jp/services/machine-learning/
料金http://azure.microsoft.com/ja-jp/pricing/details/machine-learning/
16COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
この学びの対象者は?→答えが知りたい人。ブラウザが使えればOK!統計の話は出てこないです。
教えないことは?→統計については質問しないでくださいorz 理系ですが専門じゃないです。
17COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
なにを推論するの?
おもしろもの!!今回はタイタニックの乗客が生き残るかどうか推論しましょう!ちょっと不謹慎ですが。。。
参考:AzureMLのチュートリアルhttps://gallery.azureml.net/Details/01b2765fa75147ce99679e18482d280f
19COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
講師Gashfara,Inc.代表デジタルハリウッド大学院客員講師
http://facebook.com/mogiken
http://www.slideshare.net/mogiken1
自己紹介
[プロフィール/実績]
もぎ・けんいち●青山学院大学大学院卒。(株)東洋情報システム退社後、(株)エイチアイ、グランスフィア(株)、(株)ファッションウォーカーなど数社のベンチャー企業の立ち上げ・創業期に参画し、ガシュファラ・インクをUSで起業。システム開発ではゲーム、M&A企業評価システム、動画配信システム、電子マネーシステム、ECフルフィルメントシステムなど、多彩な分野を経験。IT関連教育ではBrew、Java、セキュリティーなどの講師として活躍。現在、(株)HUGG
を設立し、スマホのカップル向けSNSサービス[HUGG]をグローバルに展開。㈱テクノモバイルにて技術サポート。
【著書】BREWプログラミング実践バイブル [共著] (インプレス)、PHP逆引き大全 516
の極意[共著](秀和システム)
20
成長を実現させるシステム”モバイルトータルソリューション”
Webシステム
1
スマホアプリ
2 ゲームアプリ
3
モバイルトータルソリューション
B2B2C
• コンシューマ向けの大規模Webシステムの開発からアプリ・ゲーム開発までをマルチデバイスで対応
高い技術力 市場ニーズとマッチ
大規模Webシステム
に強いJava,PHP
Strong1
最先端技術・独自フレームワークで
効率的な開発
Strong2
高トラフィック、インフラ
ネットワークに強い
Strong3 プライマリーベンダー、ヒアリング・要件定義に強い
StrongⅠ
情報資産の活用最先端と知見に強い
StrongⅡ
最先端のマルチデバイス
ウェアラブルに強い
StrongⅢ
Mashup Awards 5年連続 受賞会社名 株式会社テクノモバイル
設 立 2008年
資本金 2,500万円
代 表 播田 誠
従業員数 100名(グループ合計)
本社所在地〒 107-0062
東京都港区南青山7-1-5 コラム南青山 5F
開発室
〒771-0134
徳島県徳島市川内町平石住吉209-5
徳島健康科学総合センター 3F
21
まずはユーザ登録
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
ユーザ登録してください
AzureML(Machine Learning)
http://azure.microsoft.com/ja-jp/services/machine-learning/
22
ログイン
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
https://studio.azureml.net/?selectAccess=true&o=1 にアクセスしてください。
23
ワンパターンその1:データを取り込む
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
データを用意します。ここのtrain.csvを使います。乗客の情報と生死がCSVデータになってます。
https://www.kaggle.com/c/titanic-gettingStarted/data
Downloadできないひとは講師に問い合わせて。
24COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Excelで開いてみます。それぞれのデータの意味は
PassengerId=顧客ID
Survived=1:生存、0:死亡Pclass=1:一等席、2:二等席、3:3等席Name=名前Sex=性別Age=年齢SibSp=同乗している兄弟の人数(自分は数えない)
Parch=同乗している親または子供の人数(自分は数えない)
ticket=チケットNo
fare=料金 1等席はだいたい50〜200,2等席10〜80,3等席7〜50
ポンド:1ポンドの現在価値は0.7万円くらいかな?cabin=客室番号embarked=乗船した場所 C = Cherbourg; Q = Queenstown; S =
Southampton
Survivedが知りたい情報です。これを目的変数(label)と言います。その他のデータは説明変数(features)です。labelは1つだけです。featuresはいくつでもOKです。labelは0,1のように2つの値だけを持つようなデータで検証するのが分かりやすいです。
25COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
AzureMLに取り込みます
①
②
⑤train.csvを選択します。
③ ④
⑥
DATASETSに
登録されます。
http://azure.microsoft.com/ja-jp/services/machine-learning/ からログイン
または
https://studio.azureml.net/?selectAccess=true&o=1
26COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
データを取り込むロジックを作成します
①
②
③
④
⑤
⑥train.csvをDragDrop
この画面で左にある部品をつなぎあわせながら機械学習のロジックを組み立てていきます。
以上
27
ワンパターンその2:学習用と評価用にデータを分ける
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
①キーワード検索
②D&D
③つなぐ
丸いところが接続可能
④Splitの図
形を選択して0.6に変更。
6割、4割にデータがわかれる
6割 4割
以上
28
ワンパターンその3:学習用データを使って学習する
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
①
②ここで6割のデータを使って学習します。
③④
こんな感じに部品を組み立てましょう。labelの指定が必要なので忘れずに。
Two-Class Bayes Point Machineが学習するロジック(model)になります。これを変更するといろいろなロジックを試すことが出来ます。0,1のようにlabelが2つの値を持つならば、Two-Class Bayesが吉!labelが3つ以上の値を保つ場合や実数の場合などはそれに応じてmodelを変更する必要があります。どのmodelを選ぶのかの目安は、名前にTwo-Class Multi-Classなどのようにわかり易い名前が付いています。教師なしmodelもありますが説明は省略します。
⑤TrainModelを選択してボタンを押す
⑥labelにSurvivedを指定します。
以上
29
ワンパターンその4:学習した結果を使って評価用のデータの答えを推測する
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
①ここで4割のデータを推測する
こんな感じに部品を組み立てましょう。
②
③
以上
30
ワンパターンその5:推測した答えを評価する
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
①ここでScoreModelの結果を評価します
こんな感じに部品を組み立てましょう。
②
以上
31COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
実行
ロジックが出来たので実行します
ぽちっと押します。キュー(実行待ち)に入るので完了するまで待ちます
終了すると右上にこんな感じに表示されます。
32COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
ScoreModelの結果を見ましょう
②
①線をつないでいるポッチを押しましょう。
③結果が表示されます
Splitで分けた4割のデータが表示されます。Scored Labelsが推測した値です。TrainModelでlabelにSurvivedを指定しているのでこの値と比較すれば推測があたっているかどうかわかります。
33COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
EvaluateModelの結果を見ましょう
②
①線をつないでいるポッチを押しましょう。
③結果が表示されます
ScoreModelでは全体的に良い結果なのかどうか判断しにくいのです。そこでEvaluateModelを使ってざっくりと推測の精度が良いのかどうか判断します。とりあえず2つだけポイントを抑えればOKです。他にたくさん指標がありますがGoogleなどで検索すればどのように評価すればよいのか出ています。
34COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
EvaluateModelの結果をみる2つのポイント(超初心者用)
ROCのグラフは対角線を基準として左上側に線があると精度が良いと考えます。赤い線のようなのが理想的です。対角線はちょうど五分五分の精度です(要はランダムに推測した結果に近い)。
Accuracyが1に近いほど精度が良いです。
現状、ROCは対角線に近く、Accuracyも1には程遠いので精度は良くないですね。。。
※学習modelによって評価の仕方が変わります
36COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
改めてCSVデータを見ると、生死に関係なさそうな値や未入力の値もありそうです。
これらを削除すれば精度が良くなるのでは?
37COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
未入力データがあるものは行ごと削除PassengerId、Nameは生死に関係ないでしょうticketも関係なさそうcabinもユニークな番号っぽいので関係ないのでは?
38
データを綺麗にしよう
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
②
①
③
④
⑤
⑥ProjectColumunsの設定
⑦MissingValuesScrubberの設定
こんな感じに部品を組み立てましょう。
40
EvalutateModelを見ましょう
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
グラフもAccuracy
もいい感じ!!
更に精度を高めるには使うデータの見直し、データを加工して学習しやすくする、Bayes以外のmodel
も試してみる、など試行錯誤してみましょう。
41
他のデータに応用するには?
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
①データの変更
②学習ロジックの変更0,1のように2つの値ならこのままでもOK
③Labelの変更
たった、3箇所を変更するだけ!
43
検証データを入力できるようにする
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
AzureMLはAPIとして簡単にインターネットに外部公開できます。そこからデータを入力して生き残れるか検証します。
44COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
①
②
③4割の検証データの代わりにAPIのデータを使います
④
こんな感じに部品を組み立てましょう。Webで検証するための入り口と出口が出来ました!
46COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
このサービスにアクセスするAPIが公開されます。アクセスするにはプログラムが必要です。ですが「Test」を使うと検証が簡単にできます。入力するデータはCSVとおなじ内容です。結果はScoreModelのVisualで表示されるデータと同じです。
入力
結果:Jason
47COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
あなたは生き残れるか!!
Survived=1:生存、0:死亡 結果のデータなので適当でOK
Pclass=1:一等席、2:二等席、3:3等席Sex=male,female
Age=年齢SibSp=同乗している兄弟の人数(自分は数えない)
Parch=同乗している親または子供の人数(自分は数えない)
fare=料金 1等席はだいたい50〜200,2等席10〜80,3等席7〜50
ポンド:1ポンドの現在価値は0.7万円くらいかな?embarked=乗船した場所 C = Cherbourg; Q = Queenstown; S = Southampton
検証!!
48COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
あとは身近なデータでトライ!!
コンテストデータはここにhttps://www.kaggle.com/
野良データはここにもhttps://goo.gl/IHxkkO
49COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
http://goo.gl/jGKrYy
書籍が発売されています。
下記のドキュメントなどを読み込みましょう。
http://azure.microsoft.com/ja-jp/services/machine-learning/
さらに勉強するには