推 abc2090614: ....這算大哉問等級的問題 (拉椅子等回答04/14 05:33
→ abc2090614: 我通常是參數會存到另一個檔裡04/14 05:34
→ abc2090614: /data 部分丟進.gitignore 會備份但盡量不動04/14 05:35
→ abc2090614: 在訓練模型時不能一直用新data 不然會變多頭馬車04/14 05:36
→ abc2090614: 取什麼data或一些business logic寫進.md或test cases04/14 05:37
→ abc2090614: 之前有試過用GNU make 不過不太順手04/14 05:38
→ abc2090614: 最近發現這個但還沒試過, 他的模板大致不錯, 有些04/14 05:39
→ abc2090614: 我不太同意就是: 04/14 05:39
→ abc2090614: google搜 cookie cutter data science04/14 05:39
我的作法是
開兩個repository
假設專案叫xyz
那我會開一個 xyz-explore 另一個 xyz-prod
xyz-explore裡面可能很亂 不會完全照 software version control 的方式作
但只要作出比目前存在 xyz-prod 裡好上一截的東西
就把 explore 裡的pipeline和參數搬過去
連同 sample data, 說明檔之類的一起弄進去
我覺得 git 是軟體界的東西 對軟體工程師的工作流程幫助很大
因為建軟體時有 spec 可以照著走
但作資料科學時常常前進一步後退兩步
或是今天新抓的data source 寫的 script 試的方法 明天結果跑出來跟垃圾一樣
如果 xyz-prod 裡的檔夠乾淨 通常老闆和其他人容易看懂 都ok
xyz-explore 裡面目前我還沒想到一個好的整理法
特別是常常在探索時寫的一堆 .sql .hql 真的不知道怎麼歸類
通常我都是一邊寫一邊建 .md 像寫日記一樣
回頭只要能找到自己當時為什麼會寫這段code 抓這個data
或這個不等式是因為什麼business logic 在幹嘛就行
xyz-prod 就盡量照著軟體界的 version control 走
經理和老闆想看的是 prod 不是 explore
把 explore 跟 production 工作流程分開的想法我是從這看來的
https://edwinth.github.io/blog/workflow/
之前有對這個想法寫過一篇 blog post 僅供參考
http://changhsinlee.com/exploration-product-workflow/
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 68.71.180.136
※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1523668790.A.95B.html
推 littleyuan: 謝謝你 真的很感謝 我會試著用這個方式做看看 我在ML 04/14 10:08
→ littleyuan: 和programming界都很菜鳥還有很多在摸索 就連git也是 04/14 10:08
→ littleyuan: 今年才開始使用 我會繼續精進的 04/14 10:08