本人是立志讀博的,刷競賽也只是業餘愛好。這篇只是科普文,簡單介紹了一下kaggle如何快速拿牌的簡單套路。

隨著數據挖掘比賽的興起,越來越多的人才參與數據挖掘這個領域當中。kaggle作為一個世界知名的平臺對於新手是一個很好的學習平臺,對於高手是一個很好的交流以及展示自己的機會。

kaggle上舉辦的數據比賽分為表格數據、NLP數據、圖像數據三種。本次的比賽是表格數據。

本次比賽的特點是數據的結構很簡單:

一列是是我們的id,一列是我們需要預測的結果。面對特徵如此少的數據,我們需要首先進行的是數據特徵的構造。如果是一個參加過比賽的人,會第一反應是構建統計學特徵,但是很多的新手,對於這種比賽是第一次見的時候,會出現無從下手的境地,這個時候,我們需要做的就是尋找已經開源中的kernel中的特徵。一般來說會有很多的大神開源這種kernel,並且隨著比賽的不斷進行,大家也會發現一些trick以及新的特徵,所以,建議大家不停的刷新出現的kernel,有新的特徵就扔進模型當中嘗試一下。

我通過刷開源的kernel以及自己根據經驗構造,最後得到大概3000多個特徵。

之後便是一個搭建模型了,我建議大家可以簡單的單模型嘗試一下,單模型可以幫助我們進行特徵的選擇以及嘗試,當單模型的結果變好的時候,我們可以嘗試多模型堆疊。

在目前的數據挖掘比賽當中最常用的就是lightgbm,這個模型是由微軟開發的一個集成樹的框架,這個框架目前在數據挖掘領域的競賽中屬於一個統治地地位。並且網上有一個很完善的文檔,建議大家可以根據文檔自己嘗試著學習。同時lightgbm還有一個特徵篩選的功能,大家可以根據他的結果,來刪減特徵的緯度,確實很方便。

下面我列出我寫的lightgbm的參數:

當模型搭建好了,便是交叉檢驗的過程當中,這裡我使用的是sklearn中的一個簡單的KFold功能,這個可以幫助大家更好的判斷模型的性能。並且由於kaggle每天的提交的次數有限,並且它反饋階段的數據和最後盲測的數據是不一樣的,因此,建議大家最好搭建一個可靠的cv系統。

由於比賽還沒有結束,我會在比賽結束之後完整開源我的方法。

推薦閱讀:

相關文章