自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

想在Kaggle比賽中進入前4%,你需要掌握哪些訣竅?

大數(shù)據(jù)
其實我們對于Kaggle比賽挺陌生的。我們不是機器學(xué)習(xí)領(lǐng)域的專業(yè)人士,只是在網(wǎng)上在線課程學(xué)習(xí)了Python和機器學(xué)習(xí)而已。

本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。

如果你一直關(guān)注Kaggle新聞,那對Mechanisms of Action競賽應(yīng)該不陌生,該比賽由哈佛創(chuàng)新科學(xué)實驗室舉辦,近日剛剛落下帷幕。在這場比賽中,我和搭檔Andy Wang成功進入前4%——在4373支隊伍中排第152名,對此我感到十分驕傲。

[[376431]]

其實我們對于Kaggle比賽挺陌生的。我們不是機器學(xué)習(xí)領(lǐng)域的專業(yè)人士,只是在網(wǎng)上在線課程學(xué)習(xí)了Python和機器學(xué)習(xí)而已。

毋庸置疑,我們并沒有拿到金牌。整場比賽前10名才有資格獲得金牌,難度非同一般。金牌選手需要給出的方案往往非常復(fù)雜。下面這幅圖就是排名第一的隊伍所提出的7-model方案中的一部分:

想在Kaggle比賽中進入前4%,你需要掌握哪些訣竅?

圖中有很多復(fù)雜網(wǎng)絡(luò)拓撲結(jié)構(gòu)

Kaggle通常會采訪獲勝者,從而深入了解他們的解決方案(大多都是非常優(yōu)秀的方案)。但是,我發(fā)現(xiàn)這些獲勝者很少提及如何能在這種類型的競賽中做到“高效”?;ㄙM大量的時間設(shè)計方案,一點一點地提高成績,或許能讓參賽者獲得金牌以及數(shù)量可觀的現(xiàn)金。但是對于大多數(shù)人來說,這種方式的實操性并不高。

想在Kaggle比賽中進入前4%,你需要掌握哪些訣竅?

獲得金牌與獲得3萬美元獎金也許只有0.0002分之差。

這篇文章中,我會列出我和搭檔所學(xué)、所用的秘訣和小技巧。我們還在不斷地學(xué)習(xí)和摸索,希望這篇文章能夠給大家?guī)碇妗?/p>

總的來說,我們的秘訣有兩點,分別是技能普適性和方式高效性,之后還可以再細分到技術(shù)層面和策略層面。

技術(shù)層面技巧

下面的技巧偏向技術(shù)層面。這些比較具體的專業(yè)技巧可以用于編程方案,在Kaggle比賽優(yōu)秀的參賽作品中也很常用。

1. 完美無缺的特征工程

如果說我從這次比賽中學(xué)到了什么,那就是“特征工程是關(guān)鍵”。簡單來說,特征工程就是提取已有特征并不斷添加新的特征,這可以是簡單的將兩列相乘。

在常用的機器學(xué)習(xí)方法中,神經(jīng)網(wǎng)絡(luò)可視為神奇的萬能方案,據(jù)說神經(jīng)網(wǎng)絡(luò)可以從數(shù)據(jù)中學(xué)習(xí)任何東西。不過事實并非如此,大多數(shù)時候,一個模型要想通過數(shù)據(jù)學(xué)習(xí)的話,還需要人類從旁協(xié)助。

模型的優(yōu)劣取決于數(shù)據(jù)的好壞,最好提供盡可能多的信息讓原始數(shù)據(jù)有意義。對特征工程有幫助的兩個觀點:

  • 主成分分析法/特征降維。我們常說"這些都是數(shù)據(jù)中最重要的結(jié)構(gòu)因素",并為模型設(shè)計付出很多時間和心血,因此特征降維是很好的特征工程策略。主成分分析縮減版可以用來替換數(shù)據(jù),或者將主成分分析縮減版的特征并聯(lián)到數(shù)據(jù)中(可能更成功)。除此之外,局部線性嵌入等流性學(xué)習(xí)/特征降維算法也同樣適用。
  • 添加數(shù)據(jù)。若多列之間的規(guī)模相當,則可以添加簡單的數(shù)據(jù),如平均值和方差,也可以添加更高階的數(shù)據(jù),如峰度或偏度。例如,數(shù)據(jù)點之間的方差# of cars moving in Los Angeles,# of cars movingin Santa Monica,# of cars moving in Beverley Hills等等,可以提供有用的信息,來觀察天氣帶來的不同影響。如果方差較小,那么天氣對所有城市的影響都非常相似。模型可以對此進行解釋,并幫助預(yù)測。

特征工程是一門藝術(shù)。最重要的是要記住在進行特征工程時要考慮到數(shù)據(jù)環(huán)境。如果數(shù)據(jù)在現(xiàn)實生活中沒有意義(例如將兩個彼此沒有關(guān)系的列相乘),很可能不會幫助模型更好地理解數(shù)據(jù)。

[[376433]]

圖源:unsplash

2. 嚴格把控功能選擇

全力以赴地進行特征工程是很好的做法,但同樣重要的是要記住,過多的數(shù)據(jù)會讓模型不堪重負,給學(xué)習(xí)重要內(nèi)容帶來困難。精確判斷哪些特征要留存,又有哪些特征要剔除,可以對模型大有裨益。

通常,刪除列時要盡量保守一些。數(shù)據(jù)不可多得,所以只有當你確定數(shù)據(jù)不會有什么用處時,才可以把它刪除。

  • 仔細觀察數(shù)據(jù)。特別是有很多分類變量的時候,可能會有多余的列出現(xiàn)。例如,比賽中偶爾會有“對照組”樣本的目標總是0,去掉這一數(shù)據(jù)往往會更好。
  • 獲取信息。你可以計算每個特征對最終模型的預(yù)測提供的信息增益,然后刪除幾乎不提供任何信息的特征。
  • 方差閾值。這是吸引力較小的信息增益版本(但有時更實用),計算每一列的方差,并刪除方差小的列(做必要的縮放后)。
  • 特征降維。若出現(xiàn)較多高度相關(guān)的特征,那么使用降維的特征可能會有幫助。一般需要盡量不刪除而只是減少那些不太“重要”的特征。如此一來,你仍能保留該有的信息。

3. 先理解指標,再設(shè)計方案。

Kaggle會按照一定的指標來評估參賽方案,并以此決定參賽者的名次。有時候會用模型評估指標(AUC),有時也可能會用對數(shù)損失函數(shù)(logloss)。Kaggle一般會在競賽概覽的“評估”部分提供其用到的公式。

想在Kaggle比賽中進入前4%,你需要掌握哪些訣竅?

Kaggle為Mechanismsof Action競賽提供的公式

你需要留意這些指標,因為它們往往決定了參賽者該如何構(gòu)造方案。比如,使用一個與評估函數(shù)非常相似的特定損失函數(shù),將提高模型在該指標下的性能。

以對數(shù)損失函數(shù)為例。對互聯(lián)網(wǎng)進行深挖能夠帶來很多有用信息,而對數(shù)損失函數(shù)會懲罰自信且錯誤的預(yù)測。也就是說,在預(yù)測中,模型越自信,對其錯誤性的罰分也會上升的越快。關(guān)于這一點還有很多需要仔細斟酌:

(1) 首先,如果系統(tǒng)性錯誤(即模型不能對數(shù)據(jù)進行理解)使得模型在對數(shù)損失方面非常糟糕,那么此時讓模型變得更“遲鈍”可能會有幫助。至少在即將要得出錯誤答案之前,它不會顯得自信。

可以通過增加數(shù)據(jù)(依情況而定)或者降低模型的自信來完善模型。若是想偷懶,也可以只使用“目標裁剪”:如果預(yù)測小于1%或大于99%,那么只需要分別將其裁剪在1%和99%。這樣就避免了任何過度自信的答案(當然了,還有另一個方向就是如何讓模型的系統(tǒng)誤差更小,更好的理解數(shù)據(jù))。

(2) 其次,也許模型能夠較好地理解數(shù)據(jù)。但是模型過于遲鈍,那么與其說是有系統(tǒng)性錯誤,不如說是有精確性錯誤。這就提供了一個新思路:可以嘗試套袋法或其他集成方法,穩(wěn)定預(yù)測的可信度,增強預(yù)測自信。

這些思維方式使得數(shù)學(xué)知識能夠轉(zhuǎn)化為實際的技術(shù),并給數(shù)據(jù)科學(xué)帶來無限的創(chuàng)造性與趣味性。

4. 接下來是建模的相關(guān)策略

建模單調(diào)乏味,是因為我們通常把建模過程視為完成任務(wù):

  • 構(gòu)建
  • 微調(diào)
  • 評估
  • 重復(fù)

看起來似乎只有有限的建模順序,特別是在你經(jīng)驗有限且不習(xí)慣使用低層代碼的情況下。其實建模藝術(shù)中也有很多樂趣和學(xué)問。下面是一些可行建議:

  • 預(yù)訓(xùn)練。如果有無人監(jiān)管或無人評分的數(shù)據(jù)(在訓(xùn)練集合中提供的但是沒被測試集合使用過的數(shù)據(jù)),就可以通過模型運行數(shù)據(jù)來做預(yù)訓(xùn)練。同理,也可以利用Keras的預(yù)訓(xùn)練和預(yù)構(gòu)建模型。這些方法都沒什么難度,而且能夠很大程度減輕工作量。
  • 非線性拓撲結(jié)構(gòu)。這是種神經(jīng)網(wǎng)絡(luò)并不是連續(xù)性的;相反,每一層可以有多個分支,且在后續(xù)階段分支之間也能夠續(xù)連。利用Keras的API函數(shù)式就能很容易做到。例如,圖像數(shù)據(jù)可以分割成兩個不同過濾器大小的卷積層。它們在不同的尺度上學(xué)習(xí)表征,而后再聯(lián)合起來。
  • 古怪、瘋狂的科學(xué)方案。DeepInsight模型就是很好的例子。這一方法在Mechanisms of Action競賽中非常受歡迎,它使用了t-SNE(一種降低視覺維度的方式)將表格數(shù)據(jù)轉(zhuǎn)換為圖像,然后使用卷積神經(jīng)網(wǎng)絡(luò)加以訓(xùn)練。

最后,還有些方法值得一試:將集合中的預(yù)測結(jié)果創(chuàng)造性地結(jié)合在一起;除ReLU以外的激活函數(shù)(比如,Leaky ReLU,Swish);對非樹形模型的‘boosting’(將對一個模型的預(yù)測輸入到另一個模型中用以學(xué)習(xí)錯誤)等等。

每個人都能建模,不會寫TensorFlow的源代碼也能開發(fā)出復(fù)雜且成功的模型,開發(fā)模型只需要擁有創(chuàng)造力和實現(xiàn)想法的意愿。

[[376435]]

圖源:unsplash

策略技巧層面

這部分提到的技巧更多與參賽者在競賽中的策略使用和心理狀態(tài)相關(guān)。

1. 經(jīng)常查看討論區(qū)

我必須承認,想出新的思路太難了。能夠站在愿意分享信息的巨人肩上也挺好的,這值得鼓勵。這里有太多值得一試的想法,定期查看討論區(qū)有助于了解哪些有用,哪些沒用。

 

想在Kaggle比賽中進入前4%,你需要掌握哪些訣竅?

 

 

Kaggle競賽討論區(qū)中一些有幫助的帖子

 

比賽中,一個名為TabNet的模型獲得了前所未有的成功。這個模型彌補了神經(jīng)網(wǎng)絡(luò)在處理表格數(shù)據(jù)上的缺陷。因此,我們對其進行了研究并將之納入了我們的最后一版方案,其中就包括了TabNet的兩種變體。但是,要記住,不能把別人的想法作為探索的終點,而是要作為一個跳板。有以下兩點原因:

  • 復(fù)制-粘貼不會讓你學(xué)習(xí)和成長。
  • 請記住,你能看到的方案或許別人也能看到。如果想要在競爭中占有一席之地,就需要發(fā)揮出自己的優(yōu)勢。

2. 不要過于關(guān)注公開的排行榜

Kaggle有一個公開的排行榜系統(tǒng)和一個非公開的排行榜系統(tǒng)。

  • 公開的排行榜包含了參賽者在比賽期間的分數(shù)。該分數(shù)只基于測試數(shù)據(jù)的25%。
  • 非公開的排行榜則代表了最終排名,并且由測試數(shù)據(jù)的75%計算得出。

從最終確定的排行榜中不難發(fā)現(xiàn),公開的排行榜和非公開的排行榜之間有很大的差異,參賽者名次可能會前后移動數(shù)百個位次。Kaggle可能是用這種系統(tǒng)來防止作弊。

參賽者在公開的排行榜上的名次更多的只是一個范圍,而不是確定的位次。很有可能最終的名次會比公開的排行榜上的名次上下浮動5%。因此,這能很好的估量排名所在的范圍,但是離最終的名次還有一定距離。

不要因為公開的排行榜上的分數(shù)而灰心喪氣(或備受鼓舞)。在比賽中設(shè)計方案時一定要記住所給出的測試數(shù)據(jù)也只是真實的測試數(shù)據(jù)的一小部分而已。

請銘記這一切都是為了增長見識!

[[376436]]

圖源:unsplash

在比賽中,照搬照抄他人辛苦所得的方案很容易就讓人掉入圈套,只為了瘋狂追求增加那一點點分數(shù)的零頭。

Kaggle真的是一場以增長見識、經(jīng)驗為目的競賽。對于大多數(shù)人來說,不管是微調(diào)復(fù)雜模型,還是為了神經(jīng)網(wǎng)絡(luò)仔細琢磨優(yōu)化器的具體變種,都不值得花費數(shù)小時的時間,但正是這種大量的試驗和經(jīng)驗才是最最重要的。

只要我們專注于學(xué)習(xí)和思考,我們就有可能取得很大的進步。這就是高效成功學(xué)的核心:利用有限的精力和時間獲得最大的學(xué)習(xí)效果。

Kaggle的排名本身就代表著在數(shù)據(jù)科學(xué)領(lǐng)域?qū)W習(xí)的巨大成就。然而,除非你已經(jīng)有很大希望獲得獎金(這很不錯),那么這個排名僅僅只是一個里程碑,并不能保證為參賽者帶來任何工作。

正如Monolith AI的高級數(shù)據(jù)科學(xué)家Gareth Jones在一篇文章中所寫的:“最近,我發(fā)現(xiàn)至少有兩位雇傭我從事現(xiàn)今工作的人完全不知道我在Kaggle的資料,盡管在我的簡歷還有領(lǐng)英的頂部都有鏈接。”

“話雖如此,在面試的過程中,我能夠詳細的討論各種Kaggle的項目。因此,Kaggle競賽在這方面肯定是非常有用的。在我現(xiàn)在所從事的工作之前,我的大部分的機器學(xué)習(xí)和實踐經(jīng)驗都是從Kaggle中獲得的。我想不論如何得來的經(jīng)驗都彌足珍貴。”

想要通過Kaggle獲得經(jīng)驗,有以下幾個要點需要注意:

  • 遵守規(guī)則——這也是挑戰(zhàn)的一部分。獲得優(yōu)勝的方案需至少由八個以上的模型組成。由于Kaggle的筆記本有時間限制,大多數(shù)的參賽者會提前將模型在個人電腦上運行幾十個小時,再上傳模型權(quán)重。這需要大量的工作,而且這不是打破規(guī)則,而是嘗試挑戰(zhàn)使用Kaggle的計算模式,是想要獲得經(jīng)驗的必經(jīng)之路。
  • 嘗試同時參加兩場比賽。我認為這有助于提高個人能力。如果需要同時完成兩場比賽(或更多,如果你有野心的話),那么一定會讓人更注意力集中在總體思路和解決問題上,不會再關(guān)心那些只會影響到一百分點的細節(jié)。除此之外,若是你對其中一場比賽感到失望,還能立馬切換到另一場比賽之中。
  • 記住“三日原則”。如果某項任務(wù)花了超過三天時間還沒有顯著進步,那就別管它了!在整個機器學(xué)習(xí)過程中還有很多要花時間研究的地方,比如特征工程和創(chuàng)意建模。比起去尋找藏在互聯(lián)網(wǎng)暗角里的某個小文件,思考的過程才更有價值。

下面是要點總結(jié)。

技術(shù)學(xué)習(xí):

  • 完美無缺的特征工程
  • 嚴格把控功能選擇
  • 先理解方案,再設(shè)計方案。
  • 探索模型中無限的可能性與創(chuàng)造性。

策略學(xué)習(xí):

  • 經(jīng)常查看討論區(qū)。
  • 不要過于關(guān)注公開的排行榜。
  • 請銘記一切都是為了增長見識!

希望你學(xué)有所思、有所獲。

 

 

責任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2018-11-28 13:23:19

Kagglefeatexp特征

2016-12-26 16:34:41

技術(shù)

2021-04-09 22:50:55

測試工具軟件

2022-11-04 13:06:47

JVMJava程序

2011-05-23 18:43:39

SEO

2020-12-28 11:11:26

前端開發(fā)語言

2021-06-07 13:53:38

ServiceIngressKubernetes

2020-04-20 10:31:49

研發(fā)團隊數(shù)據(jù)

2015-04-20 14:23:18

數(shù)據(jù)數(shù)據(jù)產(chǎn)品經(jīng)理技能

2023-03-17 16:45:57

2020-10-14 14:44:51

iPhone 12蘋果iPhone

2020-01-09 17:28:39

編程語言機器學(xué)習(xí)Python

2020-08-06 08:27:21

JavaScript概念語言

2022-12-27 14:18:45

K8S命令

2024-08-13 15:09:41

2020-04-22 14:41:17

JVM參數(shù)函數(shù)

2020-08-05 08:25:58

大數(shù)據(jù)Java技術(shù)

2018-07-04 09:35:08

程序員IT行業(yè)習(xí)慣

2021-10-26 08:57:37

AI處理單元數(shù)據(jù)中心

2022-10-25 08:01:17

洋蔥模型Koa
點贊
收藏

51CTO技術(shù)棧公眾號