Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
データ分析におけるより良いコードの書き方
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
いそひまかん
August 08, 2024
Programming
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データ分析におけるより良いコードの書き方
8月8日(木)に開催したDS集会で発表したスライドです。
いそひまかん
August 08, 2024
More Decks by いそひまかん
See All by いそひまかん
データからみる ぶいちゃ民の習性 DS集会の活動ふりかえり -
isohimakan
0
24
時代は『価値創造』 ~ 最新スキルチェックリストで知る変化 ~
isohimakan
0
53
大阪万博、いつ行けばいいの?
isohimakan
0
61
洋書で輪読会をした話
isohimakan
0
660
勉強会のすすめ
isohimakan
0
410
データを整理する技術
isohimakan
0
110
【数式を恐れない】文系からの統計検定2級合格法
isohimakan
0
88
Other Decks in Programming
See All in Programming
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
7.5k
Verilogで学ぶCPU自作入門.pdf
uyuki234
8
4k
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
330
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
630
phperだってパンチカードでコーディングしたい
o0h
PRO
0
220
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.1k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
480
JRuby: Past, Present, and Future
headius
0
220
自サークルのIdPからログアウトできるようになるまで
taiseiue
0
110
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
140
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.4k
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
320
Featured
See All Featured
A Soul's Torment
seathinner
8
3.7k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
Faster Mobile Websites
deanohume
310
32k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
210
Product Roadmaps are Hard
iamctodd
55
13k
Practical Orchestrator
shlominoach
192
12k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
720
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
270
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
GraphQLとの向き合い方2022年版
quramy
50
15k
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 ご清聴ありがとうございました