這段話寫在全球知名預測建模與分析平臺 kaggle 的 TalkingData 全球算法大賽介紹頁面上。 Kaggle 平臺的注冊用戶現在已經超過60萬,來自于全球194個國家,具有各行各業的背景,Kaggle 平臺因為賽制的科學和開放的態度,也成為了很多重要數據科學競賽的支持平臺。目前,在 Kaggle 算法眾包平臺上一共舉辦了超過1200場比賽,多數比賽來自于工業界,提供了很多數據科學的解決方案。 從另外一個角度而言,這個平臺類似于一個江湖武林排行榜,有一些人會借此一戰成名。 2012年,美國制藥公司默克(Merck)在 Kaggle 上發布了一項為期60天的挑戰賽,由參賽者通過15種藥物的各種數據預測它們的生物活性,如藥物的靶點和非預期靶點(off-target)等等。結果,一個來自加拿大多倫多大學的5人團隊 gggg 獲得了第一。 如果直接介紹這支隊伍,大家可能要翻一個白眼——這是誰?,但是他們背后的人卻來頭不小。相信很多從事數據科學的人都不陌生,他就是 Geoffrey hinton 。 三大牛 Yann LeCun、Yoshua Bengio 和 Geoffrey Hinton 在深度學習領域的地位無人不知,吃瓜群眾可以看看,他長這樣。 說了這么多,意思就是,kaggle 很牛X,不服就來參加個比賽試試。 在 kaggle 這個牛氣的平臺上,中國第三方移動數據平臺 TalkingData 和機器學習公司 Turi 聯合舉辦了一場全球算法大賽。這場比賽在7月11日開始,9月5日結束。 按照 TalkingData 數據科學部直接負責大賽的科學家路瑤告訴雷鋒網的信息,原本在國內看上去稀松平常的一個算法大賽,應該是搞不出一個什么大新聞的,但是, 最終的比賽經過賬號排重之后,居然有1689支隊伍參加,囊括了1961個選手,一共有24000多次提交。 而且,路瑤還盤點了這次大賽上有意思的一些事兒,在勾起大家的興趣前,先說說這是個什么樣的比賽。 牛!感覺不會再愛了本次大賽的挑戰題目是通過移動設備行為數據來預測設備使用者的性別和年齡分組。 大賽提供了約20萬用戶的脫敏數據,分成了12組,比如,男性,22到25歲,女性,30到35歲等。同時也提供了用戶行為屬性,比如,時間點、地理位置、手機品牌、機型等,選手要通過這些信息推測用戶屬于哪一個組。 嗯,看上去有點難。 大賽的評估方式是——選手需算出用戶在不同分組上的概率,一個用戶只能在一個分組,理想狀態下,如果能算出概率是1,其他為0的話,那么就是沒有任何概率損失,但他們的答案一般是在不同的分組上,這個用戶以不同的概率屬于這個組別,這時就有概率損失,大賽的評估指標就是概率損失。 再看一次,很復雜對不對?好吧,我們可以再復雜一些。 表格里的數據首先是年齡性別分組,每個用戶用是一個ID表示。一個用戶的行為是在一系列的事件里,每一個事件里的信息包括:ID在什么時間點出現在哪個經緯度上,安裝了哪些APP、使用了哪些APP,手機品牌和機型。 當然,APP 的 ID,包括經緯度等都進行了嚴格和科學的脫敏。 然而,APP 上呈現的只是脫敏后的 ID,選手對 APP 本身沒有什么概念,為了讓選手更好地解讀數據,主辦方給 APP 貼了一些標簽,比如社交、游戲等,一共有1000多個標簽。 圍觀群眾表示,看樣子像大海撈針對不對? 可對這些數據的解讀僅僅是成功的第一步,下一步是特征工程。 選手提取了哪些特征?比如,用戶是在什么時間活躍?休息日還是工作日?白天還是晚上? 數據還包括海外數據,有時差的問題。用戶有了軌跡,軌跡分布是怎樣?是聚集在某一塊?還是聚集在幾個點?之間距離有多遠?常出現的位置是在中國的東南沿海還是在西北地區?這些地點又有什么樣的特性。 另外,安裝的APP哪些是安裝了但是好長時間沒有用?這又能提供什么樣的信息。 天了嚕,十萬個為什么?不可否認的是,這些特征取值很有學問,是取01值還是更具體的權重,完全是個技術活。 路瑤一邊介紹,一邊冒出“星星眼”。因為在比賽中出現了非常有想象力的做法,而她在做項目過程中根本沒有想到!
做完特征工程之后,進入到調模型的環節,這也是考驗數據科學家經驗和技巧的活。單一模型下調參數的時候,最簡單的初始參數怎么選?是給一個隨機值,還是給一個特別值?對于收斂速度可能會有很大的影響。 在模型集成上,學問就更多了。以神經網絡為例,在神經網絡里設計神經元,要知道每一層有多少個、有多少層,在模型集成里面也要有類似的思想。這些模型分成幾層,誰和誰是并聯、誰和誰是串聯關系,如果是串聯關系,下一層要處理上一層什么樣的信息,是直接處理結果,還是誤差或是什么。 有了好模型、好特征,提交了結果,在排名上很靠前,是不是這個事就搞定了,就可以拿到獎金了? 呵呵噠,真不一定。 還有一個大敵叫過擬合。 過擬合的方法在特定數據集里會表現非常好,但是這個數據集稍微一變,模型性能就迅速下降。 此次比賽分測試集和訓練集,訓練集是把所有的信息都告訴了選手,然后在測試集里要推測分組。 選手可以看到的是提交結果后的公開榜單,但私密榜單卻只有管理員能看到,但比賽結果卻是由私密榜單決定的,公開榜單僅供參考。 公開榜單的測試集只包括了1/4~1/3的數據,而 Kaggle 又不限制提交次數,如果你在公開榜單排名靠前,那么呵呵,有可能在私密榜單排名很慘。 如何解決這個問題,Kaggle 的老司機告訴你,永遠要做交叉驗證!!!!拿小本本記下來!! 迄今為止,雖然大賽還未正式公布獲獎名單,但是在kaggle該大賽主頁上,私密榜單已經出爐!我們來看一下—— 1.TalkingData 首席數據科學家張夏天告訴雷鋒網,雖然數據量比較小,只有約20萬組,但是卻是“稀疏”數據,即拿來真實數據進行脫敏后,有些數據可能維度不齊全,相比于一些比賽提供的標簽齊全的數據,意思是,難度加大,你開心就好。 2.在 Kaggle 社區,第一次出現 TalkingData 中國的數據,上面的大神對此很感興趣,甚至把kaggle 排行榜上所謂的“上古神獸”炸出來不少,Kaggle 比較牛的那些人玩的時間長了,興趣不大,已經不太愛在平臺上出現。Kaggle榜單前10名里有7名參加TalkingData 的比賽,前20名中有14名。是的,中國就是個神秘的國度…… 3.最后有70多個國家的參賽選手提交了結果,選手最多的不是中國……是美國。那第二呢?第二依然不是中國,是印度,第三才是中國,含臺灣、香港地區,第四是俄羅斯,第五是英國。 4.在 kaggle 的 TalkingData 大賽社區里,由于數據來自中國,很多選手需要討論中國國情,最熱衷給大家科普中國國情特征的是一個法國兄弟…… |
|