怎麼著手玩kaggle?
已經上過coursera上ng的ml課和學校的數據挖掘概論,最近的畢設還是和字典學習有關,多少算有點ML基礎,語言的話熟悉python和MATLAB。也會用Markdown寫文本,註冊kaggle有一會了,可能平時忙就是不知道該怎麼下手,現在放假有時間了想好好玩玩,請問各位大佬要從哪著手呢?它有好多模塊看得我眼花繚亂,具體有啥區別呢?它的鼓勵機制又是怎麼樣的?
謝邀!
推薦一本很薄的書:
可以考慮入手,這本書例子很多,適合入門,有基礎的一個星期看完就可以到kaggle參加一些比賽了。
當然,看完書還不行,多泡在 kaggle的kernel模塊,裡面有大神們的分析詳細代碼以及剖析,每一個比賽中的點贊數前十名都可以看一下,自己可以 fork下來,在他的基礎上自己完。
1. 熟悉python里的numpy,pandas和matplotlib三大神器,做前期的數據分析和預處理,包括特徵工程部分2. 熟悉sklearn,裡面有不少機器學習的東西3. 熟悉Keras,tensorflow等深度學習框架,有時候dl效果更好4. 看之前比賽冠軍的分享,或者看一些好的kernels
5. 劃分好訓練集和驗證集
6. 了解調參trick7. 整個過程無非就是理解題意,做好數據分析,數據預處理,然後最重點是搞好特徵工程,然後xgboost,lightgbm,gbdt,fm,dl等等演算法跑加調參,最後bagging和stacking集成第一步,搬磚。看看別人的 kernels 怎麼寫,理解每一步,多跑別人的代碼找找感覺。
第二步,假設對 ML 的演算法都比較熟了,在別人的 kernels 基礎上調參,堆模型,做特徵工程。
第三步,逐漸發現別人的代碼的不足,建立自己的 pipeline,調參方法論,ensemble 策略。一套好的流程很重要,因為每一次提交背後可能需要多次迭代和實驗,隨時記錄踩過的、還沒踩的坑。計划下一步做哪些嘗試。
以上是鍛煉動手能力,真正排名靠前的,需要一點不一樣的想法。ML 教程和經典中的一些理論,在實戰中往往不適用。建議跟蹤比賽中每一個重要的帖子,翻過往同類比賽的總結,這樣學到的東西更多。選擇一個最簡單的項目(Titanic),一步一步來。
1.理解競賽描述「Competition Detail」
2.下載數據「Get the Data」,訓練模型,得到結果
3.提交結果「Make a submission」
起手gbt,不好就上dl。。。。多看forum,拿top10要時間,進top20%靠調參
推薦閱讀:
※如何看待Kaggle最新比赛Zillow禁止中国居民参加第二轮?
※kaggle:Titanic: Machine Learning from Disaster,有什麼比較好的feature可以提取,哪位大神hit 80%了?
※如何看待 Kaggle 被 Google 收購?
※機器學習如何在小樣本高維特徵問題下獲得良好表現?
※Kaggle 的比賽在 Machine Learning 領域中屬於什麼地位?