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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
いそひまかん
August 08, 2024
Programming
69
0
Share
データ分析におけるより良いコードの書き方
8月8日(木)に開催したDS集会で発表したスライドです。
いそひまかん
August 08, 2024
More Decks by いそひまかん
See All by いそひまかん
時代は『価値創造』 ~ 最新スキルチェックリストで知る変化 ~
isohimakan
0
29
大阪万博、いつ行けばいいの?
isohimakan
0
44
洋書で輪読会をした話
isohimakan
0
500
勉強会のすすめ
isohimakan
0
390
データを整理する技術
isohimakan
0
100
【数式を恐れない】文系からの統計検定2級合格法
isohimakan
0
75
Other Decks in Programming
See All in Programming
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
220
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
2
1k
LLM Plugin for Node-REDの利用方法と開発について
404background
0
150
AI駆動開発勉強会 広島支部 第一回勉強会 AI駆動開発概要とワークショップ
hayatoshimiu
0
420
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
400
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
270
CSC307 Lecture 17
javiergs
PRO
0
290
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
1k
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
310
OSもどきOS
arkw
0
350
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
400
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
140
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
380
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
350
The Spectacular Lies of Maps
axbom
PRO
1
770
The untapped power of vector embeddings
frankvandijk
2
1.7k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
240
So, you think you're a good person
axbom
PRO
2
2k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
The Curious Case for Waylosing
cassininazir
1
370
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Unsuck your backbone
ammeep
672
58k
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 ご清聴ありがとうございました