Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
データを可視化する一般的なテク(?)~heatmapの拡張~ kaggle meetup #3
threecourse
October 28, 2017
2
810
データを可視化する一般的なテク(?)~heatmapの拡張~ kaggle meetup #3
threecourse
October 28, 2017
Tweet
Share
More Decks by threecourse
See All by threecourse
Cloud_RunとOptunaでヒューリスティックコンテスト
threecourse
0
290
frontend-nanimo-wakaranai-20191224
threecourse
0
510
Kaggle_Days_Tokyo_-_Feature_Engineering_and_GBDT_Implementation.pdf
threecourse
3
6.1k
OpeningTalk-KaggleTokyoMeetup6.pdf
threecourse
0
7.7k
Kaggle Tokyo Meetup #4 Opening Talk
threecourse
0
6.5k
Opening Talk - Kaggle Tokyo Meetup #3
threecourse
0
170
kaggle tokyo meetup #2 opening talk
threecourse
0
390
過去のコンペをただ語る
threecourse
3
790
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
338
18k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
182
15k
Mobile First: as difficult as doing things right
swwweet
213
7.8k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.8k
Automating Front-end Workflow
addyosmani
1351
200k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
7
560
The MySQL Ecosystem @ GitHub 2015
samlambert
240
11k
Build your cross-platform service in a week with App Engine
jlugia
221
17k
Scaling GitHub
holman
453
140k
We Have a Design System, Now What?
morganepeng
37
5.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
32
6.7k
Rebuilding a faster, lazier Slack
samanthasiow
69
7.5k
Transcript
データを可視化する一般的なテク(?) ~heatmapの拡張~ threecourse
motivation • Heatmapのセルの大きさを可変にするこ とにより、もう一つ情報を加えたい • 具体的な想定は商品×地域で、収益率とボ リュームを同時に見せるイメージ • ボリュームを見せることで、重要度や統計的 な信頼度についても把握できる
成果物
成果物 • Sample png2
成果物 • Kaggle Kernel https://www.kaggle.com/threecourse/heatm ap-with-change-cell-size-feature • Github https://github.com/threecourse/kaggle- meetup-heatmap
やったこと • Seabornのheatmapを改造 – Heatmapはseaborn/matrix.pyの_HeatMapper クラス、heatmapメソッドに記述されている – Heatmapでは内部的にpcolormeshが使われてい る。これでは実現が難しいので、rectを1個1個書 く方法に変更。
– argumentとその使われ方を修正。keyword argumentの使い方をもう少し明示的にしてほし い。 – annotationの追加はもともと機能にあった
既存のライブラリで 何かが足りないときにどうするか method pros cons スクラッチで書く • 簡潔、動きがわかり やすい •
ライブラリでいろん な状況を受け入れて いるところを結局自 分で書くことになる 既存のライブラリの一 部をコピペする(適宜 importを修正する) • ライブラリの上手い やり方を取り込むこ とができる • 小さな修正で済む場 合がある • ライブラリの理解が 深まる • いろんな状況を受け 入れる設計になって いるため、考えるこ とが増える(ばっさ り切るのもあり) • ライブラリの理解や ライブラリの思想に 合わせる必要がある
seaborn • Seabornの見た目が綺麗な理由 – sns.set()でset_context, set_style, set_paletteの3点を変更 する。 – context:ラベルや線やその他プロットの要素
– style : axesの色、グリッドの有無やその他美的要素 – palette : カラーパレット https://seaborn.pydata.org/tutorial/aesthetics.html • heatmapではargumentである程度のことはできる。ちゃん とドキュメントの引数の説明くらいは読んでおくのが良い。 • 値から色空間へのマッピングが“組み込まれすぎ”な気がする。 もう少し疎結合であってほしい。(例えば、d3.jsのdomain, rangeを指定してマッピングする)
matplotlib • つらい • matplotlibの概念・構成、plotを作ったり修正するときにど ういう順番に考えていけば良いかがわかる本がほしい • (stackoverflowとかで調べて)plt.xxxでできるのはわかるけ ど、ax.xxxでやりたいんですけど… •
globalに値を突っ込まれる場合が多いような・・・ • 全体的な設定はrcparamsでできる。 • rcparamsと各オブジェクトの操作が対応しているわけではな いので、各ArtistのAPIを見ていくしかない • Artistクラスに属するオブジェクトは、set(dict)とすると、 set_key1(value1), set_key2(value2)という関数がそれぞ れ呼びだされる。 • ちょっとした関数を作るときには、ax_kwsのような引数に dictを入れて、setで属性を設定するのがわかりやすいか