Kaggle Grandmaster是怎樣煉成的

選自Medium

作者:Vladimir Iglovikov

機器之心編輯部

Vladimir I. Iglovikov 是一名 Kaggle 頂級大師(Grandmaster),曾獲得過 Carvana 圖像遮蔽挑戰的冠軍,以及 Dstl 衛星圖像特徵檢測挑戰的第三名。他曾在 UC Davis 獲得過理論凝聚態物理學博士的學位,現在是一名 Lyft 的計算機視覺工程師,主要研究自動駕駛。

最近,Vladimir 分享了自己成爲 Kaggle 高手的經驗。目前,Kaggle 註冊用戶數量已超 100 萬,其中只有 124 人擁有 Grandmaster 頭銜,如何成爲全球排名前千分之一的數據科學家?讓我們看看他是怎麼說的。

我叫 Vladimir,本科畢業並獲得理論物理學位後搬到了硅谷,從事數據科學相關的工作。我當前在 Lyft 公司的自動駕駛部門工作,研究與計算機視覺相關的應用。

過去幾年來,我花了很多時間參加關於機器學習的比賽。這樣做是因爲,一方面我覺得它本身很好玩,而另一方面,我覺得這是一種非常高效的數據科學技能提升方法。當然,不是所有的比賽都很容易,我也不是在每場比賽中都能獲得好成績。但時不時地參加這些比賽,讓我不斷地提高了自己的相關技能,甚至最終獲得了 Kaggle Grandmaster 的稱號。

我要向 @Lasteg 表示感謝,是他提議我參加這期的 AMA(Ask Me Anything session)並在 Reddit、kaggle、science.d3.ru(in Russian)上收集問題。他收集有很多問題,我會盡我所能去回答,但沒辦法在本篇博客中解決所有問題。如果你的疑問未能在本文獲得解答,可以在評論中留言。

以下是我(或我的團隊)有幸躋身排行榜前列的一些深度學習挑戰:

  • 在 Ultrasound Nerve Segmentation 中獲得第十名
  • 在 Dstl Satellite Imagery Feature Detection 中獲得第三名
  • 在 Safe passage: Detecting and classifying vehicles in aerial imagery 中獲得第二名
  • 在 Kaggle: Planet: Understanding the Amazon from Space 中獲得第七名
  • 在 MICCAI 2017: Gastrointestinal Image ANAlysis (GIANA) 中獲得第一名
  • 在 MICCAI 2017: Robotic Instrument Segmentation 中獲得第一名
  • 在 Kaggle: Carvana Image Masking Challenge 中獲得第一名
  • 在 Kaggle: IEEE's Signal Processing Society—Camera Model Identification 中獲得第九名
  • 在 CVPR 2018 Deepglobe. Road Extraction. 中獲得第二名
  • 在 CVPR 2018 Deepglobe. Building Detection. 中獲得第二名
  • 在 CVPR 2018 Deepglobe. Land Cover Classification. 中獲得第三名
  • 在 MICCAI 2018: Gastrointestinal Image ANAlysis (GIANA) 中獲得第三名

Q:除了數據科學以外,您生活中喜歡做些什麼?

A:當然,我喜歡徒步旅行、攀巖。如果你早上去 Mission Cliffs 攀巖館,見到我可以打個招呼。

我也喜歡跳舞,特別是 Bules Fusion。舊金山的 Misiion Fusion 和 South Bay Fusion 舞蹈產地是我經常去的。

旅行對我來說很重要。春天的時候我去了白俄羅斯、摩洛哥、約旦。九月,我在芬蘭、德國、奧地利呆了三週。當然,2018 Burning Man 是今年最爽的活動。

Q:你如何在工作的同時花很多時間做 kaggle 呢?

A:對我來說,雖然沒有薪酬,但參加 Kaggle 比賽是我的第二職業。我這麼做理由很充足。活躍的 Kaggle 參與者追求領域的改變很常見。我也不例外。當我從學界轉向業界時,我開始參加比賽。我需要一個高效的方法來儘快熟悉 ML 需要解決的問題,掌握那些工具,並將思維擴展機器學習的新領域。

後來,當我在 Bidgely 開始我的第一份工作之後,我參與的 Kaggle 賽事更多了。有段時間,我在研究信號處理任務,同時幾乎將所有晚上的時間用來處理參加比賽用的表格數據。那段時間我的工作和生活有些失衡,但我獲得的知識卻是值得的。

再後來,我做好準備換工作以後,加入了 TrueAccord,在那裏我做了很多傳統的機器學習任務。但我不想停止對 Kaggle 的研究,所以我白天做的是傳統機器學習,晚上和週末研究深度學習。也因此,工作和生活更加無法保持平衡。但我學到了很多東西,獲得了很好的附加技能,成爲了 Kaggle Master。當我加入 Lyft Level 5 時,我知道所有這些努力都沒有白費,在這份工作裏我將深度學習應用於自動駕駛問題上。

最終,我沒有全職做 Kaggle,但我仍在積極地學習。工作中有很多有趣的計算機視覺問題,我正嘗試在 Kaggle 沒有涉足的領域裏獲得更多的知識。我仍然時不時地向各種比賽提交參賽作品,但這主要是爲了更好地理解其他參賽者正面臨的問題和挑戰,這樣做反過來有助於我從論壇分享的信息中獲得很大的收益。

Q:幫助你提高工作效率的日常慣例是什麼?你如何安排一天的行程?

A:首先,我不太確定自己是否高效,因爲我總是在尋找新的辦法優化工作方式。

需要解決的問題和需要參與的活動總是很多,但不是所有的都有用又好玩。所以我做什麼事情都要優先考慮。有兩本書對這個話題進行了精彩的討論:《So Good They Can't Ignore You: Why Skills Trump Passion in the Quest for Work You Love》和《Deep Work: Rules for Focused Success in a Distracted World》。

工作日,我一般早上 6 點起牀,然後去攀巖館。這樣做能幫助我保持身材並讓我一天都保持清醒。之後,我開車去上班。我們的自動駕駛工程中心位於 Palo Alto,這對我來說有點憂桑,因爲我更喜歡住在市區。開車很有趣,但通勤很煩。爲了讓通勤時間更有效率,我會在車裏聽有聲讀物。開車時當然沒法專心聽書,但在駕駛時聽聽這些文學、有關軟技能和商業的書總是不錯的。

我想好好把握工作和生活之間的平衡,但沒有做到。當然,我花了很多時間和朋友參加不同的活動,而且很多活動是在舊金山。同時,我仍需要學習;我還要保持機器學習的狀態,不能把目光侷限在工作中遇到的問題上。所以我晚上有時候會閱讀技術文獻,或者爲比賽、輔助項目和開源項目編寫代碼。

談到開源項目,我想藉此機會推廣一個圖像增強庫,該庫是由我和 Alexander Buslaev、Alex Parinov、Eugene Khvedchenia 一起基於我們有關視覺挑戰賽的研究創建的。

如果不闡述細節的話,可能沒法說清楚這個問題:

  • 我更喜歡 Ubuntu+i3 的電腦,而不是 MacBook,因爲這樣能讓我的效率提升 10%。
  • 我很少用 Jupyter notebook,僅用於 EDA 和可視化。幾乎所有的代碼我都是在 PyCharm 上寫的,然後用 flake8 檢查,再傳到 GitHub 上。很多 ML 問題都非常相似。找一個更好的代碼庫,而不是重複自己的代碼,然後思考如何最好地重構。這樣做雖然在開始時進展緩慢,但後面會加快你的進步。
  • 我正在嘗試編寫單元測試。所有人都在討論單元測試在數據科學中的重要性,但很少有人花時間去寫。Alex Parinov 寫了一個很好的文檔(https://albumentations.readthedocs.io/en/latest/writing_tests.html),教你怎麼從簡單的測試做到複雜的測試。你可以嘗試一下,然後再你的學術或 Kaggle ML 流程中添加更多測試。
  • 目前,我正在試用模型版本化工具 DVC,我希望它能增加我的 ML 流程的復現率和代碼的可重用率。
  • 我很少用鼠標。因此我有時候需要在頁面上寫熱鍵,然後儘可能多地使用它們。
  • 我不使用社交網絡。
  • 我一天僅查收幾次郵件。
  • 我甚至會在早上列一個當日任務清單,然後解決它們。我使用 Trello 來做這個。
  • 我不會把一天的時間分割得很亂。很多任務需要集中精力,而總是切換焦點沒什麼用。

以上大概就我的一些工作標準了。

Q:你如何跟上這個領域的最新研究?

A:「跟上」這個詞對我也不太準確,機器學習領域近來很活躍,有關的論文數量、比賽、博客和書籍非常多,不可能全部瀏覽。實際上,當我遇到一些問題時,我會把注意力放在最新的研究上,並深入挖掘。解決完這個問題後,我再轉向另一個問題。因此,我只對那些我親身經歷過的領域瞭解較深。同時,我對研究過的問題都有較深的專業知識,這個問題清單很長,而且還在持續增加。這個事實也讓我確信,將自己編寫並保存在私人存儲庫中的經驗和代碼將有助於我快速開始任何新的 ML 相關任務。

此外,這還意味着我對很多問題的處理方式都有大概的瞭解,這樣我下次面對類似的問題時心裏也有譜。

我還參加過像 NIPS、CVPR 這樣的人工智能會議,在這些大會上展示的研究成果能夠很好地代表我們當前的研究水平。

Q:四五年前,在非機器學習領域拿到一個博士學位(如物理學)對僱主是有利的。但現在的情況好像變了,非機器學習領域的博士學位和機器學習的碩士學位相比,IT/ML 行業更願意選後者擔任機器學習工程師/開發者職位,至於研究崗我不太清楚。您獲得了物理學博士學位,然後轉到機器學習領域,我認爲您的經歷可能適合回答這個問題。

如果獲得非機器學習博士想轉到機器學習行業,您對此有何看法?這有助於獲取企業內的研究職位嗎?與機器學習相關碩士相比有優勢嗎?

A:這個問題比較困難,我不知道答案。

物理學是一門偉大的學科。即使回到過去,可以在物理學和計算機科學之間進行選擇,即使知道我最終會轉到計算機科學領域,我仍然會選擇物理學。

當然,主要原因是我對物理學和自然科學比較感興趣。機器學習能夠講授浩翰多彩宇宙的運行原理嗎?不能,但是物理學可以。不止如此。我的轉型之路相對容易的原因之一是物理學,這門學科給予我的不僅是量子力學、相對論等知識,還有數學、統計學、編程技巧,這些技能有利於向其他領域的轉換。

物理學教會你如何在嚴謹理論和實驗之間以結構化的方式進行轉換,這對機器學習從業者而言也是一項必備技能。另外,自學集合不可能學習物理學或高等數學。這點也是我的公司信條,即深度學習的下一個大突破將在我們明白如何將高等數學應用到機器學習中的時候出現。現在具備大一水平的數學知識在計算機視覺領域已經足夠了。

所有這些都意味着目前數學不是攔路虎,這也是掌握了數學/物理學/化學和其他 STEM 學科的額外知識對於解決大部分商業問題幾乎無用的原因,也是這些學科的畢業生轉行的原因。他們擁有大量專門知識,有博士學位,在學界待了很多年,但無法得到有趣且高薪的工作。網絡上到處是這種類型的博客文章。

另一方面,能寫代碼在各個地方都是必要的,這也是潛在僱主在瞭解數學的人和能寫代碼的人中間幾乎總是選擇後者的原因。

但我認爲這種情況會改變的。不是現在,是未來的某個時間點。

你讀的論文、你上的課可能與你在行業中所需的技能並不直接相關,注意到這一點很重要。這是對的,但無傷大雅。

通常,在業界作爲數據科學家或軟件開發者工作所需的技能可以通過自學學習,不能在大學裏學到。人們在工業界學到的大部分事情可以通過在某家公司的全職工作來獲取。

此外,找工作的同時還要寫理論物理學論文、研究數據科學,這對我來說壓力太大了。

當時,我並未掌握所有必備知識,我也不理解硅谷的運作和他們對我的期望。我基本上是一張白紙,我做的唯一一件事是不斷地把簡歷投給不同的公司,不斷地面試,從每次失敗中學習,然後再繼續,直到面試成功。

我記得有一次面試官問我畢業論文主題是什麼,我當時在研究量子蒙特卡羅(Quantum Monte Carlo),我如實回答了這個問題,然後盡力解釋它的意思以及我們爲什麼需要它。面試官看着我,問了一句話:「這項技術如何幫助我們提高客戶參與度?」

我想說對於非計算機科學專業的人來說,最好的方法是參加計算機科學系內部的數據科學(DS)相關課程。業餘時間學習 DS / ML。幸運的是,有很多資源。在自己院系中找到一個想使用機器學習解決自己問題的教授也是個好主意。申請技術公司的 ML 相關實習崗位,拿到實習崗位比獲得全職工作容易一些。

實習後轉爲正式崗就很直接了。比如我的朋友胡文健,他和我同一個研究小組研究物理學,他先在 Facebook 實習,後來得到了 Facebook AI Research 的研究科學家職位。

不要高估專業、大學對找工作的影響。企業僱傭你時,主要是付錢讓你解決他們面臨的問題。你的學位和專業只是他們用來估計你能力的東西。如果你的簡歷中沒有他們想看到的內容,那很難通過 HR 的簡歷篩選,對找工作很重要的人際關係網也會減弱,但這仍然不應該影響你決定自己學什麼專業。

我的想法可能有點天真,但我覺得人們選擇自己專業的標準,不應該是高薪,而是熱情(passion)。

Q:你覺得數據科學/ML 中有趣的問題是什麼?我的碩士學位完成了一半,但我不知道以後要從事 ML 哪方面的工作。我和認爲 Algo 創建與擴展是最好領域的人交談過(對於 DS / ML 應用程序而言,更可能是庫插件和 chug)。對此你有什麼看法?或者關於職業靈活性的建議?

A:我認爲 DS/ML 中有趣的問題與當今主流相去甚遠。研究主流問題的人太多。將 ML 應用於信用評分、推薦系統和零售等我都覺得很無聊。如果你用 DS/ML 來解決那些數學、物理、生物、化學、歷史、考古、地理問題或者那些人們很少應用 ML 的問題,你可能會找到下一個屬於你的 Purple Cow。

至於職業選擇,與生物或物理不同,你在 DS/ML 中學到的技能很容易從一個領域轉到另一個領域。當然,開發銀行或對衝基金交易的算法和開發自動駕駛汽車不是一回事,但差別也沒有那麼大。只要你基礎牢固,很快就能掌握必要的技能。

Q:30 歲(有學習背景,但不是 Math/CS 方面)加入 ML 社區是否爲時已晚?是否有可能趕上末班車?如果可以,你覺得最低要求是什麼?

A:當然不晚。90% 的 ML 只需要技術大學大一的數學知識,不需要超深的數學知識。DS 中使用最廣泛的語言是 Python 和 R 語言,這兩種語言比較高級,因此你可以從它們入手,而不是在技術細節方面死磕。

我建議參加一些 DS 的在線課程,然後研究一些 Kaggle 問題。當然,很多概念聽起來都很新,但你只要保持自律和專注,慢慢就會懂了。

這兒有兩個關於年齡的例子:

  • Kaggle Grandmaster Evgeny Patekha 40 歲纔開始數據科學研究。
  • Kaggle Grandmaster Alexander Larko 55 歲纔開始參加 Kaggle。

Q:你認爲技術領域的正規基礎教育對獲得數據科學和 Kaggle 比賽的成功是必要的嗎?在你的工作經歷中有沒有遇到相反的例子?

A:我只能說這些很有用,但並非必要。很多在 Kaggle 中獲得成功的人並沒有技術領域的基礎教育背景。典型的例子就是 Mikel Bober-Irizar,他是一名 Kaggle Grandmaster,但還在念高中……

不過你要記住的另一件事是:你在 Kaggle 中學到的技能只是你將來在 ML 業界或學界所需技能的一小部分。而那些在 Kaggle 中無法學到的技能,基礎教育可以爲你提供。

不過話說回來,就算沒有高中學歷你也能擅長 Kaggle。

Q:你用了多長時間學習數據科學/機器學習,才成爲了 Kaggle 高手?

A:我是在 2015 年 1 月決定轉向數據科學的。在這之後,我開始在 Coursera 上學習線上課程。在當年 2 月底,我知道了 Kaggle 的存在並註冊了自己的賬號,兩個月之後我獲得了自己的第一個銀牌。

Q:使用家用臺式機不用雲服務在 Kaggle 比賽裏能得高分嗎?

A:我不在比賽中使用雲服務,但我家裏有兩臺比較強力的計算機:一臺有 4 塊 GPU,另一臺有兩塊。你可以在沒有強大深度學習機器的情況下獲得 Kaggle 比賽的好成績,但是缺乏算力的限制會使你在單位時間內嘗試思路的數量——而思路的數量和最終的結果密切相關。所以如果你以 24/7 的投入訓練模型,你就需要投資購買一臺好機器。

在幾代更新之後,我的開發硬件最終變成了這樣:一臺 4GPU 的機器用於高負載,另一臺雙卡的機器用於原型設計。

僅有一臺強大的計算機還是不夠的,你需要學一些編程技巧,來利用它的算力。

  • 我從 Keras 轉到 PyTorch 的一個原因是當時後者的 DataLoader 更加強大。
  • 我們看到 imgaug 太慢了,於是寫了 albumentations,以利用 100% 的 CPU 算力,不過它沒法充分利用 GPU。
  • 如果想加速硬盤上 jpeg 圖像的吞吐速度,我們不應該使用 PIL、skimageand 甚至 OpenCV,而是應該用 libjpeg-turbo 或 PyVips。

其他

Q:對於從 Kaggle 競賽開始數據科學家生涯的人,你對他們有什麼建議嗎?特別是那些首次參加競賽的菜鳥,有什麼最好的建議?

A:有很多方式來參加 Kaggle 競賽,但根據我的觀察經驗,獲取所需知識的最高效方法是使用黑客的方法。

  1. 觀看一些包含 Python 編程基礎和機器學習的在線課程。
  2. 參加一個 Kaggle 競賽。如果你可以寫出一個從數據到提交的端到端流程,這很好。如果你是新手,這可能很難。在這種情況下,可以去論壇複製粘貼別人共享的 kernel。
  3. 在你的計算機上運行,生成一個提交,在排行榜上獲取名次。在這一階段,操作系統、驅動程序、庫版本、I/O 等問題可能會讓你覺得很痛苦。你要儘快習慣。如果你不能理解 kernel 裏寫的什麼,沒關係,問題不大。
  4. 調整一些參數,隨便調也沒關係,重新訓練你的模型,提交預測。希望某些修改可以讓你的排名提升。不要擔心,很多人都是這麼做的。他們都在做不同的調整,你不需要對相關知識或原理有深刻或直觀的理解。

爲了超越周圍的調參俠,你要發展出一種直覺,並獲取關於什麼方案可行、什麼方案不可行的基礎知識,從而可以更加智能和高效地探索可能方法的相空間。在這一步,你需要將學習作爲實驗的一部分。從兩個方向學習,首先是像 mlcourse.ai、CS231n、數學、統計學、如何寫更好的代碼等基礎。一般來說,自主學習很難,但從長期來看,這很重要。其次你會在相關問題的論壇上看到很多新術語。記得注意這些術語。嘗試激勵自己在排行榜中取得更好成績作爲外部動力來學習新事物。但不要在學習和實驗之間進行選擇,同時做兩件事。機器學習是一門應用科學。

在競賽結束之後,雖然付出了很大的努力,但你也很可能在排行榜上取得很低的名次。這不奇怪。好好閱讀論壇的內容,看看 winner 分享的解決方案,嘗試找出比之前更好的解決方案。下一次當你看到相似的問題時,你的起點會高得多。

在多個競賽中重複該過程,然後到達 top。更重要的是,你將對很多問題擁有好的解決方案,並且對於如何處理在競賽中遇到的機器學習挑戰能夠發展良好的直覺。

Q:作爲物理學背景的人,當競賽更多的是過擬合 vs 具體任務上的實際泛化效果時,你會覺得挫敗嗎?如果會,那你會怎麼處理?

A:通常,你需要過擬合數據和指標,以獲取好的結果。這沒什麼問題。人們在 ImageNet 數據集上過擬合了很多年,訓練過程中仍然會出現很多新知識。但是你需要理解指標和數據的細微之處,這是知識的來源。只要競賽過程中能夠得到新知識,那過擬合不會讓我覺得很挫敗。你可能注意到了,當你擅長一個問題的流程和想法時,這些可以作爲你下一個問題的可靠基線模型,這表明了一定的泛化性。

Q:你對 Kaggle 的數據泄露(如 Santander、Airship prediction 和 Google Analytics)有什麼看法?在 Kaggle 比賽中使用泄露的數據是否合乎道德?

A:我承認組織比賽很難,所以當發現數據泄露時,我不會指責組織者。而人們利用泄露的數據參加比賽,我也覺得 OK。我承認數據泄露阻礙了我參與一次挑戰,但這主要是因爲我無法輕易地把獲得的知識擴展到其它挑戰。我仍然認爲 Kaggle 管理員需要創建一份可能會泄露的數據清單,並在比賽前檢查數據以防止同樣的事件一次又一次發生。我相信他們正在爲此努力。

Q:Kaggle 比賽對做一名 DL 工程師有多大用處?

A:這很難說。Kaggle 在一些重要但非常狹窄的領域提升你的技能。這是一個非常重要的技能組合,對某些職位可能非常有用,但對另一些來說則幫助不大。而對我從事過的工作,尤其是現在從事的自動駕駛來說,Kaggle 技能是我從學界和其它知識來源中獲取的有力加分項。

不過,要掌握 Kaggle 技能,光有紮實的基礎並不夠。很多東西你只能從業界學習。

雖然成爲 Kaggle Master 對你的工作來說不是必需的,也並不代表你會在工作中做得很好。但我相信,如果你是 Kaggle Master,你的簡歷會更容易通過 HR 的篩選,然後有機會進入技術展示階段。

Q:成爲 Kaggle Grandmaster 之後繼續參加比賽還有什麼用處?已經成爲數據科學家之後繼續前進的動力是什麼?

A:正如我前面所說的,我現在不再參加 Kaggle 比賽了,但我開始關注很多會議上出現的挑戰賽。我的團隊在 MICCAI 2017、CVPR 2018 和 MICCAI 2018 取得了不錯的成績。競賽通常包括漂亮、乾淨的數據集,這些數據需要的清理工作最少,可以讓你少關注數據,多關注數值技術。這是你在工作中通常沒有的奢侈品,數據選擇過程通常是創建實用流程的最重要的組成部分。

Q:你對於本科生和研究生的學習和競爭力有什麼看法?什麼水平才能真正掌握數據科學?

A:我甚至不知道是什麼決定了數據科學。這個問題有很多回答的方式,但在這裏我們的主題是 Kaggle Grandmaster,所以讓我們把第一個里程碑設置爲「Kaggle Master」。這是相對直接的標準,一旦你開始朝着這個方面努力,你就會對這一領域有更多的瞭解。

Q:如果沒有數學/計算機科學或其他一些高級計算課程教育背景,你在 Kaggle(或者更廣泛地說是數據科學領域)上可以走多遠?激情和求知慾能帶你走多遠?

如果以目標爲導向並且願意學習,你可以在 Kaggle 或其他任何數據科學領域獲得最高成績。最艱難的是邁出第一步。Just do it!最好的時間是此時此刻,因爲明天,通常意味着永不。

沒有人問過我這個問題:在一場特定的比賽中,你是如何找到幫助你提高成績的人的?我覺得這是一個目前在博客中還沒有看到過的重要話題。

最常見的方法:一些朋友、同事對這個比賽很有熱情,他們聊這個比賽,一起開會、討論問題並組隊。一些人想做些事情;但另外一些忙於其他活動。這種團隊可以往前走一段,但走不遠。

對於我以及其他一些參賽者來說更好的方式有以下幾種:

1. 寫出你的流程或平臺上分享的重構流程。

2. 這個流程應該以適當的格式將輸入數據映射到提交的文件中,並生成交叉驗證分數。

3. 驗證交叉驗證分數的改進與排行榜上的改進相關。

4. 執行探索性數據分析,仔細瀏覽論壇,閱讀論文、書籍和之前類似競賽的解決方案。獨立工作。

5. 在某個時間點,比如競賽截止前 2-4 周,你會陷入困境。什麼想法都沒法改進你的排名。你嘗試了一切,這時你需要新的想法來源。

6. 這時你可以看下排行榜,與排名接近的積極參賽者進行溝通。

7. 首先,你的預測平均值會帶來微小卻重要的提升。其次,很可能你的方法有一點不同,分享試過或沒試過的想法是有益的。第三,由於競賽最初是個人單獨參賽,因此所有參賽者都會看數據、寫流程、將競賽的重要性置於其他活動之上,以及受實時排行榜帶來的遊戲效應的刺激。

但更重要的是,人們傾向於高估自己願意花在競賽上的時間,低估獲取穩定端到端流程之前要面臨的問題。用排行榜來創建團隊可以作爲過濾器,確保你的潛在隊友和你達成共識。

在一些競賽中,領域知識對於性能結果非常重要。例如,表格數據(tabular data)和對應的特徵工程或醫學成像,你可以考慮和具備深厚領域知識的人組隊,即使他/她沒有強大的數據科學背景,不過這種情況比較稀少。

另一方面,業界組建團隊的方式完全不同。使用 Kaggle 的方式在業界組隊是不明智的。

在這裏,我要感謝所有曾經與我組隊的人,他們在比賽中教會了我很多:

Artem Sanakoeu, Alexander Buslaev, Sergey Mushinskiy, Evgeny Nizhibitsky, Konstantin Lopuhin, Alexey Noskov, Artur Kuzin, Ruslan Baikulov, Pavel Nesterov, Arseny Kravchenko, Eugene Babakhin, Dmitry Pranchuk, Artur Fattakhov, Ilya Kibardin, Liam Damewood, Alexey Shvets, Anton Dobrenkii, Selim Seferbekov, Alexandr Kalinin, Alexander Rakhlin.

下一次 Kaggle 比賽裏見!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章