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