1. 程式人生 > >資料競賽入門資料與參賽經驗分享

資料競賽入門資料與參賽經驗分享

前言

本篇博文主要根據博主自身的參賽學習經歷,分享一些關於機器學習和資料探勘比賽的資料與經驗。因為自己在學習過程中,也多虧大佬前輩們的指導和分享,才慢慢學會一些技能,所以,希望大家一起學習交流,一起進步。

博主(ID:16huakai)這半年來的參賽經歷如下(按照時間先後):

(嗯~,就差一個一等獎)

一、機器學習入門資料分享

1、網課

這是個人十分喜歡的一門網課,也是我的入門課,通俗易懂,花個兩三週的時間,機器學習基本可以小入門了。課程也有配套的編碼作業,用於動手實踐,鞏固知識,本人自己整理的作業答案python版本,可以參考部落格和GitHub。網上也有

吳恩達的斯坦福大學機器學習公開課(2009年版),不過我不介意看這個,因為年代太久遠了。當然吳恩達還有自己的deeplearning.ai系列的深度學習課程,有興趣的也可以在網易雲課堂上面搜尋一下。

這位老師也有自己的機器學習和深度學習公開課課程,覆蓋面較為廣泛,我看過一些章節,個人感覺講解的一般,所以入門的話,網課看①就夠了。

2、書籍

①Peter Harrington 《機器學習實戰》

這是一本非常經典的書籍,我第一本看的入門書籍,主要注重演算法程式碼實現,理論知識都只是粗略帶過,所以強烈建議與②周志華的西瓜書《機器學習》配套使用,效果更佳。關於這本書的程式碼,我個人從頭到尾敲了一遍,並且整理了相關的一些資料,可以參考我的

部落格和GitHub

②周志華《機器學習》

這是南京大學周志華教授編著的關於機器學習的書籍,算是國內相關書籍最好的(之一)。理論知識介紹很詳細,知識面覆蓋廣泛,適合精讀。

③李航《統計學習方法》

這是清華的李航博士編著的書籍,理論推導詳細,全書很多公式,最大的特點是,薄!!!可惜新手一下子看到很多公式,估計很容易一臉懵逼。

④範淼 李超 《Python機器學習及實踐從零開始通往Kaggle競賽之路》

這是入門競賽的一本書籍,理論知識很少,主要介紹如何利用python工具包(sklearn、pandas等),進行資料分析和競賽,真的是從零開始,簡單到一學就會。

3、網站

①網易雲課堂

②Coursera公開課

4、語言基礎

①python3

主要在網上學習,推薦廖雪峰的網站,還有菜鳥教程中的python3教程。現在的趨勢都是python3 ,所以不要學python2了吧。

②必學工具包

numpy:用於科學計算——中文文件地址

pandas:用於資料分析——pandas的作者有一本書叫做《利用python進行資料分析》

matplotlib:用於資料視覺化

sklearn:機器學習演算法的工具包,基本常規的演算法都有,很強大——中文文件地址

LightGBM、XGBoost等梯度提升樹整合學習模型,基本參賽必用——ApacheCN中文文件(翻譯了很多優秀的英文文件)

③進階工具包

heamy:用於模型融合

TensorFlow:谷歌深度學習框架——中文文件

keras:對使用者及其友好的深度學習框架,底層預設用的是TensorFlow——中文文件

PS:首先可以肯定,這些資料,並不是說,都得必須看,或者說一個接著一個的看。我只是覺得,自己看了感覺很棒,所以推薦給大家,至於怎麼運用,需要找到自己的節奏。

二、競賽平臺介紹

1、kaggle:國際認可度最高的競賽平臺之一,想了解詳情,請百度 / 谷歌。

2、天池:阿里主辦的競賽平臺,算國內認可度最高的。比賽一般獎金很高,難度較大,參賽人數也多。

3、DC:好像是電子科大主辦的,比賽很多,也還蠻成熟的。

4、DF: CCF資料競賽指定平臺。

5、其他:還有kesci,biendata,百度點石、京東JDATA、騰訊和華為等企業也會一年舉辦一次競賽等。

三、競賽經驗分享

1、參賽的目的

我從2018年4月中旬開始接觸資料競賽,當初覺得需要參賽實戰一下,鍛鍊自己的動手編碼和解決問題的能力,於是邊做競賽,邊學習,哪裡有知識盲區,就去補缺。所以一開始,一定要抱著學習的態度,在比賽過程中,有目的的學習,這樣子,你會覺得提升的非常快。再者,儘量參加不同型別的比賽,這樣子,學習內容更加廣泛,也更加有趣。當你有一定經驗的時候,如果你沒有想獲獎的野心和行動,那基本都是陪跑、划水,給人家當分母。那麼當你到了參加比賽的後期,我感覺提升學習能力的邊際效益是很小的,所以,需要對比賽有清楚的認識和明確的目的。

2、參賽的流程

參賽的流程介紹網上有很多部落格資料,大概為:

報名——下載資料——資料清洗與處理——特徵構造——特性篩選——模型構建——模型融合——提交結果。

這個我這裡不想展開講,因為這個內容,完全可以另開篇幅,所以引用幾篇博文如下:

3、參賽的感想

①競賽是為了學習,為了鍛鍊自己的能力——永遠不要眼高手低,學了一些理論知識之後,就想當然,打嘴炮。只有動手之後,才知道,什麼模型有用,什麼方法好用。

② 有人比賽是為了學習知識,有人比賽是為了拿獎金,有人比賽是為了拿名次,人有千千萬, 目的各不同。找準自己的方向,just for fun!

③參賽隊友很重要——一個人參賽很容易迷茫,做著做著,自己就沒了。所以,找一個靠譜的隊友吧。

④競賽結束之後,多看一些資料競賽的思路分享和優秀程式碼,一定多看、多寫,學會總結!

⑤找到適合自己的資料競賽型別,現在比賽大致分為:資料競賽(資料探勘)、影象比賽、NLP比賽......所以,找到自己感興趣的方向,動手實踐起來。

⑥最後,個人感覺,我們需要對資料競賽有清楚的認識,不要盲目放大比賽帶來的效益,要把握好一個度,掌握好自己的節奏!人啊,要保持清醒的頭腦,在什麼階段,該做什麼事,要心中有譜!