怎樣快糙猛的開始搞Kaggle比賽

2021-07-13 02:18:37 字數 2478 閱讀 8514

最近比較多人問我怎麼快速成為資料科學家可以掙錢多幹活少整天獵頭追跳槽漲一倍。我一般的答案是,沒有這好事,但是搞搞kaggle的比賽有助於快速成為資料科學家,之後掙錢多少看個人。關於kaggle比賽是什麼,限於篇幅關係,請自行谷歌。

我不是專業機器學習的人,但是我見的太多了。對於有一定數理基礎的人來說,快速起步搞起來個kaggle比賽並且獲得不錯的名次,難度並非難於成為王思聰的官方老婆。這裡有三個部分的知識需要強化:

1. 數理基礎。基本上高考數學不錯的理工科學生,學過了大一大二的數學基礎課程(包括微積分、數理統計、數理方程、集合論等),不存在任何問題。如果想測試一下自己,那就看看這個題目:

如果乙個妹子喜歡我可能因為我帥或者我有錢,因為我既帥又有錢的概率是0.1,只是因為我有錢的概率是0.5,問,如果妹子喜歡我只是因為我就是帥的概率是多少?

如果能不費力氣(心算更好)的解答這個問題,基本上這部分知識是足夠了。

2. 機器學習。kaggle比賽多依靠機器來自動處理,機器學習幾乎是必須要的技能。開始搞kaggle需要的機器學習技能並不深入,只是需要對於機器學習的常見幾個方法有基本了解即可,比如說對於乙個問題,你可以認識到它是個classification的問題啊還是regression的問題啊,為什麼機器可以根據你輸入的乙個矩陣來算出來分類結果啊。推薦coursera上andrew ng的機器學習課程  乙個捷徑就是,如果你時間緊的話,只要知道什麼叫做supervised learning並且會自己實現乙個logistic regression,差不多就夠了。

3. coding。限於篇幅只介紹python。我可沒有說什麼欽定python,你問我支援不支援,我用python我當然支援。基本的python程式設計得熟練,如果不熟練可以先學習 learn python the hard way。會了python之後,把scikit-learn的基本教程的classification的部分練練,你會發現在andrew ng課上學的知識,在python裡面實際跑跑簡單資料,能對課上的知識深刻的理解。同時,如果有富餘時間的話,可以順道看看numpy和pandas的一些基礎操作,這些是用來資料處理好工具。

上面三點對乙個數理基礎不錯的人來說,差不多幾周的空餘時間就可以了,如果是在校學生可能更快。

開始搞kaggle的時候,建議選個入門容易的比賽。如何選擇,簡單來說就選個參賽人多的就好了,基本上認真搞搞結果還不會差呢。如果乙個比賽還有自帶tutorial 就更好了。比如我們可以選鐵達尼號的比賽,根據乘客的資訊來判斷他是不是可能在沉船中遇難。位址是 

這個比賽有個很好的tutorial,第一次參加比賽的,可以在比賽過程裡遇到但是不限於如下的問題:

資料怎麼讀取

有missing value怎麼辦

一等艙二等艙之類的feature為什麼得當作categorial feature

等等等等之類的問題。這些問題都是在資料科學領域的實際工作每天都能遇到的。最好的學習方法就是針對這個問題,你看discuss forum和tutorial裡面教你怎麼解決,自己google一下看別人寫好的**怎麼解決這些問題。這階段我建議靠自己的力量搜尋答案而不是去論壇上問一些伸手黨類的sb問題,即使問了也沒關係有人會替你解答的但是這不是慢嘛。

然後你會開始訓練你的模型,又會遇到但是不限於以下的問題

啥叫random forest,咋用,為什麼我調了這幾個引數不靈呢

怎麼我本地結果很好,但是提交名次掉成狗

原來我要cross validation啊(andrew ng的課裡說到的那些看起來很無聊的曲線現在知道是為什麼了吧)

等等之類的。這些問題也是實際工作每天都能遇到的。你就看人家怎麼調你就跟著模仿,然後體會思考一下不同調法對結果有什麼區別。這比在@七月問答 上面問「如果某某情況我的隨機森林的引數該怎麼調才能避免這個情況」之類,對問題領悟的更深刻。折磨過幾波模型調參,你就差不多知道這些模型的套路是什麼了。

然後你開始刷名次,又會遇到但是不限於以下的問題:

怎麼cv的結果挺好但是上去還是比不過呢

那誰說用vowel wabbit對每個分類做優化怎麼搞啊

組合模型這概念我知道,但是實際怎麼組合呢

經過這些,你差不多就知道解決乙個實際的機器學習問題需要做什麼事情了。對的,這就是資料科學家幾乎每天的工作,各部分比重不一樣,但是理解問題、資料清理、模型調參、評估結果這些迴圈反覆的動作,基本上就是資料科學家需要做的。

在這個摸索挨打的過程中,你可以快速學會資料科學的常用工具(numpy scipy pandas scikit等等),也會在別人的帶動下發現新工具(比如@陳天奇怪 的xgboost,vowel wabbit之類的),也會學會新技能(比如深度學習以及如何用深度學習去解決實際的問題)。這個學習速度遠超過於看書看blog,在挨打的過程裡,回想一下從可可老師那裡看到的每天十條資料科學經驗,會不會覺得理解的更深入了呢?

在有實際工業界工作經驗之前,搞搞kaggle比賽幾乎是最有效的跨過」資料科學家「門檻的方法。有了實際工作經驗,搞搞kaggle比賽也能擴大視野,也能把前沿研究的第一手結果用到實際問題裡。大家加油,跳槽就翻倍的高薪工作指日可待(我沒***能高薪啊,不要到時候把我拉出來批判一番)

最後插入廣告,歡迎組隊 你看我搞的很湊合但是排名還行啊對吧。

最猛的留言

踩吧,踩我,我踩 我再踩!我用力踩!我很用力踩!我非常用力踩!我用盡全力去踩!就算鞋子爛也要踩!就算天塌下來我都要踩!要是天真塌下來了繼續踩!要是地面凹了我不管繼續踩!要是踩到我腳骨折我也繼續踩!要是別人見了罵我傻我還是要踩!要是警察敢過來阻止我就更加要踩!要是你看我不爽我沒辦法還要繼續踩!要是你覺...

YY 真的猛公司 敢動騰訊的乳酪

yy 怎樣掙錢?當yy的台子足夠大,其平台上聚攏的人足夠多時,禮品分成 自然是個很成熟的模式 前提在於有足夠多的看客,有足夠優秀的表演者 主持 歌手 mc 原意指主持人,在yy等語音平台房間裡,多指 喊麥者 等團隊。yy經過多年經營已經形成了龐大的使用者群體,完整的表演隊伍,掙錢自然是水到渠成 的事...

學的快還是忘的快

你或許有這樣的困惑,面對層出不窮的技術,學過的東西總是很快就會忘記,這究竟是為什麼?有沒有什麼辦法能改變提公升?本文結合作者自身經歷,總結出一些要點,或許能給你一丟丟的幫助。想要提公升那就得先找到學完就忘的原因,對症下藥療效才會更好。不實踐學東西停留在眼鏡和耳朵層面,眼鏡看完耳朵聽完就完了。絕不輕易...