數據挖掘--很是火爆的一個話題,跟大數據結合的模式也是賺足了噱頭,工業界各土豪公司也是砸下重金網羅各類數據挖掘/機器學習人才。現在掌握一門挖掘技巧的實用性跟急迫性。在學習的過程當中,除了相關理論的學習以外,最重要的就是如何把理論用於實踐,固然作項目是最直接有效的實踐方式,除此以外,參加一些數據挖掘比賽也是很是不錯的經歷,比勝過程中,咱們不只能加深模型/算法的學習,也能從別的參賽隊員中學習他們的技巧。下面,想跟你們分享下,我最近參加的幾個數據挖掘比賽(因爲參加比賽很是須要精力跟時間,而本人已經參加工做,只能利用業餘的時間探索數據,主要以學習他人方法爲主,另外如下比賽均在www.kaggle.com上面)。算法
一:Higgs Boson Machine Learning Challenge網絡
這個比賽(共1785支隊伍)是關於高能物理粒子的預測,二分類問題,具體來講數據集中,每一個樣本都有一個權重,權重越大,代表該樣本越重要。這個比賽火了一個工具包:XGboost,該工具的做者陳天奇同窗也是KDDcup2012Track1的冠軍成員,寫的代碼很是短小精悍,值得深度(目前我也在熟讀這份代碼),用這個工具調好參數,能取得Top50的好成績。第一名的方案,是Bag了70個神經網絡模型, 數據預處理先作了特徵選擇,剔除掉5較差特徵,同時添加了10個meta-feature。具體連接請參見https://www.kaggle.com/c/higgs-boson/forums/t/10344/winning-methodology-sharing?page=2。個人方案:模型用了Stacking的方法,基本分類器用了XGboost,RGF(loss=Logloss),RGF(loss=Exploss指數loss,就是adaboost的loss函數),二級分類器用了Logistic Regression,模型最好的結果能排到25位。機器學習
二:Display Advertising Challenge函數
這是一個關於廣告CTR預估的比賽,由全球知名廣告公司Criteo贊助舉辦,先簡單介紹下數據背景:4千萬的訓練樣本,13個數值特徵+26個分類特徵,500萬的測試樣本,模型的評價指標爲傳統的logloss。從總體的思路來看:特徵的處理+線性模型,對26個分類特徵進行one-hot 編碼,能擴展至千萬級別的特徵。第一名方案很是有意思,GBDT+FM的組合,其中的特徵處理很是有技巧(GBDT訓練高階特徵+hash技巧),值得學習。關於FM模型,因爲我本週會跟團隊有一個分享,完後再博客裏貼出來跟你們一塊兒分享。個人方案:特徵預處理,缺失值直接用0取代(不影響後續的模型),分類特徵直接用one-hot編碼(這裏作了一個特殊的處理,對於頻數小於10詞的取值,統一做爲一個取值),最後用FM跑處理後的數據(參數調優要很是當心),最終的結果在718只隊伍裏面第42位。工具
三:Tradeshift Text Classification學習
這是文本分類問題,而且是多類別的分類,也就是一本文檔有可能屬於多個類別,數據集中是33個分類,共145個特徵(50個bool型特徵+10個分類特徵+85個數值特徵),比賽評價的指標仍然是logloss,固然這裏是33個logloss之和。這個比賽比較有意思的是採用了二級分類的思路:隨機森林訓練bool/數值特徵 + 線性SVM訓練稀疏特徵做爲第一級分類,它們的輸出做爲隨機森林的輸入,這是第二級分類,第一名的方案:隨機森林訓練bool/數值特徵 + SGD訓練稀疏特徵+在線的邏輯迴歸訓練全部feature+XGboost訓練全部feature 做爲第一級方案,它們的輸入扔到XGboost模型裏面,最終輸出結果。個人方案:隨機森林訓練bool/數值特徵 + 線性SVM訓練稀疏特徵做爲第一級分類,它們的輸出做爲XGboost的輸入,最終的結果是375支隊伍裏面第19位。測試
以上是個人一些心得體會,寫的也比較簡短,也歡迎你們討論交流大數據
Ps:另外很是但願那些已經掌握理論還沒開始實踐的朋友,多找項目/比賽練手,另外常備幾個高效的數據挖掘工具箱,並選其中2-3個熟讀其源碼,作到理論、實踐兩不誤~編碼
下面簡單介紹下GBDT/GBRT模型,如下圖片是前段時間作的一個分享~spa