20160408 機械学習lt大会

Post on 11-Jan-2017

838 views 0 download

Transcript of 20160408 機械学習lt大会

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

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

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

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

Bizreach の紹介

Bizreach について

ヘッドハンター様

採用企業様

求職者様

マッチング

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

突然ですが。。。

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

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

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

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

Communication and Data Visualization

seaborn????

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

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

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

改めて seaborn とは ????

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

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

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

Gallery 比較 (seaborn)

Gallery 比較 (matplotlib)

Gallery 比較 (matplotlib)

謎のおじさん

絶妙にダサい色使い

グラフを描いてみよう

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

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

jointplot

jointplot

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

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

distplot

distplot

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

barplot

barplot

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

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

estimator=sum)

countplot

countplot

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

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

pointplot

pointplot

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

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

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

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

pairplot

pairplot

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

heatmap

heatmap

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

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

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

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

plt.clt() ,plt.show()

ありがとうございました