高校大資料挑戰賽Rank2教學“新人如何參加一場資料科學類比賽”
比賽連結:2019中國高校計算機大賽——大資料挑戰賽
分享者:Rank2【蝸牛本牛】隊長尹常攀
影片連結:bilibili,由和鯨社群聽寫排版
零、提綱:
一、賽前
1。理論學習
純理論學習
不管是新手,還是經常打比賽的人,都不應該忽略理論的重要性。我當時參加比賽前,系統性地將周志華教授的西瓜書看了3遍和李航教授的統計學習方法看了1遍。
書怎麼看?
先看西瓜書,第一遍很快過一下,看一下這本書講了哪些知識,哪些概念。可能有些概念不是很懂,不要緊,留個印象。第二遍看的比較細,主要是建立知識框架,把第一遍沒看懂的地方重新加深了印象。
看完第二遍,先不要急著看第三遍。到網上覆現別人的專案,在復現專案的過程中,會有問題,帶著問題再去看第三遍。
你會感覺每看一遍,都會比前一遍看得更快,對於各類概念的理解也會更深刻一點。如果作為新手,理論還不紮實的話,強烈建議大家看一下週志華教授的西瓜書。
李航教授的計學習方法會比西瓜書講的更深刻,也更難理解一點,適合進階看。
第三本《深度學習》是一本經典教程,有精力的話看一下,難度比較大。
資料類比賽理論儲備
主要劃分為三個部分:特徵工程、模型、模型融合。
1)特徵工程
特徵工程是對原始資料進行處理變換,從而抽取出特徵的工作。對於特徵工程,最重要的概念就是了解什麼是特徵。
我對於特徵的理解是:特徵是攜帶目標資訊的一種載體。
如何理解這句話?比如說在二分類任務中,對於特徵F,當特徵F=x_1, A的機率為0。5,B的機率也是0。5,那麼特徵F=X_1這部分資料不具有區分性的(和瞎猜差不多)。但是如果F=X_2,A的機率為1,B的機率為0,那麼特徵F=X_2這部分資料就能很好地進行預測。當特徵F=x_3, A的機率為0。8,B的機率為0。2,那麼特徵F F=x_3這部分資料我們就說預測為A準確的機率比較高。
綜上,我對於資訊的理解:特徵的某個取值更傾向於目標的一個解。
資訊量多:趨向目標的一個解機率大的那部分資料比較多,就是我們通俗意義上講的強特徵;資訊量少:趨向於目標的一個解機率大的那部分資料比較少。
(此處舉例略,請移步影片)
2)模型
模型:模型實現的是一種根據資料從已有特徵攜帶的資訊中擬合出最佳目標分佈的方法。
比如線性迴歸,就是對於多維空間的樣本點,用特徵的線性組合,去擬合目標的分佈情況。
比如決策樹模型,就是基於書的模型結構,根據樣本點的特徵值,將樣本的落在樹的某個葉子節點上的方式擬合目標的分佈情況。
再比如決策樹模型、向量機模型、神經網路模型等,它都是用特徵擬合最佳目標分佈的一種方法。不同方法,對於特徵擬合的理念不同。
3)模型融合
模型融合的本質;將不同模型、不同方式擬合出來的目標分佈看成特徵,再對這些目標進行擬合。
這個過程中還有一個概念,模型差異大小
模型差異小:說明模型學習過程中擬合目標函式的分佈接近,也就是說兩個模型能夠區分的資料是相同的
模型差異大:說明模型學習過程中從不同角度擬合出了目標函式
比如此次的大資料挑戰賽,有些模型對於已經出現過的資料擬合的比較好,有些模型對沒有出現過的資料擬合比較好。那麼這兩種模型就叫模型差異大,用這兩種模型進行模型融合對最終結果的提升就會比較大。
2。熟悉一個專案的完整流程
把理論學習完之後,後面就要熟悉一個專案。很多新手希望透過比賽去接觸一個專案,這裡我其實覺得沒必要這麼做。因為新手參加比賽的時候,對於整個資料科學比賽應該怎麼做,還沒有一個清晰的概念,可能很多都是基於理論,沒有實踐。
這裡我建議大家去到網上去復現別人已經完成的一個專案。這些專案怎麼找呢?在比較知名的可以上kaggle,國內的可以上Heywhale等。
如何選擇第一個專案
第一個專案要找簡單具有代表性的專案,程式碼的可能性強,並且文件說明要比較詳細。
這裡我大家推薦一個網站,就是Heywhale,最主要的優點是可以直接在平臺上執行。因為新手一般去網上下載別人專案在自己的機器上會有很多問題,環境有差異,缺少安裝包什麼的,會浪費很多時間。甚至不知道人家的檔案結構,不清楚怎麼執行。在ModelWhale可以直接執行人家的程式碼,看效果,對於新手挺實用的。
一個專案的完整流程
我們在打一個專案的時候,主要的工作都是在特徵工程部分。
一般拿到資料之後,會對原始資料進行分析,根據我們分析結果,提取出各種各樣的特徵,提取為特徵之後,我們一般都會選擇一個自己的主模型,在主模型上進行迭代,看我們做特徵工程,特徵效果好不好。
到比賽中後期,沒有新的提取特徵的想法的時候,會選擇其他的模型進行嘗試,看其他模型的效果有沒有提升。當我們嘗試過足夠多的模型之後,最終都會選擇模型融合,把各種各樣的模型,透過某一種模型融合的技巧,把它融合成一個更復雜的模型,作為最終的預測結果。
打比賽其實是一個迭代的過程,提取一個特徵,把特徵輸入到模型,模型訓練出結果,我們得到反饋之後,繼續提取特徵……
比賽經驗技巧積累
當你積累了一兩個專案的時候,繼續做專案,幫助可能不是那麼大。這個階段可以透過別人的比賽分享去學習。
從別人比賽中比賽分享中,主要是學習他們比賽的一些特徵,工程的一些方法,融合模型融合的一些技巧,或者說一些比較好的一些思想。
(此處舉例略,請移步影片)
二、賽中
1。賽題分析
比賽開始了,拿到賽題,不要去盲目的去做,需要先對資料、評價指標進行分析,分析的結果就是把賽題轉化成一種數學問題,提供怎樣的資料,要你求解什麼,然後定位成某一類的問題,進行針對性的資料查詢。
此次的大資料挑戰賽預測點選機率,評價指標是qAUC,是一種排序指標,用排序模型比用二分類模型就要好5‰。對於資料集,我們觀察到訓練集和測試集的分佈不一樣,且有部分資料是重合的。
經過以上分析,我們確定了思路:對於重複的title,使用文字資訊+歷史資訊的特徵;對於新的title,使用文字和搜尋領域相關的特徵。
(此處略寫,詳情移步影片)
2。資訊獲取和資料查詢
比賽過程中需要不斷地獲取新的資訊,在一些交流平臺上,看別人交流哪些方法好,哪些方法不好。也可以私下裡請教別人,看你遇到的問題別人有什麼建議。
獲取到資訊以後需要消化,需要查詢相關資料
資料獲取推薦渠道如下
(此處舉例略,請移步影片)
實時關注比賽交流資訊,能保證參賽方向大體不會出偏差。在比賽中資訊要比努力重要,不要閉門造車。
三、賽後總結
打完比賽,不是學習的結束。因為經過長時間的比賽,你對賽題的思考已經很深入了,建議你賽後觀摩前排的解決方案和自己的方案進行對比,瞭解自己和別人的差距,也能從他人的方案中汲取經驗,提升自己對資料科學的理解。
如果條件允許的話,趁著其他團隊還沒有遺忘自己的方案時,建議賽後向其他團隊請教,花一點時間復現出別人的工作,這樣才能把握其他方案的細節。
以上。
該型選手同時分享了自己比賽的解題思路、PPT、程式碼
解題思路傳送門:案例分享 | 文科生也能看懂的2019高校大資料挑戰賽 Rank 2 案例
PPT解說傳送門:
https://
github。com/srtianxia/BD
C2019_Rank2
程式碼傳送門:BDC2019_Rank2