譯者注:Kaggle是一個為開發商和數據科學家提供舉辦機器學習競賽、托管數據庫、編寫和分享代碼的平臺。本文作者講述了自己在該平臺上多次贏得競賽的成功經驗。以下是譯文。
我曾經通過參加Kaggle的競賽來學習機器學習。在2011年,在幾乎不懂數據科學的情況下,我參加了場競賽。很快,我就在一場股票交易大賽中獲得了大約一百個人中的第五名。在接下來的一年里,我贏得了自動化論文評分和債券價格預測的幾場競賽,并在其他方面也取得了不錯的成績。
Kaggle競賽需要獨特的技能、運氣和團隊合作才能獲勝。各類知識摻雜在一起,因競賽類型的不同而不同,而且經常會令人感到驚訝。
例如,在人格預測競賽過程中,我大部分時候都是或者第二名,但是,由于在特征選擇階段過度擬合而終獲得了第十八名。在Kaggle的博客上可以找到在競賽結束時發生的那些看似是半隨機變化的好帖子。
在這篇文章中,我將分享自己在Kaggle競賽中獲得成功的訣竅。
要在Kaggle競賽中取得成功,首要條件就是堅持不懈。當你看到次提交的排名時,很容易會產生氣餒的情緒,但你絕對應該繼續嘗試下去。在一場競賽中,我在一個主題上差不多嘗試了所有的方法。
在我的次Kaggle競賽,“照片質量預測”競賽中,我終排在了第50名,我不知道那些頂級對手所做的與我做的有什么不同。
然后,我開始從競賽中總結經驗。在我的第二場競賽,“算法交易挑戰賽”中,成績比原先好了一點。
從照片質量預測到算法交易,影響競賽結果發生變化的因素正是學習和堅持不懈。在場競賽中,我并沒有花太多的時間,所以結果就體現出來了。
提交錯誤答案較多,終的分數當然不會好。你應該在競賽的過程中閱讀盡可能多的文獻(和博客文章等等)。只要你學到的新東西可以應用在競賽中,或者從失敗的提交中學到東西(也許某個特定的算法或解法并不合適于這個數據),那么,說明你已經走上正軌。
堅持不懈的動力來自于自身內部。為了讓自己愿意去學,你必須要問自己為什么要參加這么一個特定的競賽。你想要學習嗎?你想要通過一個較高的名次來獲得某些機會嗎?或者你只是想要證明你自己嗎?大多數Kaggle競賽的金錢獎勵并不值得消耗大量的時間,所以,除非你清楚地知道你自己想要什么,如何激勵自己。對你來說名次重要嗎?如果不重要,你可以很輕松的學到一些有趣的東西,這些可能會也可能不會影響成績,但是如果你想要得名,你就不會這樣了。
要取得好的名次,重要的與數據相關的因素是如何準備數據,以及如何構建特征。算法的選擇很重要,無需多言。
你只需要使用直覺和常識,弄清楚什么是有效的,什么是無效的。對競賽真正有幫助的是創建一個好的交叉驗證框架,以便得到可靠的誤差估計。
特征構建是數據科學為什么如此有趣、如此有創意,并且與其他一些類型的編程有所不同的原因。
因為特征構建是一個非常特殊的領域,所以,擁有相關領域的知識對競賽的幫助很大。
我發現,在競賽中,你可以通過學習很快地掌握該特定領域的知識。例如,當我在參加Hewlett基金會的ASAP大賽時,我學會了NLP方法。也就是說,你需要快速地掌握你原先不了解的相關領域的特定知識,不然,你就無法在競賽中與別人競爭。
你應該在開始的時候選擇競爭比較弱的競賽。研究性競賽的競爭選手往往要比大獎賽的少。后來,我發現,經常參加更有挑戰性的競賽對我幫助很大,因為它迫使你學習更多的知識,讓你走出舒適圈。
形成一個好團隊至關重要。在兩個不同的競賽(ASAP和Bond)中,我很幸運地能夠與的人士合作,我從他們身上學到了很多。大家往往認為存在這兩種人:一種是幾乎總是單獨工作的人,另一種是幾乎總是在團隊中和其他人一起工作的人。但如果嘗試著把這兩種情況結合起來,你將收益更多。你可以從團隊工作中學到很多的東西,但是如果你獨立工作的話,你可以學到原本需要依賴隊友才能完成的東西。
還有一些不是特別重要,但是在競賽的時候需要始終牢記在腦子里的事情。
我以前曾經提到過,運氣也很重要。例如,在一些競賽中,第三和第四名就差了0.001%。在這一點上,很難說他們誰的方法是更好,但是卻只有其中一個被認為是贏家。 我想,這就是Kaggle上的一個事實。
機器學習的偉大之處在于,你可以將類似的技術應用于幾乎任何問題上。你無需挑選那些熟悉的或者有特別見解的那個領域問題,坦白地說,獨立學一些新知識,做一些新的事情更有意思。當你在某一天突然有了一個好的想法,其他人也許也會想到,但是他們可能要在到第20天或第60天才會去實施。
不要因為名次低而擔心。有時,你會看到某個有趣的競賽,但是你可能沒辦法花太多的時間在這上面,從而無法得到一個好的名次。請不要擔心這個。沒有人會以名次取人!
對你來說,更重要的是從準備答案的過程中獲得經驗學到知識,而不是擔心你個人資料中的名次會怎么樣。
每個獲勝的Kaggle條目都是由數十個小的見解組成。如果你做到了上面所有這些,不斷地學習,并且不斷地迭代你的解決方案,你就會做得更好。
有數百篇Kaggle教程和文章,還有數千篇有關機器學習的文章、書籍和資源。不要停止學習,不要害怕使用Google來回答你的問題。
此外,Kaggle論壇是一個很好的資源,KaggleNoobs社區也不錯。
后,令人驚嘆的Eliot Andres維護了一個可搜索和可排序的Kaggle過去所有解決方案的匯總。一旦你要準備參加競賽,你可以從中了解到獲勝者們是如何做的:Kaggle過去的解決方案。
強調的兩個主要觀點是堅持和學習。這兩個概念可以很好的體現出我在Kaggle的經歷,即使沒有贏得競賽,只要你學到了一些東西,你所花的時間就是值得的。
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。