關於kaggle如何下手

2021-07-12 01:11:59 字數 2587 閱讀 3765

原文標題《怎樣快糙猛的開始搞kaggle比賽》

本文寫給想開始搞kaggle比賽又害怕無從下手的小朋友們。

最近比較多人問我怎麼快速成為資料科學家可以掙錢多幹活少整天獵頭追跳槽漲一倍。我一般的答案是,沒有這好事,但是搞搞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比賽也能擴大視野,也能把前沿研究的第一手結果用到實際問題裡。大家加油,跳槽就翻倍的高薪工作指日可待(我沒***能高薪啊,不要到時候把我拉出來批判一番)

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

kaggle競賽中關於預處理的知識

已知一批資料,希望利用這些資料做 或分類,應該從 開始入手?直接把資料送給某個模型做訓練嗎?no 下面給出了一些需要在訓練之前考慮的事情 三種常用的方法 直接用均值填充 分析一下屬性的含義,做針對性的轉換 定義乙個新的二值屬性,表示這一項是否缺失方差較低的特徵帶來的資訊量不大,可以考慮利用cv判斷其...

如何防止男人對閨蜜下手

為什麼異性知己更受青睞?2005年,零點公司曾對北京 上海 廣州 武漢 成都 瀋陽和西安7個城市的1888名18 60歲常住居民進行了一項調查顯示 異性友誼越來越受到重視。73.7 的男性和77.1 的女性認為,異性友誼和同性友誼一樣重要,甚至分別有4.4 的男性和女性都認為異性友誼更為重要。家裡有...

如何在Debian下手工安裝中文字型

對於使用 x window 的使用者而言,擁有乙個漂亮的介面是非常重要的,只有這樣,工作的時候才能心情娛悅,否則,看著大小不一或者是朦朦朧朧的字型,恐怕沒人會有心情做自己的工作。由於中文 ttf字型檔的版權原因,很多 linux 的髮型版都沒有攜帶最常用的簡體中文字型檔。雖然台灣的文鼎公司捐助了四款...