実践:今日から使えるビックデータ...

50
TECHNOMOBILE GROUP HEAD OFFICE TOKUSHIMA 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のための機械学習超入門

Upload: -

Post on 15-Jul-2015

1.297 views

Category:

Technology


5 download

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のための機械学習超入門

2

機械学習とは

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

最近よく聞く「機械学習」ってなんでしょう?

3COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

どばーっと大量のデータをパソコンに取り込んで。。

4COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

うーってパソコンが考えて。。

5COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

とりゃーって答えを教えてくれる仕組みです。

6COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

統計学の知識が必要なのでは?

7COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

最近のツールは良く出来ていて、ブラウザ上でなんとなくブロックをつなぎ合わせていくだけで機械学習ができちゃいます。

ただし、結果が良いのかどうか評価できる知識は必要

8COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

なので、「採用する前に優秀かどうか知りたくないですか?」「どこで広告を流すと課金ユーザになってくれるのか知りたくないですか?」そういう答えを知りたいすべての人に「機械学習」を使って欲しいのです。

9COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

回帰

クラス分類 レコメンデーション

クラスタリング

教師あり 教師なし

※ほかにもいろいろ

答えをもとに学習します データを元に傾向を学習します

機械学習の種類

10COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

・回帰...数値を予測します。・クラス分類...分類を予測します。

二項分類、多項分類

・クラスタリング...グループに分けます。・レコメンデーション...お勧めを示します。

11COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

今回は

クラス分類(二項分類)

を実践形式で学びます。

12

機械学習するためのワンパターン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

どうやって「機械学習」ってするの?

1つのパターンを覚えればOK!→あとは調整していく

13

ワンパターン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

1. データを取り込む2. 学習用と評価用にデータを分

ける3. 学習用データを使って学習す

る。4. 学習した結果を使って評価用

のデータの答えを推測する。5. 推測した答えを評価する。

14

早速実践

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

ツールはなにがよいの?

マイクロソフトの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/

15

「まずはユーザ登録」のページを実行して、事前にユーザー登録をしておいてください。

事前準備

16COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

この学びの対象者は?→答えが知りたい人。ブラウザが使えればOK!統計の話は出てこないです。

教えないことは?→統計については質問しないでくださいorz 理系ですが専門じゃないです。

17COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

なにを推論するの?

おもしろもの!!今回はタイタニックの乗客が生き残るかどうか推論しましょう!ちょっと不謹慎ですが。。。

参考:AzureMLのチュートリアルhttps://gallery.azureml.net/Details/01b2765fa75147ce99679e18482d280f

18COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

あなたは生き残れるか!!

19COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

講師Gashfara,Inc.代表デジタルハリウッド大学院客員講師

茂木健一[email protected]

[email protected]

http://facebook.com/mogiken

http://www.slideshare.net/mogiken1

自己紹介

[プロフィール/実績]

もぎ・けんいち●青山学院大学大学院卒。(株)東洋情報システム退社後、(株)エイチアイ、グランスフィア(株)、(株)ファッションウォーカーなど数社のベンチャー企業の立ち上げ・創業期に参画し、ガシュファラ・インクをUSで起業。システム開発ではゲーム、M&A企業評価システム、動画配信システム、電子マネーシステム、ECフルフィルメントシステムなど、多彩な分野を経験。IT関連教育ではBrew、Java、セキュリティーなどの講師として活躍。現在、(株)HUGG

を設立し、スマホのカップル向けSNSサービス[HUGG]をグローバルに展開。㈱テクノモバイルにて技術サポート。

【著書】BREWプログラミング実践バイブル [共著] (インプレス)、PHP逆引き大全 516

の極意[共著](秀和システム)

20

成長を実現させるシステム”モバイルトータルソリューション”

Webシステム

スマホアプリ

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.

ユーザ登録してください

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.

データを用意します。ここのtrain.csvを使います。乗客の情報と生死がCSVデータになってます。

https://www.kaggle.com/c/titanic-gettingStarted/data

Downloadできないひとは講師に問い合わせて。

24COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

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.

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.

データを取り込むロジックを作成します

⑥train.csvをDragDrop

この画面で左にある部品をつなぎあわせながら機械学習のロジックを組み立てていきます。

以上

27

ワンパターンその2:学習用と評価用にデータを分ける

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

①キーワード検索

②D&D

③つなぐ

丸いところが接続可能

④Splitの図

形を選択して0.6に変更。

6割、4割にデータがわかれる

6割 4割

以上

28

ワンパターンその3:学習用データを使って学習する

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

②ここで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.

①ここで4割のデータを推測する

こんな感じに部品を組み立てましょう。

以上

30

ワンパターンその5:推測した答えを評価する

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

①ここでScoreModelの結果を評価します

こんな感じに部品を組み立てましょう。

以上

31COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

実行

ロジックが出来たので実行します

ぽちっと押します。キュー(実行待ち)に入るので完了するまで待ちます

終了すると右上にこんな感じに表示されます。

32COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

ScoreModelの結果を見ましょう

①線をつないでいるポッチを押しましょう。

③結果が表示されます

Splitで分けた4割のデータが表示されます。Scored Labelsが推測した値です。TrainModelでlabelにSurvivedを指定しているのでこの値と比較すれば推測があたっているかどうかわかります。

33COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

EvaluateModelの結果を見ましょう

①線をつないでいるポッチを押しましょう。

③結果が表示されます

ScoreModelでは全体的に良い結果なのかどうか判断しにくいのです。そこでEvaluateModelを使ってざっくりと推測の精度が良いのかどうか判断します。とりあえず2つだけポイントを抑えればOKです。他にたくさん指標がありますがGoogleなどで検索すればどのように評価すればよいのか出ています。

34COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

EvaluateModelの結果をみる2つのポイント(超初心者用)

ROCのグラフは対角線を基準として左上側に線があると精度が良いと考えます。赤い線のようなのが理想的です。対角線はちょうど五分五分の精度です(要はランダムに推測した結果に近い)。

Accuracyが1に近いほど精度が良いです。

現状、ROCは対角線に近く、Accuracyも1には程遠いので精度は良くないですね。。。

※学習modelによって評価の仕方が変わります

35COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

なにが悪いの?

データ?

データを良く見てみよう!!

36COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

改めてCSVデータを見ると、生死に関係なさそうな値や未入力の値もありそうです。

これらを削除すれば精度が良くなるのでは?

37COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

未入力データがあるものは行ごと削除PassengerId、Nameは生死に関係ないでしょうticketも関係なさそうcabinもユニークな番号っぽいので関係ないのでは?

38

データを綺麗にしよう

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

⑥ProjectColumunsの設定

⑦MissingValuesScrubberの設定

こんな感じに部品を組み立てましょう。

39COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

再度実行

修正出来たので実行します

結果を待ちましょう。。。

どきどきどきどき

40

EvalutateModelを見ましょう

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

グラフもAccuracy

もいい感じ!!

更に精度を高めるには使うデータの見直し、データを加工して学習しやすくする、Bayes以外のmodel

も試してみる、など試行錯誤してみましょう。

41

他のデータに応用するには?

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

①データの変更

②学習ロジックの変更0,1のように2つの値ならこのままでもOK

③Labelの変更

たった、3箇所を変更するだけ!

42COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

あなたは生き残れるか!!

43

検証データを入力できるようにする

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

AzureMLはAPIとして簡単にインターネットに外部公開できます。そこからデータを入力して生き残れるか検証します。

44COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

③4割の検証データの代わりにAPIのデータを使います

こんな感じに部品を組み立てましょう。Webで検証するための入り口と出口が出来ました!

45COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

これを押すとAPIとして公開されます。押せない時は「RUN」を実行してから再試行します。

46COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

このサービスにアクセスするAPIが公開されます。アクセスするにはプログラムが必要です。ですが「Test」を使うと検証が簡単にできます。入力するデータはCSVとおなじ内容です。結果はScoreModelのVisualで表示されるデータと同じです。

入力

結果:Jason

47COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

あなたは生き残れるか!!

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.

あとは身近なデータでトライ!!

コンテストデータはここにhttps://www.kaggle.com/

野良データはここにもhttps://goo.gl/IHxkkO

49COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

http://goo.gl/jGKrYy

書籍が発売されています。

下記のドキュメントなどを読み込みましょう。

http://azure.microsoft.com/ja-jp/services/machine-learning/

さらに勉強するには

50COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.

・Webサービスの知能化・データ分析サービスの追加・エンジニアのデータ分析能力向上・DeepLearningなど先端技術の導入支援

適用事例(経営者・営業担当の方に)