全文共3713字,預計學習時長7分鐘html
不少想要在數據科學行業尋找一席之地的人正在慢慢意識到這個問題:在數據科學這個領域應聘,想獲得求職或者面試反饋是基本不可能的。ios
互聯網公司對這些信息守口如瓶有不少緣由。其一,公司給出的每一條拒絕理由均可能招致法律訴訟。其二,不少人並不能很好地消化負面消息,有些人甚至會變得十分偏激。其三,若是要這麼作的話,想一想面試官要花多長時間寫一篇構思精良的反饋給幾十個甚至上百個應聘的人。除此以外,公司並無從中獲得任何好處。git
因而,就出現了一大批困惑、迷茫又想要有所成就的數據科學家。但好消息是:在這個行業,求職被拒的緣由其實也就那麼幾個,針對這些不足還有不少方法來進行彌補。github
不論是技術性仍是非技術性的技能,應聘者所不具有的也正是這些公司迫切需求的,本文旨在對這些問題進行探討。web
緣由1:使用Python語言處理數據科學的技能面試
大部分數據科學模型都基於Python環境。在使用Python語言處理數據結構時,僅有少數工具能將新手和經驗豐富的老手區分開來。若是你期望經過建立特別出衆的項目來吸引僱主的注意,這些工具能迅速拉開你和其餘人的差距。算法
要想促使本身擴充數據科學理論方面的知識,提升實踐能力,能夠在項目中嘗試如下幾個方法:flask
數據挖掘。你應該熟練掌握pandas函數,好比.corr(),scatter_matrix(),.hist() 和.bar()這些語句的使用。你應該時刻注意,利用主成分分析(PCA)原理或者t-SNE的方法將數據可視化,在Python語言中可使用sklearn的PCA和TSNE。微信
特徵選擇。在90%的狀況下,數據集會有不少並不須要的特徵,這些特徵會耗費沒必要要的調試時間,還極可能會出現過擬合的現象。這就要求數據科學家們熟練掌握基本的篩選方法(如scikit-learn庫的VarianceThreshold函數和SelectKBest函數)和稍顯複雜的基於模型的特徵篩選方法(如SelectFromModel)。網絡
使用超參數搜索的方法來尋找最優模型。數據科學家必定得知道GridSearchCV函數是什麼、怎麼用。RandomSearchCV函數同理。要想出類拔萃,你能夠用skopt庫中的BayesSearchCV這個函數來實驗一下,看看怎麼將貝葉斯優化法運用到超參數搜索中。
管道機制。sklearn中的pipeline庫能夠幫助你一站式完成數據預處理、特徵選擇和建模這些步驟。若是你對pipeline不熟悉的話,那就說明你應該增強對建模工具包的學習。
緣由2: 機率論和統計學知識
機率論和統計學方面的知識並不會在數據科學的工做中單獨應用,但它們是全部數據科學工做的基礎。因此,若是你還沒仔細研究過下面這些知識的話,那你就很容易把面試搞砸了。
貝葉斯法則。這是機率論的基礎,在面試中常常出現。你能夠練習一些基礎的貝葉斯「白板」問題,而且閱讀下面這本著做來深入理解這個法則的含義和來由。
傳送門:http://www.med.mcgill.ca/epidemiology/hanley/bios601/GaussianModel/JaynesProbabilityTheory.pdf
基本的機率論知識。你應該知道怎麼回答下文這些問題。
問題傳送門:https://github.com/kojino/120-Data-Science-Interview-Questions/blob/master/probability.md
模型評估。在分類問題中,不少新手習慣以模型的精確度做爲衡量標準,這樣作一般不是一個很好的選擇。你應該習慣使用sklearn的precision_score,recall_score,fl_score,和roc_auc_score等函數並瞭解其背後的理論知識。對於迴歸問題,知道爲何用均方偏差(mean_squared_error)而不用平均絕對偏差(mean_absolute_error)也一樣重要,反之亦然。花時間去弄清列在sklearn官方文件中的全部模型評估標準是很值得的。
官方文件傳送門https://scikit-learn.org/stable/modules/model_evaluation.html
緣由3: 軟件工程小竅門
數據科學家被要求作軟件工程工做的狀況愈來愈多。不少僱主都要求應聘者管理好本身的代碼,在筆記本和草稿上留下清晰的註釋。尤爲是如下幾個方面:
版本控制。你應該知道怎麼使用git系統,而且能用命令行和本身的GitHub庫遠程互動。若是你還不能作到的話,建議你從下面這個教程開始。
教程傳送門:https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners
網頁開發。有些公司更傾向於將數據儲存到本身的網絡應用程序(WebApp)中,或者經過API的形式來訪問數據。所以,熟悉網頁開發的基本知識也很重要,最好的辦法就是學習一些Flask框架的知識。
傳送門:https://www.freecodecamp.org/news/how-to-build-a-web-application-using-flask-and-deploy-it-to-the-cloud-3551c985e492/
網頁抓取。這有點相似與網頁開發:有時候你須要經過從網頁直接抓取數據,將數據採集自動化。BeautifulSoup和scrapy是兩個很是不錯的網頁抓取工具。
清晰簡潔的代碼。學會字符串的使用。不要濫用行間註釋。將長函數拆成短函數,越短越好。10行以上的函數都不該該出如今你的代碼中。每一個函數都應該清晰地命名,function_1不是一個好名字。在給變量命名時遵循Python語言的規則,要像這樣like_this,不能像LikeThis或者這樣likeThis。一個Python模塊(.py格式的文件)中的代碼不要超過400行代碼。每一個模塊都要有一個明確的目的,好比data_processing.py,predict.py)。學習if name == ‘_main_’語句是什麼,爲何重要。使用列表解析(list comprehension)。不要濫用for循環。最後要記得給你的項目附上一個README文件。
緣由4:商業嗅覺
彷佛有不少人認爲只要本身技術夠硬,就能被心儀的公司錄取。其實否則。事實上,公司更青睞能更快帶來效益的員工。
這就意味着求職者不只技術要過關,還要掌握一些其餘的技能。
想別人之所想,並付諸行動。大多數人在沉浸於「數據科學學習模式」時,都會遵循一系列步驟:導入數據、分析數據、清理數據、數據可視化、建模、模型評估。
若是你是在學習一個新的庫或者一項新的技能的話,這些步驟沒什麼很差。但在商業環境中,這種相似於「無人駕駛」的工做模式是一個很差的習慣,由於上班時間的每一分、每一秒,你作的每一件事情都是公司在爲你買單。你得培養本身的商業思惟,思考怎麼妥善安排好本身的時間,爲團隊和公司作出有意義的貢獻。
這裏介紹一個方法,在開始一項數據科學項目以前,先思考一下你要用它達到一個什麼樣的目的,先給本身提幾個問題,這樣你就不會中途被一些所謂的DS工做流(workflow)等無關的工做打亂思路。把這些問題想得越實用越好,當你完成整個項目以後,再回過頭想一想這個項目有沒有幫你認真回答這些問題。
問對問題。公司但願僱用的員工在調整工做模式時可以顧全大局,並思考清楚一些問題。好比,「我如今負責的工做是由於它真的對團隊和公司有實際幫助,仍是由於我能在裏面使用我本身喜歡的算法?」或者「我應該優化哪些重要的商業指標呢?有沒有更好的方法來改善?
將你的成果解釋清楚。管理層須要你來告訴他們哪些商品賣得好,哪些用戶轉而使用了競爭者的產品,你得說出個因此然來。但他們不懂(也不屑於去了解)什麼是查準率/查全率曲線,也不知道你爲了防止模型過擬合作出了多大的努力。因此,用淺顯易懂的方式來讓你的聽衆明白你作出了什麼成果,有什麼影響,這也是數據科學家必須具有的一項技能。
你能夠找一個從高中開始就再也沒上過數學課的朋友,試着一邊作項目,一邊向這位朋友解釋你作的項目是幹什麼用的。友情提示:解釋的時候不能提到任何算法的名字,有關調試超參數的術語也不能提,你使用的語言應該越簡單越好。
除了上面的緣由,還有……
關於求職被拒的緣由,沒有以上述理由更詳盡的了,從筆者目擊的百餘個新手數據科學家求職和麪試指導案例,以及與面試官的溝通結果看來,70%的人是由於上述理由被拒。
但記着,像性格這種定義比較靈活的東西也可能會被算做考量的標準之一。若是你和麪試官不是很合得來,談話進行地不是很順利或者很尷尬,就頗有可能你的硬實力是夠的,可是面試官以爲你的氣場和公司文化不是很符合。不少技術大牛也會因這種
留言 點贊 關注
咱們一塊兒分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 「讀芯術」
添加小編微信:dxsxbb
便可進入微信交流羣