Kaggle的RandomForest和XGBoost的比較完整的代碼模板和代碼骨架?
大家好,關注了Kaggle一段時間後,發現很多人都是用RandomForest和XGBoost然後Ensemble一下。那麼有沒有一個比較好的代碼框架?或者說大家開始某個比賽時,都比較喜歡從哪(幾)份代碼作為骨架和基準,然後在那個代碼的基礎上修改? 先謝過 : )
下面是幾個個完整的解決方案,kaggle solution,天池solution,裡面有代碼鏈接
Kesci「魔鏡杯」風控演算法大賽複賽解決方案
DataCastle微額借款用戶人品預測大賽冠軍思路
O2O優惠券使用預測複賽季軍思路
Kaggle Competition Past Solutions
天池大數據競賽平台的全部解決方案
謝邀,第一次被邀回答機器學習啊。答主所謂的框架是什麼,API嗎?我也正在打算關注Kaggle比賽。還不了解他的比賽policy是允許使用現成演算法implement好了的library還是必須自己實現演算法code from scratch? 大致看了一下應該是前者,如果是前者的話大部分機器學習的演算法都有現成的庫可以用。google一下你很容易找到這個:Get Started with XGBoost
裡面有python調用XGBoost的API,照著這個設定你自己ensemble的參數就行。
然後這裡:Titanic: Machine Learning from Disaster也有一個調用XGBoost的例子。RandomForest同理。其實我更感興趣的是你說的很多人用這樣的Ensemble model來做的原因,為什麼他們不用neural network或SVM這些最近很popular的模型,我的理解是關鍵問題還是overfitting. 越複雜的模型相對來講overfitting的問題越大,有時候甚至很難避免。相比之下,ensemble model本質上使用多個weak learners組合起來訓練樣本,像bagging和boost(XGBoosting是其中一種)在中間過程中還涉及samping with replacement,這在數學上實際上是有理論支撐的,比單次使用訓練數據整體更能反映數據的真實分布,從而達到降低overfitting的效果。所以,關鍵還是你如果調劑模型里的parameter來得到更好的testing error,我也處於學習中,期待其他答主的答案。
推薦閱讀:
※為什麼做stacking之後,準確率反而降低了?
※如何看待 Google TPU?寒武紀晶元較之有哪些優勢與不足?
※如何評價「代碼直出工具」pix2code?
※如何評價雲丁科技推出的鹿客智能門鎖Loock touch?
※是否需要接受一家人工智慧offer?