最年轻的Kaggle Master:永远不要复制别人的工作!
Andy Wang,高中新生,學習經驗總結
有些人可能會覺得數據科學和機器學習這兩個術語令人生畏,認為它們需要專業技能才能成功。盯著無窮無盡的代碼,可能會讓人不知所措。
Kaggle是許多人開始數據科學的地方,在這篇文章中,將分享Andy(14歲)是如何成為最年輕的Kaggle Master。
個人介紹
我是 Andy Wang,一名高中新生,對數學、人工智能和計算機科學有著濃厚的興趣。我在Kaggle上學習和提高我的技能,獲得了2枚銀牌和1枚金牌。
幾年前,我開始對數學產生興趣,并開始學習比我在學校自學的更高級的主題。不久之后,我開始研究編程,因為我從小就對計算機科學著迷。
通過關鍵詞搜索我找到了幾門教授 Python和基本編碼概念的課程。不久,我開始自己編程,使用回溯算法制作小項目,例如數獨求解器。
我是如何進步和學習的
我對編程和機器學習概念的了解主要來自互聯網。有疑問時,互聯網是最好的老師 。沒有學校教授數據科學或神經網絡,如果我想在 Kaggle 上取得成功,我就靠自己了。
隨著學習資源的增加,人們不知道從哪里開始或如何學習。因為“數據科學”和“機器學習”相關的領域太多,精通每個類別幾乎是不可能的。對于像我這樣的初學者,您需要找到自己感興趣的東西,并充分挖掘它所能實現的潛力。
數學是一切的基礎,線性代數和微積分是機器學習中使用的兩個最重要的數學概念。幾乎所有的機器學習算法都以某種方式與這兩個領域相關。數據以向量和矩陣的形式表示和處理。因此需要了解矩陣的基本運算。
在了解了基礎知識后,我開始著手編寫代碼。憑借面向對象編程(OOP) 和 Python的基本知識,我找到了一些在線課程,這些課程教會了我機器學習中常用的所有庫。
一點一滴的學習,一開始學到的知識,將來可以輕松積累成復雜的東西。
Andy最開始參加了使用回歸技術預測房價的初學者競賽。我發現我學到的東西遠遠不夠。我最缺的是經驗。最好的學習方法是通過失敗和嘗試新事物。
然后參加了Mechanism of Action 比賽,通過在論壇、Notebook完成快速學習,最后取得了前4%的成績。然后Andy又參加了兩場比賽,又獲得了銀牌和第一枚金牌。
我的Kaggle解題流程
從我參加的比賽中,我遵循了一個通用的流程,它不僅可以組織工作,還可以有效地產生有意義的結果。
仔細閱讀數據描述和概述。如果可能,可以嘗試探索領域知識。
在閱讀任何論文、討論或Notebook之前,嘗試自己創建一個基線。這有助于在將您的思想鎖定在其他人所說的內容之前產生全新的想法。
建立可行的交叉驗證策略并提交到排行榜。確保您的CV策略也適用于 LB,這一點很重要。
閱讀,閱讀和學習!充分探索與該主題相關的論文,在論壇和筆記本中尋找靈感。
開始在模型方面或功能方面調整基線。一次只調整一件事,所以你知道是什么導致模型改進/表現更差。
盡可能多地探索新方法,不要在行不通的事情上糾纏太久。
如果其他一切都讓你失望,模型集成是最穩定的改進方式。
選擇具有良好 CV 分數的提交。
我學習到的知識
特征選擇刪除不重要的特征,有助于減少數據中的噪聲。在 Mechanism of Action 競賽期間,論壇和討論帖中的方法對我們設計的模型沒有幫助。在這種情況下,不要害怕深入研究并閱讀論文。由于我處理的案例多標簽分類并不常見,因此我找不到任何簡單的教程。我找到了一篇論文,旨在比較使用問題轉換的多標簽特征選擇。
閱讀研究論文似乎令人生畏,但能夠瀏覽它們并從長頁技術術語中掌握關鍵詞是一項至關重要的技能。對于像我這樣的初學者來說,試圖理解你遇到的每一篇論文的每一個細節是不可能的。只有當我找到我需要和將使用的論文時,我才會嘗試理解論文中的每一個單詞和引用。
將模型調整為具有非線性拓撲結構或為表格數據構建類似 ResNet 的結構化網絡不僅在 MoA 競賽中獲得了一些驚人的結果,而且在接下來的 Jane Street Market Prediction 中也獲得了一些驚人的結果,我們在其中排名第16。
探索不同類型的自動編碼器,例如去噪、變分和稀疏編碼器,可以為您的數據帶來令人驚訝的變化,而不僅僅是簡單的特征工程和選擇可以實現的。
模型融合。組合不同模型的結果可以為您的解決方案增加多樣性,從而使其更加穩健和穩定。無論什么建模技巧奏效,合奏總是我在比賽中的“最后手段”。
始終關注新論文并探索論壇中提到的內容之外的內容。調整激活函數(嘗試swish而不是 ReLU)和優化器(嘗試AdaBelief而不是 Adam 等)之類的小東西可能只會從模型中擠出一些性能。
跳出框框思考!使用一維CNN對表格數據進行特征提取。或者使用DeepInsight,將表格數據轉換為圖像,利用 CNN 的優勢。
不要沉迷于現在的工作,繼續前進并花更多時間探索可以帶來改進的新事物。
參加 Kaggle 比賽并獲得獎牌并非易事,但通過正確的學習方法和工具,這個過程可以變得更容易。
檢查討論帖子和閱讀公共筆記本非常有幫助。每天都有新想法出現,我通過論壇中提到的論文和筆記本中使用的庫了解了一些最新且引人入勝的模型和工具。其中之一是TabNet,這是一種通過使用順序注意將特征選擇合并到模型中來對表格數據進行建模的新方法。這個模型讓我在 MoA 比賽中獲得銀牌。
最后,擁有穩定而強大的管道對于在最終的私人排行榜中取得出色表現最為關鍵。浪費時間過度擬合以在公共排行榜中獲得額外的 0.0001 是沒有意義的。始終相信您當地的交叉驗證分數,因為訓練數據量大于公共排行榜的數據量。
只是按復制粘貼對學習或贏得比賽沒有幫助。我在 Kaggle 中最重要的座右銘是永遠不要復制別人的工作,我可以從他們的想法中得到啟發,甚至使用他們的建模方法,但我從不提交其他人的工作作為我的解決方案。
在接觸新事物時,我養成了查找所有我不理解的東西的習慣,直到我可以自信地向其他人解釋這個主題。
一起交流
想和你一起學習進步!『NewBeeNLP』目前已經建立了多個不同方向交流群(機器學習 / 深度學習 / 自然語言處理 / 搜索推薦 / 圖網絡 / 面試交流 /?等),名額有限,趕緊添加下方微信加入一起討論交流吧!(注意一定o要備注信息才能通過)
-?END?-
達摩院李雅亮:大規模預訓練模型的壓縮和蒸餾
2021-12-24
周志華教授:關于深度學習的一點思考
2021-12-25
NLP 預訓練家族再思考
2021-12-22
淺談 NLP 細粒度情感分析(ABSA)
2021-12-13
總結
以上是生活随笔為你收集整理的最年轻的Kaggle Master:永远不要复制别人的工作!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: visio2003字号与word中的字号
- 下一篇: 推荐一个免费内网穿透穿软件(附带一个gi