Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データ分析におけるより良いコードの書き方
Search
いそひまかん
August 08, 2024
Programming
0
58
データ分析におけるより良いコードの書き方
8月8日(木)に開催したDS集会で発表したスライドです。
いそひまかん
August 08, 2024
Tweet
Share
More Decks by いそひまかん
See All by いそひまかん
時代は『価値創造』 ~ 最新スキルチェックリストで知る変化 ~
isohimakan
0
6
大阪万博、いつ行けばいいの?
isohimakan
0
29
洋書で輪読会をした話
isohimakan
0
450
勉強会のすすめ
isohimakan
0
360
データを整理する技術
isohimakan
0
88
【数式を恐れない】文系からの統計検定2級合格法
isohimakan
0
63
Other Decks in Programming
See All in Programming
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
200
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
140
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
130
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
170
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
130
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
150
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
170
開発に寄りそう自動テストの実現
goyoki
2
1.7k
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
Deno Tunnel を使ってみた話
kamekyame
0
290
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
920
Cell-Based Architecture
larchanjo
0
160
Featured
See All Featured
New Earth Scene 8
popppiees
0
1.3k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
370
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Highjacked: Video Game Concept Design
rkendrick25
PRO
0
260
The Spectacular Lies of Maps
axbom
PRO
1
410
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
270
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
140
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
47k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
220
Transcript
Copyright 2024 @Isokan_DD データ分析におけるより良いコードの書き方 Made by いそひまかん 2024/08/08
2 Copyright 2023 @Isokan_DD 2 Copyright 2023 @Isokan_DD はじめに ⽬的
- より分かりやすく、理解しやすいコードを書く重要性と意識を芽⽣えさせる 対象者 - データサイエンスに興味ある初学者、学⽣ - 駆け出しのアナリスト、DS このLTで取り扱わないもの - パフォーマンス向上の観点からのコーディング 注意 現時点での考えのまとめであり、ベストプラクティスではありません。 より良い実践⽅法があれば、学ばさせていただきたいと思います。
3 Copyright 2023 @Isokan_DD 3 Copyright 2023 @Isokan_DD ⾃⼰紹介 •
VRCでは ‧DS集会運営主催 ‧たまにLT登壇します • 普段のお仕事 ‧データサイエンティスト/WEBエンジニア ‧通販/⾦融業界向けへのデータ解析 ‧機械学習系プロダクト開発 • 趣味 ‧ご飯巡り/飯テロ ‧ホラーワールド巡り おつきみ / Otsukimi ©HYPERSPACE ©GBXD
4 Copyright 2023 @Isokan_DD 4 Copyright 2023 @Isokan_DD こんな悩みを経験した事はありませんか?
- コードが汚くて、何をしたか分からない(理解に時間がかかる) - しばらくぶりにnotebookを実行したら動かない - 引継ぎで苦労
5 Copyright 2023 @Isokan_DD 5 Copyright 2023 @Isokan_DD 本当にあった大変だった話
- 半年毎に報告する定期の分析タスクで弊害が - 1回目は保守性よりも示唆だしやスピード優先で解析 - 分析コードもデータも整理されていなかった - 2回目の案件で3か月間の納期でコードや集計条件の解読に1か月もか けてしまった - 引継ぎするもドキュメントの整理で手間取る事に… - 1からやり直した方が早かったのでは?
6 Copyright 2023 @Isokan_DD 6 Copyright 2023 @Isokan_DD 背景 -
保守性を意識した分かりやすいコードを書く事は、以下の背景がある分析業 務において優先度を上げにくい - 再利用性より分析からのスピード優先 - データ探索や分析要件の再利用する機会がない - そんな時、ある記事を発見 - オブジェクト指向に学ぶデータサイエンスのコーディング術 出所:オブジェクト指向に学ぶデータサイエンスのコーディング術 (https://zenn.dev/zenkigen_tech/articles/f15988969d9c3f)
7 Copyright 2023 @Isokan_DD 7 Copyright 2023 @Isokan_DD 背景 -
分かりやすいコード書く方法として挙げられる「リーダブル・コード」 - 全てを取り入れることは難しいが、初心者でも取り入れやすいノウハウがある - 今回は個人的におすすめできるノウハウを紹介する 出所:amazonから(https://x.gd/34PHs)
8 Copyright 2023 @Isokan_DD 8 Copyright 2023 @Isokan_DD - コード実行時に影響を与えないが、入出力に期待される型を把握する目的で
有効 1.型を適用する
9 Copyright 2023 @Isokan_DD 9 Copyright 2023 @Isokan_DD どんなデータが入るか分からない分析 業務では、ソフトウェア開発と比べて型
の恩恵は限定的 1.型を適用する
10 Copyright 2023 @Isokan_DD 10 Copyright 2023 @Isokan_DD コメントを書くことは実現したい要件の整理につながる 実現したい分析内容を説明するように簡潔にコメントを書くことで、
- 分析要件の見落としが見つかる - 上手く書けない(説明できない)時は詳細が明確になっていない - 集計条件が雑 - 異常系の考慮漏れ 2. コメントを書く
11 Copyright 2023 @Isokan_DD 11 Copyright 2023 @Isokan_DD 書くべきでないコメント
- コードを読めばすぐわかる内容 - 代名詞が含まれている 書くべきコメント - コードの意図 - 全体像が分かるもの 2. コメントを書く
12 Copyright 2023 @Isokan_DD 12 Copyright 2023 @Isokan_DD - 単体テストを書く
- カバレッジ100%を目指すのではなく、 入力に対して100%動くか怪しい部分に導入す る - 慣れたらpytestなどのテストツールを導入する もあり - フォルダの構成を整理する その他
13 Copyright 2023 @Isokan_DD 13 Copyright 2023 @Isokan_DD 参考文献 -
Dustin Boswell, Trevor Foucher,リーダブルコード, オライリー・ジャ パン - オブジェクト指向に学ぶデータサイエンスのコーディング術 (https://zenn.dev/zenkigen_tech/articles/f15988969d9c3f) - 高橋威知郎, 白石卓也, 清水景絵, データサイエンティストの秘密ノー ト, SBクリエイティブ
Copyright 2023 @Isokan_DD ご清聴ありがとうございました