【竞赛相关】Kaggle知识点:入门到进阶的10个问题
Kaggle知識點
在我們之前的分享中我們大多以具體的競賽案例,如某個競賽的Top解決方案來講解具體的比賽。那么是不是有更好的學習方法呢?
答案是肯定有,大部分Kaggle賽題都是相通或者類似的,還有一些通用的問題。
問題1:賽題是哪一種類型?
首先參加Kaggle競賽,你需要知道有哪些具體的比賽類型。具體分類如下圖所示,當然有多種分類方法。
最為主要的類型區別有:
賽題的提交方式(提交結果、Kernel)
賽題問題類型(CV、NLP或結構化)
問題2:賽題問題是什么?
在確定好賽題類型后,你應該仔細閱讀賽題的Overview界面弄清楚的賽題的具體問題。當然賽題描述不會很明確的說出賽題具體問題,需要選手自行進行分辨。
在回答問題2時,需要弄清楚:
賽題是CV、NLP還是結構化中的哪一種?
賽題對應于學術問題的中哪一種?
賽題我之前見過嗎?有代碼或知識的積累?
Kaggle有類似賽題任務嗎,有選手分享嗎?
問題3:賽題數據如何建模?
在弄清楚賽題類型和具體的問題后,需要弄清楚賽題問題的建模方式,這一點就涉及到具體的建模的方法和模型了。
當然也并不是所有的賽題都是新任務,Kaggler只需要熟知歷史任務,并進行舉一反三就可以了。在問題3你應該弄清楚:
問題有不同的建模方式,哪一種更加適合?
問題建模應該使用哪一個模型?
問題模型如何迭代,如何優化?
問題4:賽題數據的細節理解?
在了解了賽題的初步的任務和建模方法后,接下來就要深入到細節中了。你應該深入理解賽題數據的字段含義、字段產生方式和標簽的產生方式。
對于結構化數據的每個字段:
字段的類型、含義是什么
字段與標簽有什么關系?
在回答問題4時,可以從描述性數據分析和探索性數據分析兩個角度來完成。賽題的理解決定了賽題的具體建模方式,是尤為關鍵的一點。
問題5:賽題使用什么模型?
問題5與問題3有點類似,但在問題5你應該回答的更加具體,
賽題具體使用到的模型是什么?
模型有哪些超參數可供選擇?
有類似模型可以對比參考嗎?
在回答問題5時,需要根據問題4的答案來進行接解決。首先根據賽題具體的數據類型,可以將賽題分為結構化賽題和非機構化賽題。同時在回答問題5時,你應該跑通或者寫完baseline了。
問題6:模型處于那種階段?
機器學習模型根據狀態可以分為欠擬合和過擬合,當然你應該追求模型對測試集最好擬合的狀態。
也就是說,你應該知道模型此時的狀態。
如果模型是欠擬合你應該做什么?
如果模型是過擬合你應該做什么?
問題7:賽題上分點是什么?
當你回答完前面6個問題后,基本上你已經提交過一次答案,已經成功上榜了。但是這些還不夠,與前排選手相比你的模型精度還有待優化。
因此你需要弄清楚:
前排選手與自己的精度差異在哪兒?
自己還能從哪些地方上分?
回答問題7最好的方法是閱讀比賽論壇和相關論文,當然這些問題的具體答案只能自己回答自己了。從問題7開始,你開始真正的競賽探索過程。
問題8:本地CV與線上得分?
在模型訓練的過程中,本地驗證集CV的得分非常重要。同時本地CV與線上得分的差異性也至關重要,也就是CV vs 線上(PB)。
在Kaggle每個比賽中,經常會有人對比自己CV與線上得分的差異性(gap)。這樣對比的作用是:
尋找更好的本地CV得分;
尋找更加問題的gap;
通過問題8,你將會對賽題線上線下有初步的感知,這將會影響你的最終得分。當然分布需要細心觀察,反復試驗得到的。
問題9:賽題如何完成集成?
在不斷回答自己問題的同時,你還需要考慮模型最終的集成問題。模型集成在有些Kaggle競賽中非常重要,會帶來精度增益。
但是模型集成是需要得分差異性,需要訓練多個模型的:
如何完成stacking和簡單的KFlod平均?
深度學習模型如何完成模型集成?
問題10:賽題如何完成總結?
最后的最后,在比賽完結后不管結果如何。希望你在閱讀和反思比賽的歷程后回答自己這些問題:
通過本次比賽我學習到什么?
我與前排選手差異在哪兒?
遇到下次類似比賽,我將如何行動?
參加比賽還是很耗費資源和時間,無論大家結果如何,希望大家都有所收獲。希望大家都不要翻車~
往期精彩回顧適合初學者入門人工智能的路線及資料下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載本站qq群955171419,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【竞赛相关】Kaggle知识点:入门到进阶的10个问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鼠标有拖尾怎么办
- 下一篇: 【时间序列】最完整的时间序列分析和预测(