中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

構(gòu)建端到端數(shù)據(jù)科學(xué)項(xiàng)目,從我的Data Scientist Ideal Profiles項(xiàng)目中學(xué)習(xí)

2019-06-11    來源:raincent

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

 

Joseph Barrientos 拍照于 Unsplash

(鏈接:https://unsplash.com/photos/Ji_G7Bu1MoM?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText )

人們常說,數(shù)據(jù)科學(xué)家的主要工作不是實(shí)際的分析和建模,而是數(shù)據(jù)的整理和清理部分。因此,涉及這些階段的全周期數(shù)據(jù)科學(xué)項(xiàng)目將更有價(jià)值,因?yàn)樗鼈冏C明了作者獨(dú)立處理真實(shí)數(shù)據(jù)的能力,而不是使用給定的干凈數(shù)據(jù)集。

完全理解端到端數(shù)據(jù)科學(xué)項(xiàng)目的價(jià)值,我一直想建立一個,但直到現(xiàn)在還不能建立。

我最近完成了我的Ideal Profiles項(xiàng)目(鏈接:https://towardsdatascience.com/what-does-an-ideal-data-scientists-profile-look-like-7d7bd78ff7ab )。因?yàn)檫@是一個涉及許多運(yùn)動部件的重大項(xiàng)目,所以我想記錄過程和經(jīng)驗(yàn)教訓(xùn),這是一個進(jìn)一步的學(xué)習(xí)機(jī)會(受到威廉·科赫森(鏈接:https://medium.com/@williamkoehrsen )關(guān)于數(shù)據(jù)科學(xué)寫作價(jià)值的偉大文章的啟發(fā))。

各階段

我認(rèn)為,全周期數(shù)據(jù)科學(xué)項(xiàng)目應(yīng)包括以下幾個階段:

 

 

在Kaggle項(xiàng)目上工作的最大的爭論是它只專注于第二階段。因此,在這個項(xiàng)目中,我將確保涵蓋所有三個階段。

在第一階段,我做了網(wǎng)絡(luò)抓取來獲取數(shù)據(jù),由于數(shù)據(jù)是臟的,所以我不得不整理數(shù)據(jù)進(jìn)行分析。然后我做了各種數(shù)據(jù)可視化,并在第二階段進(jìn)行了分析。最后,我寫了一些文章來發(fā)表結(jié)果并將這個項(xiàng)目投入生產(chǎn)。

當(dāng)然,我可以通過包含一個機(jī)器學(xué)習(xí)組件使這個項(xiàng)目更加完整,例如,使用自然語言處理根據(jù)內(nèi)容對工作崗位進(jìn)行分類,但這將顯著延遲項(xiàng)目完成時(shí)間,這將使我們進(jìn)入下一個階段:

迭代思維

對于一個給定的項(xiàng)目,可能有無限多的事情要處理,但實(shí)際上,我們只有有限的時(shí)間。為了協(xié)調(diào)這兩個競爭因素,我們需要有紀(jì)律。

對我來說,“迭代思維”確實(shí)有幫助 —— 看,羅馬不是一天建成的,所以讓我們先構(gòu)造一些有用的東西,然后將其交付,然后我們總是可以回來改進(jìn)更多的特征。另一方面,這也意味著我們需要能夠處理“不完美”,而不是專注于細(xì)節(jié)。

考慮到這一理念,我能夠延遲一些非常誘人的特征,并將它們放在項(xiàng)目文檔的待辦事項(xiàng)部分(鏈接:https://github.com/georgeliu1998/ideal_profiles#to-dos )。其中之一是使用更大的來自美國而不是加拿大的網(wǎng)站上的數(shù)據(jù)集。

模塊化

鑒于項(xiàng)目的端到端的特性,我們有很多不同方面的工作:網(wǎng)絡(luò)抓取,數(shù)據(jù)預(yù)處理,繪圖……如果我們把所有的代碼在一個Jupyter Notebook,它會過于大且復(fù)雜而不能處理。于是我決定使用Python腳本和一個中心Jupyter Notebook解決這個問題。

我將支持函數(shù)分為三大類,并將它們封裝在三個相應(yīng)的腳本中:

scrape_data.py-包含Web抓取所需的函數(shù),如“get_soup()”和“get_urls()”。
process_text.py-包含文本處理和清除函數(shù),如“tokenize_text()”和“check_freq()”
helper.py-包含文件輸入輸出和繪圖函數(shù),例如“plot_skill()”

這樣,我就可以保持一個超輕且有組織的中心Notebook。然后根據(jù)需要從Notebook中導(dǎo)入和調(diào)用函數(shù),如下所示:

from scrape_data import *
from process_text import *
from helper import *

可復(fù)制性

由于我在網(wǎng)上發(fā)現(xiàn)的許多抓取腳本都不起作用,我決定確保我的項(xiàng)目是可復(fù)制的。除了可靠的代碼之外,一個健壯的README文件和一個完整的環(huán)境依賴文件也是解決方案的一部分。

readme.md-我努力確保捕獲所有相關(guān)細(xì)節(jié),特別是如何設(shè)置環(huán)境和如何使用腳本。

env_Ideal_profiles.yaml-通過將所有依賴項(xiàng)凍結(jié)到此文件中,我確保用戶可以完全重新創(chuàng)建我使用的同一Anaconda python環(huán)境。此處提供更多信息(鏈接:https://conda.io/docs/user-guide/tasks/manage-environments.html )。

代碼最優(yōu)練習(xí)

良好的編碼實(shí)踐很重要!特別是,我發(fā)現(xiàn)以下實(shí)踐在編寫更大更復(fù)雜的項(xiàng)目時(shí)非常有用:

具有有意義的描述性變量/函數(shù)名

提供詳細(xì)和結(jié)構(gòu)化的文檔字符串(鏈接:https://stackoverflow.com/questions/3898572/what-is-the-standard-python-docstring-format)

確保使用python“try except”塊處理異常

當(dāng)你的項(xiàng)目是一個30行的Jupyter Notebook時(shí),這些事情可能看起來微不足道,但是當(dāng)你處理一個需要數(shù)百行代碼的主要項(xiàng)目時(shí),這些事情可能真的很關(guān)鍵!

厲害了Matplotlib

我過去只對基本的Matplotlib技巧感到舒服。然而,對于這個項(xiàng)目,我不僅需要將幾個圖組合成一個,而且還必須進(jìn)行詳細(xì)的自定義,例如旋轉(zhuǎn)軸標(biāo)記標(biāo)簽……在這一點(diǎn)上,基本的Matplotlib技能將不再足夠。

 

 

事實(shí)證明這是一個學(xué)習(xí)Matplotlib的好機(jī)會。一旦我知道它能做什么,我發(fā)現(xiàn)它不可能回頭,僅僅是因?yàn)閙atplotlib真的很強(qiáng)大!它的面向?qū)ο蠓椒ㄔ试S您修改幾乎所有內(nèi)容…請查看以下教程以了解:

Matplotlib教程:Python繪圖(鏈接:https://www.datacamp.com/community/tutorials/matplotlib-tutorial-python )

高效利用Matplotlib(鏈接:http://pbpython.com/effective-matplotlib.html )

使用Matplotlib繪制Python(指南)(鏈接:https://realpython.com/blog/python/python-matplotlib-guide/ )

原文鏈接:https://towardsdatascience.com/building-an-end-to-end-data-science-project-28e853c0cae3

標(biāo)簽: [db:TAGG]

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:IDC研究:區(qū)塊鏈技術(shù)落地的5大金融場景

下一篇:新手如何發(fā)布第一個Python項(xiàng)目開源包?這里有一份詳細(xì)指南