精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

數據科學家易犯的十大編碼錯誤,你中招了嗎?

開發 開發工具 前端
我是一名高級數據科學家,在 Stackoverflow 的 python 編碼中排前 1%,而且還與眾多(初級)數據科學家一起工作。下文列出了我常見到的 10 個錯誤。

數據科學家比軟件工程師擅長統計,又比統計學家擅長軟件工程。聽起來牛逼轟轟,事實卻是,許多數據科學家有統計學背景,卻沒有什么軟件工程方面的經驗,因此在編碼時容易犯一些簡單的錯誤。作為一名高級數據科學家,本文作者總結了他在工作中常見數據科學家犯的十大錯誤。

數據科學

我是一名高級數據科學家,在 Stackoverflow 的 python 編碼中排前 1%,而且還與眾多(初級)數據科學家一起工作。下文列出了我常見到的 10 個錯誤。

1. 沒有共享代碼中引用的數據

數據科學需要代碼和數據。所以為了讓其他人能夠復現自己做出來的結果,你需要提供代碼中涉及的數據。這看起來很簡單,但許多人會忘記共享代碼中需要的數據。

  1. import pandas as pd 
  2. df1 = pd.read_csv('file-i-dont-have.csv') # fails 
  3. do_stuff(df) 

解決方案:用 d6tpipe 共享代碼中的數據文件,或者將數據文件上傳到 S3/網頁/Google 云等,還可以將數據文件保存到數據庫中,以便收件人檢索文件(但不要將數據添加到 git 中,這一點后面的內容會講到)。

2. 硬編碼其他人無法訪問的路徑

和錯誤 1 類似,如果硬編碼其他人無法訪問的路徑,他們就沒法運行你的代碼,而且在很多地方都必須要手動修改路徑。Booo!

  1. import pandas as pd 
  2. df = pd.read_csv('/path/i-dont/have/data.csv') # fails 
  3. do_stuff(df) 
  4. # or  
  5. impor os 
  6. os.chdir('c:\\Users\\yourname\\desktop\\python') # fails 

解決方案:使用相對路徑、全局路徑配置變量或 d6tpipe,這樣其他人就可以輕易訪問你的數據了。

3. 將數據和代碼混在一起

既然數據科學代碼需要數據,為什么不將代碼和數據存儲在同一個目錄中呢?但你運行代碼時,這個目錄中還會存儲圖像、報告以及其他垃圾文件。亂成一團!

  1. ├── data.csv 
  2. ├── ingest.py 
  3. ├── other-data.csv 
  4. ├── output.png 
  5. ├── report.html 
  6. └── run.py 

解決方案:對目錄進行分類,比如數據、報告、代碼等。參閱 Cookiecutter Data Science 或 d6tflow 項目模板,并用問題 1 中提到的工具存儲以及共享數據。

  • Cookiecutter Data Science:https://drivendata.github.io/cookiecutter-data-science/#directory-structure
  • d6tflow 項目模板:https://github.com/d6t/d6tflow-template

4. 用 Git 提交數據

大多數人現在都會版本控制他們的代碼(如果你沒有這么做那就是另一個問題了!)。在共享數據時,可能很容易將數據文件添加到版本控制中。對一些小文件來說這沒什么問題。但 git 無法優化數據,尤其是對大型文件而言。

  1. git add data.csv 

解決方案:使用問題 1 中提到的工具來存儲和共享數據。如果你真的需要對數據進行版本控制,請參閱 d6tpipe、DVC 和 Git Large File Storage。

  • DVC:https://dvc.org/
  • Git Large File Storage:https://git-lfs.github.com/

5. 寫函數而不是 DAG

數據已經討論得夠多了,接下來我們談談實際的代碼。你在學編程時,首先學的就是函數,數據科學代碼主要由一系列線性運行的函數組成。這會引發一些問題,詳情請參閱「4 Reasons Why Your Machine Learning Code is Probably Bad。」

地址:

https://towardsdatascience.com/4-reasons-why-your-machine-learning-code-is-probably-bad-c291752e4953

  1. def process_data(data, parameter): 
  2.     data = do_stuff(data) 
  3.     data.to_pickle('data.pkl') 
  4. data = pd.read_csv('data.csv') 
  5. process_data(data) 
  6. df_train = pd.read_pickle(df_train) 
  7. model = sklearn.svm.SVC() 
  8. model.fit(df_train.iloc[:,:-1], df_train['y']) 

解決方案:與其用線性鏈接函數,不如寫一組有依賴關系的任務。可以用 d6tflow 或者 airflow。

6. 寫 for 循環

和函數一樣,for 循環也是你在學代碼時***學的。這種語句易于理解,但運行很慢且過于冗長,這種情況通常表示你不知道用什么替代向量化。

  1. x = range(10) 
  2. avg = sum(x)/len(x); std = math.sqrt(sum((i-avg)**2 for i in x)/len(x)); 
  3. zscore = [(i-avg)/std for x] 
  4. # should be: scipy.stats.zscore(x) 
  5. # or 
  6. groupavg = [] 
  7. for i in df['g'].unique(): 
  8.     dfdfg = df[df[g']==i] 
  9.     groupavg.append(dfg['g'].mean()) 
  10. # should be: df.groupby('g').mean() 

解決方案:NumPy、SciPy 和 pandas 都有向量化函數,它們可以處理大部分你覺得需要用 for 循環解決的問題。

7. 沒有寫單元測試

隨著數據、參數或者用戶輸入的改變,你的代碼可能會中斷,而你有時候可能沒注意到這一點。這就會導致錯誤的輸出,如果有人根據你的輸出做決策的話,那么錯誤的數據就會導致錯誤的決策!

解決方案:用 assert 語句檢查數據質量。Pandas 也有相同的測試,d6tstack 可以檢查數據的獲取,d6tjoin 可以檢查數據的連接。檢查數據的示例代碼如下:

  • d6tstack:https://github.com/d6t/d6tstack
  • d6tjoin:https://github.com/d6t/d6tjoin/blob/master/examples-prejoin.ipynb
  1. assert df['id'].unique().shape[0] == len(ids) # have data for all ids? 
  2. assert df.isna().sum()<0.9 # catch missing values 
  3. assert df.groupby(['g','date']).size().max() ==1 # no duplicate values/date? 
  4. assert d6tjoin.utils.PreJoin([df1,df2],['id','date']).is_all_matched() # all ids matched? 

8. 沒有注釋代碼

我明白你急著做分析。于是你把代碼拼湊起來得到結果,把結果交給你的客戶或者老板。一周之后他們找到你,問你「你能改掉 xyz 嗎?」或「你能更新一下結果嗎?」。然后你和自己的代碼大眼瞪小眼,既不記得你為什么要這么做,也不記得你做過什么。現在想象一下其他人運行這段代碼時的心情。

  1. def some_complicated_function(data): 
  2.     datadata = data[data['column']!='wrong'] 
  3.     datadata = data.groupby('date').apply(lambda x: complicated_stuff(x)) 
  4.     datadata = data[data['value']<0.9
  5.     return data 

解決方案:即便你已經完成了分析,也要花時間注釋一下你做過什么。你會感謝自己的,當然其他人會更加感謝你!這樣你看起來會更專業!

9. 把數據存成 csv 或 pickle

說回數據,畢竟我們討論的是數據科學。就像函數和 for 循環一樣,CSV 和 pickle 文件也很常用,但它們其實并沒有那么好。CSV 不包含模式(schema),所以每個人都必須重新解析數字和日期。Pickle 可以解決這一點,但只能用在 Python 中,而且不能壓縮。這兩種格式都不適合存儲大型數據集。

  1. def process_data(data, parameter): 
  2.     data = do_stuff(data) 
  3.     data.to_pickle('data.pkl') 
  4. data = pd.read_csv('data.csv') 
  5. process_data(data) 
  6. df_train = pd.read_pickle(df_train) 

解決方案:用 parquet 或者其他帶有數據模式的二進制數據格式,***還能壓縮數據。d6tflow 可以自動將數據輸出存儲為 parquet,這樣你就不用解決這個問題了。

parquet:https://github.com/dask/fastparquet

10. 使用 Jupyter notebook

這個結論還有一些爭議——Jupyter notebook 就像 CSV 一樣常用。很多人都會用到它們。但這并不能讓它們變得更好。Jupyter notebook 助長了上面提到的許多不好的軟件工程習慣,特別是:

  • 你會把所有文件存在一個目錄中;
  • 你寫的代碼是自上而下運行的,而不是 DAG;
  • 你不會模塊化你的代碼;
  • 代碼難以調試;
  • 代碼和輸出會混合在一個文件中;
  • 不能很好地進行版本控制。

Jupyter notebook 很容易上手,但規模太小。

解決方案:用 pycharm 和/或 spyder。

原文鏈接:

https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Ftowardsdatascience.com%2Ftop-10-coding-mistakes-made-by-data-scientists-bb5bc82faaee

【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】 

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2018-05-28 14:55:56

職業錯誤程序員

2019-04-09 09:00:01

數據科學代碼編寫

2018-08-10 08:35:49

2020-08-03 10:37:01

Python編程語言工具

2021-01-07 08:12:08

自學編程學習

2009-01-05 18:53:53

服務器管理

2009-08-26 09:44:18

2018-07-05 16:40:07

區塊鏈數字貨幣比特幣

2020-02-24 00:08:11

疫情數據科學家數據科學

2020-04-09 15:32:20

數據科學AutoML代智能

2021-08-16 14:00:27

手機科技功能

2024-04-26 00:15:51

2017-08-04 15:53:10

大數據真偽數據科學家

2010-09-02 13:28:55

CSS

2019-01-08 16:25:42

數據科學機器學習神經網絡

2018-12-24 08:37:44

數據科學家數據模型

2012-12-06 15:36:55

CIO

2012-12-26 10:51:20

數據科學家

2018-10-25 10:36:50

物聯網誤區IOT

2019-07-25 08:08:33

SQLJavaMySQL
點贊
收藏

51CTO技術棧公眾號

亚洲黄页网在线观看| 亚洲黄色av一区| 国产成人精品一区二区在线| 亚洲精品一区二区三区影院忠贞| 亚洲ww精品| 亚洲午夜视频在线| 日本在线观看一区二区三区| 国产伦理一区二区| 在线综合视频| 久久精品亚洲精品| 欧美大片免费播放器| 成人国产精品一区二区网站| 亚洲成av人影院在线观看网| 先锋影音亚洲资源| 欧洲av在线播放| 日本中文字幕不卡| 欧美精品久久一区二区| 特级西西www444人体聚色| 亚洲综合影院| 91成人免费在线视频| 中国女人做爰视频| 91在线视频免费看| av亚洲精华国产精华| 成人国产精品免费视频| 五月婷婷色丁香| 欧美暴力喷水在线| 色偷偷综合社区| 右手影院亚洲欧美| 岛国精品一区| 欧美日韩精品一区二区三区四区| 玩弄中年熟妇正在播放| 97超碰资源站在线观看| 国产精品嫩草99a| 免费在线一区二区| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 精品伊人久久久| 欧美日韩二区三区| 欧美三级理论片| 中文字幕资源网在线观看免费| 亚洲一区二区三区四区在线免费观看| 亚洲精品在线免费看| 久久精品a一级国产免视看成人| 高清视频一区二区| 91国产在线免费观看| 一级黄色免费看| 日本大胆欧美人术艺术动态| 欧美一区深夜视频| 日本一级片免费看| 日韩午夜av| 97视频在线观看免费高清完整版在线观看| 亚洲成人生活片| 亚洲激情五月| 久久久成人精品| 日本午夜在线观看| 91九色精品| 久久精品视频导航| 我要看黄色一级片| 你懂的视频一区二区| 久久久97精品| 朝桐光av在线| 日韩国产欧美一区二区| 最近的2019中文字幕免费一页| 欧美人妻一区二区三区| 精品国产一区二区三区久久久蜜臀 | 国内精品伊人久久| 日本少妇吞精囗交| 国产视频一区免费看| 欧美在线激情网| 免费看一级视频| 青青草精品视频| 91沈先生作品| 欧洲精品久久一区二区| 91在线观看免费视频| 欧美日韩在线精品| 在线观看免费版| 亚洲精品日韩综合观看成人91| 日本一级黄视频| 高潮在线视频| 91国偷自产一区二区三区成为亚洲经典 | 国产欧美在线| 国产精品91视频| 一区二区久久精品66国产精品| 国内久久精品视频| 国产亚洲欧美另类一区二区三区| 五月婷婷伊人网| 欧美国产丝袜视频| 91网站在线观看免费| 色多多在线观看| 欧美日韩激情一区| 日本亚洲一区二区三区| 精品自拍偷拍| 日韩在线视频一区| 久久久综合久久| 丝袜a∨在线一区二区三区不卡| 国产欧美一区二区三区久久| 风流老熟女一区二区三区| 久久精品亚洲麻豆av一区二区| 亚洲一一在线| 日韩伦理在线一区| 91麻豆精品国产91| 瑟瑟视频在线观看| 综合久久婷婷| 国产精品 欧美在线| 国产欧美日韩成人| 久久这里只有精品首页| 干日本少妇视频| 日韩精品影片| 精品欧美黑人一区二区三区| 一级特黄曰皮片视频| 韩日成人在线| 国产主播欧美精品| 免费一级毛片在线观看| 亚洲精品成人精品456| 日本一极黄色片| 国产精品45p| 久久韩剧网电视剧| 无码人妻av一区二区三区波多野 | 亚洲激情网址| 成人有码在线播放| 国产无套粉嫩白浆在线2022年| 亚洲一区二区三区四区在线免费观看 | 天天看片中文字幕| 视频精品一区二区| 黄色一区三区| 污网站在线免费看| 56国语精品自产拍在线观看| 亚洲AV无码国产成人久久| 欧美午夜a级限制福利片| 国产有码一区二区| av在线免费观看网| 色婷婷久久综合| 久久久久国产精品无码免费看| 欧美精品啪啪| 亚洲在线一区二区| 黄网站app在线观看| 欧美视频一二三区| 摸摸摸bbb毛毛毛片| 美女国产精品| 免费h精品视频在线播放| www.超碰在线| 亚洲韩国欧洲国产日产av| 波多野结衣亚洲色图| 韩国三级电影一区二区| 中文字幕欧美人与畜| 台湾天天综合人成在线| 中文欧美日本在线资源| 一级黄色在线观看| 欧美激情在线看| 午夜欧美福利视频| 神马久久一区二区三区| 国产999精品久久久| 免费国产在线观看| 91福利国产成人精品照片| 免费黄色在线视频| 男男成人高潮片免费网站| 日韩三级在线播放| 国产成人免费精品| 久久韩国免费视频| 亚洲第九十九页| 午夜私人影院久久久久| 亚洲天堂资源在线| 久久精品国产清高在天天线| 三区精品视频观看| 欧美黄色a视频| 大胆人体色综合| 日韩在线一区二区三区四区| 精品国产31久久久久久| 偷拍夫妻性生活| 蜜臀av在线播放一区二区三区| 亚洲人成人77777线观看| 国产精品一区二区三区www| 欧美日韩国产成人在线| 色哟哟中文字幕| 色哟哟一区二区在线观看 | 成人情趣视频网站| 国产日产亚洲精品| 手机av免费在线| 日韩精品视频免费在线观看| 91porny九色| 成人欧美一区二区三区| 亚洲av无码成人精品区| 久久成人免费| 日韩视频在线观看视频| 福利电影一区| 国产精品老牛影院在线观看| 污视频网站在线免费| 亚洲欧美999| 国产男女无套免费网站| 精品av在线播放| 九一在线免费观看| 成人久久18免费网站麻豆| 日本一极黄色片| 欧美日韩精品| 日韩精品第一页| 白嫩白嫩国产精品| 国产精品久久一区| 波多野结衣精品| 最新国产精品亚洲| 四虎电影院在线观看| 欧美亚洲精品一区| 日韩伦人妻无码| 国产精品国产三级国产普通话蜜臀 | 亚洲欧洲午夜一线一品| av一区二区三| 欧美性受极品xxxx喷水| 国产第一页在线播放| 欧美激情在线看| jizz日本免费| 国产精品亚洲专一区二区三区 | 国产盗摄视频在线观看| 日韩欧美美女在线观看| 91福利视频导航| 国产一区二区主播在线| 午夜精品久久久久久99热| 免费网站免费进入在线| 亚洲色图欧美制服丝袜另类第一页| 国产熟女一区二区丰满| 在线免费观看成人短视频| 男人天堂中文字幕| 又紧又大又爽精品一区二区| 中文字幕第24页| 久久一夜天堂av一区二区三区| 国产精品视频久| 国产精品久久久久久99| 亚洲人成网站影音先锋播放| 亚洲欧美综合久久久| 久久久久高清| 99精品国产一区二区三区2021| 国产玖玖精品视频| 亚洲承认视频| 欧美综合在线观看| av在线资源| 欧美国产日本高清在线 | 国产一级特黄a大片免费| 国产日韩一区| 欧美三级在线观看视频| 在线不卡亚洲| 国产91沈先生在线播放| 正在播放日韩欧美一页| 青青草原网站在线观看| 66视频精品| 国产福利片一区二区| 国产精品99一区二区三| 欧美一级免费在线观看| 婷婷综合社区| 久久久久久久久网| 一区二区影视| www.一区二区.com| 亚洲国产第一| 国产精品视频一区二区三区四区五区| 亚洲美女色禁图| 亚洲国产精品久久久久婷蜜芽| 国产精品日本| 亚洲精品一二三四五区| 免费一级欧美片在线观看| 91国内在线播放| 久久99国内精品| 中文字幕在线播放一区二区| 国产成人精品免费| 性色av蜜臀av浪潮av老女人| 91免费看片在线观看| 欧美熟妇激情一区二区三区| 亚洲国产高清在线观看视频| 蜜桃av免费观看| 亚洲精品自拍动漫在线| 久久国产免费观看| 精品久久久国产| 伊人久久中文字幕| 在线成人av网站| 亚洲爱情岛论坛永久| 亚洲成人网在线观看| 日本午夜在线| 中文字幕久久久| h片在线观看网站| 久久久久久久999精品视频| 美女91在线看| 国产精品啪视频| 一本色道69色精品综合久久| 精品国产免费一区二区三区 | 人人玩人人添人人澡欧美| 亚洲一区二区日本| 国产伦精品一区二区三区免费优势 | 国产精品视频在线观看免费 | 成人p站proumb入口| 欧美wwwxxxx| 小h片在线观看| 国产啪精品视频| 精品亚洲免a| 成年人黄色在线观看| 亚洲麻豆视频| 最新免费av网址| 97久久超碰精品国产| 免费观看特级毛片| 午夜精品在线视频一区| 亚洲一区二区三区高清视频| 亚洲成人黄色在线| 婷婷成人激情| 68精品久久久久久欧美| 中文字幕成人| 欧美一区免费视频| 国内自拍一区| 天堂在线中文在线| 国产亚洲精品超碰| 日韩大片免费在线观看| 欧美酷刑日本凌虐凌虐| 日本亚洲欧美| 久久久免费观看| 涩涩涩久久久成人精品| 免费看国产精品一二区视频| 欧美激情在线| 最新免费av网址| 国产欧美一区二区精品秋霞影院| 国产性70yerg老太| 91精品国产综合久久久蜜臀粉嫩| 你懂的在线免费观看| 欧美激情视频网站| 曰本一区二区| 色噜噜狠狠色综合网| 日韩一级大片| 欧美激情一区二区三区p站| 日韩一区中文字幕| 中文字幕 国产精品| 亚洲精品综合精品自拍| 91白丝在线| 国产福利久久精品| 亚洲精品网址| 男生操女生视频在线观看 | 久久久久国产精品夜夜夜夜夜| 欧美人xxxx| 99青草视频在线播放视| 国产国语videosex另类| 宅男在线一区| 国产精品50p| 99视频一区二区三区| 精品无码人妻一区二区三区品| 欧美一级夜夜爽| 精品176二区| 亚洲自拍偷拍在线| 亚洲精品成人影院| 天天干天天曰天天操| 最新高清无码专区| 999免费视频| 欧美成人午夜激情| 亚洲精品在线播放| 少妇一晚三次一区二区三区| 国产99久久久久| 国产无遮挡aaa片爽爽| 亚洲国产毛片完整版| 日韩欧美精品一区二区三区| 免费精品视频一区| 日本中文一区二区三区| 久草福利资源在线| 日韩一区二区三区观看| 日本三级在线观看网站| 国产伦精品一区二区三区视频黑人| 亚洲激情影院| 日本黄色片在线播放| 日韩欧美一区二区在线| 东热在线免费视频| 国产有码在线一区二区视频| 你懂的网址国产 欧美| 国产精品成人99一区无码| 欧美色另类天堂2015| av国产在线观看| 91丝袜美腿美女视频网站| 欧美精品日本| 少妇真人直播免费视频| 欧美日韩视频在线第一区| 成人在线观看亚洲| 国产精选一区二区| 噜噜噜在线观看免费视频日韩| 国产精品一区二区亚洲| 日韩一区二区精品葵司在线| a国产在线视频| 日韩aⅴ视频一区二区三区| 精品一区二区影视| 国产真人真事毛片| 亚洲欧洲日产国码av系列天堂| 亚洲ww精品| www.浪潮av.com| 国产精品福利影院| 人妻一区二区三区免费| 国产精品久久久久久久天堂| 你懂的成人av| 蜜桃无码一区二区三区| 欧美一卡在线观看| 亚洲人成午夜免电影费观看| 自拍偷拍一区二区三区| 99久久精品免费精品国产| 中文字幕第2页| 久久久久一本一区二区青青蜜月| 国内精品伊人久久久| www日本在线观看| 一本一道久久a久久精品| 国产在线一区二区视频| 欧美黑人xxxxx| 国产91精品在线观看| 国产精品51麻豆cm传媒| 97精品国产91久久久久久| 久久一区二区三区喷水|