20160408 機械学習lt大会

33
機機機機機機機機 機機機機機機機機機機機 機 goodbye matplotlib 機 Bizreach 機機機機機機機機機 機機 西

Transcript of 20160408 機械学習lt大会

Page 1: 20160408 機械学習lt大会

機械学習で使えるデータ可視化ライブラリ〜 goodbye matplotlib 〜Bizreach データサイエンス部 大西 佑紀

Page 2: 20160408 機械学習lt大会

自己紹介大西 佑紀株式会社ビズリーチ データサイエンス部 AI チーム所属

2014/04 野村総合研究所 金融基盤サービス部 インフラエンジニア2015/05 株式会社ビズリーチ サーバサイドエンジニア (Java)2016/02 株式会社ビズリーチ データサイエンス部

機械学習歴 3 ヶ月くらい。ひよっこ。【最近の業務】• Bizreach 検索キーワード提案システムの開発• Careertrek レコメンドシステムの開発• 社内 KPI ダッシュボードシステムの保守、新システム導入等【学生時代】経営工学 (Operations Research) の研究

Page 3: 20160408 機械学習lt大会

Bizreach の紹介

Page 4: 20160408 機械学習lt大会

Bizreach について

ヘッドハンター様

採用企業様

求職者様

マッチング

Page 5: 20160408 機械学習lt大会

データサイエンス部の紹介• 機械学習専門のエンジニア組織• 専門的な知識が問われる企画の段階から入り、プロトタイプ開発までを一貫して行う• 共通言語は Python

Page 6: 20160408 機械学習lt大会

突然ですが。。。

Page 7: 20160408 機械学習lt大会

最近こんなものを読みました。

http://1onjea25cyhx3uvxgs4vu325.wpengine.netdna-cdn.com/wp-content/uploads/2014/12/UdacityUltimateSkillChecklistForYourFirstDataAnalystJob.pdf

データ分析者の必要スキルチェックリスト

データ分析従事者必須スキル

Page 8: 20160408 機械学習lt大会

Communication and Data Visualization

Page 9: 20160408 機械学習lt大会

seaborn????

Python のデータ可視化ライブラリといえば…

ただ…• ダサい• 複雑な図を書こうと思うと結構面倒くさい• 総じて辛い( 個人の感想です )

Page 10: 20160408 機械学習lt大会

というわけで、今日は• matplotlib は辛いですよね、 seaborn 使いましょうという話をします。• seaborn の基本的な使い方・美しさ・ちょっとしたハマりポイントの紹介• 機械学習ガリガリのアルゴリズムの話は他の優秀な登壇者の方々がしてくれるはずです。

Page 11: 20160408 機械学習lt大会

改めて seaborn とは ????

• matplotlib のラッパーライブラリ• pandas との連携がスムーズ• 簡単に美しいグラフ描画• https://stanford.edu/~mwaskom/software/sea

born/index.html– スタンフォードドメインかっこいい

• https://github.com/mwaskom/seaborn– つい最近もコミットあるみたい

Page 12: 20160408 機械学習lt大会
Page 13: 20160408 機械学習lt大会

Gallery 比較 (seaborn)

Page 14: 20160408 機械学習lt大会

Gallery 比較 (matplotlib)

Page 15: 20160408 機械学習lt大会

Gallery 比較 (matplotlib)

謎のおじさん

絶妙にダサい色使い

Page 16: 20160408 機械学習lt大会

グラフを描いてみよう

Page 17: 20160408 機械学習lt大会

分析対象のデータ ( 一部違うデータも使います )

支払金額とチップの相関データ。性別、喫煙非喫煙などのカテゴリ。

Page 18: 20160408 機械学習lt大会

jointplot

Page 19: 20160408 機械学習lt大会

jointplot

• 一行でかけちゃう• Data source を Pandas dataframe で指定• x 軸 , y 軸を dataframe のカラム名で指定

g = sns.jointplot(x="total_bill", y="tip", data=tips, kind="reg")

Page 20: 20160408 機械学習lt大会

distplot

Page 21: 20160408 機械学習lt大会

distplot

• 一行でかけちゃう。• 曲線もデフォルトで入れてくれる。• Data source を Pandas Series で指定。x = tips["total_bill"] # Series 取得g = sns.distplot(x)

Page 22: 20160408 機械学習lt大会

barplot

Page 23: 20160408 機械学習lt大会

barplot

• 一行でかけちゃう。• Data source を DataFrame で指定。• カテゴリ別の bar を hue で指定。ax = sns.barplot(x="day",

y="total_bill", hue="sex", data=tips,

estimator=sum)

Page 24: 20160408 機械学習lt大会

countplot

Page 25: 20160408 機械学習lt大会

countplot

• 一行でかけちゃう。• Data source を DataFrame で指定。• カウントするカテゴリ変数のカラム名指定。

ax = sns.countplot(x="sex", data=tips)

Page 26: 20160408 機械学習lt大会

pointplot

Page 27: 20160408 機械学習lt大会

pointplot

• デフォルトで信頼区間を表示 (消せる )

• hue でカテゴリ別に描画• 何かと良く使う気がする。

ex = sns.load_dataset("exercise")g = sns.pointplot(x="time",

y="pulse", hue="kind", data=ex)

Page 28: 20160408 機械学習lt大会

pairplot

Page 29: 20160408 機械学習lt大会

pairplot

• 超便利• Hue でカテゴリ別に色分けax = sns.pairplot(iris, hue="species")

Page 30: 20160408 機械学習lt大会

heatmap

Page 31: 20160408 機械学習lt大会

heatmap

• DataFrame を pivot してから描画• なにかと使うflights = sns.load_dataset("flights")flights_piv = flights.pivot("month",

"year", "passengers")ax = sns.heatmap(flights_piv)

Page 32: 20160408 機械学習lt大会

その他ちょっとつまづいたこと• 累積 bar グラフ barplot の estimator=sum を引数で指定する• ラベルの日本語指定• カテゴリ変数のラベル順序 (sex = [“male”,

“female”])• 図の内容を消去したい場合

plt.clt() ,plt.show()

Page 33: 20160408 機械学習lt大会

ありがとうございました