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?

TAG:人工智慧 | 數據挖掘 | 機器學習 | Kaggle | xgboost |