當前位置:
首頁 > 最新 > 熱烈祝賀琪石Kaggle第一期實戰演習培訓班學員喜獲四銀一銅

熱烈祝賀琪石Kaggle第一期實戰演習培訓班學員喜獲四銀一銅

2017年秋天,琪石成立了第一期Kaggle實戰演習培訓班。俱樂部邀請到一位在江湖上頗具盛名的Kaggle金牌指導員出山,帶領學員進行Kaggle實戰演習。本屆培訓班成員取得了相當出色的成績,十位學員共獲得了Kaggle比賽四塊銀牌和一塊銅牌。今天有幸採訪到了獲獎培訓班的領隊和學員們來為我們分享學習和參賽經驗。

【琪石Kaggle實戰演習培訓班介紹】

琪石Kaggle實戰演習培訓班為期十周左右,分為兩個階段。第一階段由一位具有豐富Machine learning及Kaggle參賽經驗的金牌指導員指導學員們上手Kaggle比賽,通過線上課程+作業的形式細緻地講解了兩個已經結束的Project,第二階段以學員自願選擇自由參賽為主,將第一階段學到的知識和經驗付諸於實戰中去。學員們學習數據處理方法及部分machine learning模型的理論應用,並開始建立或者完善個人的code base。

***註:目前第二期實戰演習培訓班正在開放報名中,歡迎各位感興趣者報名,詳情請看琪石網站https://www.qishicpc.com/的 Activities 一欄***

除了Kaggle實戰演習培訓班外,琪石還開設中級機器學習班,以及高級機器學習班。中級機器學習班主要針對ML的理論方面;Kaggle實戰演習培訓班接著中級機器學習版,主要請金牌指導員講解Kaggle的項目,自願選擇是否參加Kaggle實戰;Kaggle實戰演習培訓班成績優異的學員會進入高級機器學習班,會有有經驗的領隊帶著組隊打Kaggle比賽。更進階地,還有機器學習Journal Club,通過對原文獻的閱讀推導和源代碼的學習,幫助小夥伴們進階成機器學習理論和實踐的專家。

【訪談內容】

Q: 你之前參加過Kaggle競賽嗎?在加入培訓班之前,編程和數據分析方面有些什麼樣的經驗?當時是怎樣想到要加入琪石Kaggle培訓班的?

Jinting(領隊):因為我本身是做data scientist的,所以對機器學習有一些了解,也有一些Project上手的經驗,但是之前沒有打過Kaggle比賽。後來和白石校長聊了一下,認為雖然機器學習是一個相當熱門也很具有前景的領域,但是對於很多人來說並沒有特別多的實戰機會。所以我們商量下來希望能夠設置這樣一個Kaggle實戰演習培訓班,作為琪石機器學習培訓中的重要一環,招收一批有一定機器學習基礎,同時有一定Python經驗的學員,請具有豐富實戰經驗的指導員加以指導,幫助大家做一些提升。

Bo:我之前也沒有參加過Kaggle比賽。我的背景是數學PhD,剛到trading firm工作,在理論方面比較有優勢,在數據分析和編程方面我有一些經驗但也不算很多。我當初想要加入Kaggle培訓班是因為我剛剛從學校畢業,而工作上有很多地方要用到Python,通過這個課程我可以學到data analysis的很多code應該怎麼寫怎麼用,對我來說編程方面的幫助會很大。

Bowen:我原來有過一兩次Kaggle比賽的經驗,拿到過銅牌。現在我是在一家電商互聯網公司做Data Analyst,平時也會接觸一些Machine Learning的模型,不過不是特別多。我之前學習的是金融數學,但對Machine Learning一直比較感興趣,自己也在學習。不過有些東西學的不是特別系統深刻,很有緣分的是我之前上過我們指導員Chris老師的課程,這次看到琪石再請他過來上課,覺得是一個非常好的學習機會,就報名參加了。

Qingze:我以前也玩過Kaggle比賽,當時成績是12%. 除此之外,我也去學過一些網課,在學校里修了相關的課程,但是發現這些課程大多沒有追求極致的過程,所以很多東西沒有研究深研究透;而通過這次琪石的培訓班,我確實學到了很多非常實用的數據處理方法,比如Missing Value如何處理,Model Stacking怎樣做比較好等等。

Peixin:我之前學的是ECE,偏優化和演算法研究方面,現在在一家對沖基金做Quant Developer。培訓班有Chris這樣的大神帶領,是讓我非常感激和激動的,也相當有幫助。

******

Q: 在參與培訓班這幾周內,你的成長曲線是怎樣的,有些什麼體會和收穫?你覺得自己達到最初報名參與培訓班時的目標了嗎?

Jinting(領隊):我和Chris導師商量的時候,認為安排的Kaggle教學項目涉及的領域和問題的類型應該盡量多樣化一些,我們學習的第一個是Two Sigma的和Housing行業相關的Classification問題的項目,第二個是另一個行業的Regression問題的項目。其中第一個項目相對來說比較關鍵,時間持續比較長安排了4周,用來夯實基礎;第二個項目期間學員們陸續開始自願選擇參賽實戰,因此第二個項目安排的時間相對短一些,2-3周左右。在培訓班課程期間,Chris給我們從各個角度講解了Code是如何使用的以及背後的原理,給我們提供了非常寶貴的經驗。他能比較直觀的提醒我們在哪裡會有彎路,而這都是要大量的時間和經驗積累才能得到的。我們這個班的學員都是有一定Machine Learning基礎的,Chris講的東西非常具體細節,讓學員們一步一步跟下來進階,給大家起了相當拔高的作用。

Bo:我由於自己的背景原因,理論基礎還可以而編程基礎不強。每次收到Chris的code我都跑得特別歡。我可以一步一步看他的code在做什麼,學習數據分析的code應該怎麼寫比較好比較快,對優化我自己的code非常有幫助。一開始一些功能,我會用for loop去實現,但是隨著閱讀的code越來越多,對如何使用vectorize的code去實現功能就有了更深入的理解。後期我會拿自己的coding想法和Chris的code比較一下,看誰的code更快,這段學習過程對我的編程有很大的幫助。

Bowen:剛才Jinting和Bo講得都很有道理。參加培訓班以及後面的比賽首先當然是想拿到一個好的名次,但其實另外一個很重要的目標是把Machine Learning數據分析流程的每一個環節的基礎打牢。Chris的課程中給我相當大啟發的是他關於Exploratory Data Analysis步驟的講解。拿到數據後,首先最重要的是理解問題的商業背景和數據;然後是對這些數據做一些可視化,通過可視化去發現feature,變數的分布和特徵。這些除了對我們在比賽中做feature engineering非常有幫助之外,對實際工作也非常重要,因為在工作中往往會面臨需要將數據可視化後解釋給其他同事聽的情況。另外Chris也講了有關如何做validation,如何防止overfit的一些方法和理解,加強了我對這類比賽和數據分析的理解。

Qingze:Chris教給了我們很多用時間才能換出來的實戰經驗,比如說兩個Categorial Variable在從屬關係下是否適合做interaction,在Ensemble時哪些模型放在一起會有比較好的效果,而這些都不是課本里能學到的,對我的幫助很大。

Peixin:培訓班對我來說第一階段是全面的去了解Kaggle,第二階段是比較深入的挖掘、理解和掌握技巧和方法論。在這當中借鑒到其他人的insights,對我來說特別寶貴。打個比方,我覺得Kaggle比賽就好像做一盤菜,EDA的過程就是在食材中抽絲剝繭地找到裡面最好吃或者最有營養的東西,而Modelling就是為烹出一鍋好菜要找到合適的鍋或者容器,最終做Stacking就好比做菜要經過幾道工序。Chris像具有非常豐富經驗的大廚把其中最核心的最需要經驗積累的幾塊內容教給了我們,這些是很難單獨自學掌握的。

******

Q: 在培訓後期實際上手Kaggle比賽後,你們遇到了一些什麼困難,是怎樣解決的?是怎樣分配時間的?

Jinting(領隊):後期有一些學員遇到排名無法提升的困難,可以多刷論壇找靈感,也可以找組內學員多討論。另外有一位學員提到他在參與Kaggle比賽時非常注重模型是否make sense,在提交時他選擇了一個Public score不是最高但更具有解釋性的Model,而最終也顯示它的Private score是最高的,所以建議提交的Model最好能和自己想像中好的Model具有一致性。

時間上,我們班裡學員都是在比賽Deadline之前的一個月才加入這個比賽的,所以那幾周都會比較辛苦一些。我通常是下班後的晚上加上周末在家裡做一些功課,當時還需要適應如何使用AWS,整個過程花了一些時間。其他學員們都非常用功,在Chris提供的經驗幫助下,學員們投入了非常多時間來參與這個比賽。我在群里能看到大家經常會熬夜討論和交流問題,所以我覺得這個成績並不是偶然的,是大家心血的體現。除了花時間之外,大家好的討論氛圍和合作(1+1>2)也起到了相當好的作用,在技術上和信念上都給予了支持。

******

Q: Kaggle比賽的問題和實際工作的項目有些什麼異同點呢?

Jinting(領隊):一是data的質量不同,相比Kaggle提供了非常clean的data,實際工作中我們往往需要很耐心的和不同人打交道先把data要到,然後再clean好;二是data的大小不同,Kaggle的數據量不是特別大,通常是幾百兆,而工作中數據會特別大特別Messy;三是Kaggle這邊更加註重Algorithm,可以做很多天馬行空的演算法上的嘗試,以獲得最優結果,但實際工作中要注重可解釋性,為了向沒有數據背景的客戶或者同事去解釋,往往並不能用很fancy的model.

Bo:Jinting說的很對,Kaggle和工作中的數據差異很大,工作中可能60-70%的時間都用在清理數據,讓它變成比較好的形式。雖然我所在的trading firm唯一的判斷標準是賺不賺錢,但它仍然對數據模型的可解釋性要求很大。因為如果這個模型人很難直觀上經濟上去理解的話,很難去量化它的風險,因此把模型放入Portfolio中也是不保險的。而Kaggle有更多嘗試fancy一些的model的機會。

Bowen:我在電商互聯網公司做data analyst, 工作中會更加註重如何定義和business有關的這個問題,有了問題之後再去收集數據,並可能花大量去清理數據,最後採取做模型。非常複雜的模型往往公司不會放心去使用。

Qingze:一是精度要求,Kaggle裡面對精度會追求到小數點後三四位,而工作里我們對精度的追求不會那麼高;而相比之下,工作里對可解釋性的要求很高,每造一個新的feature必須包含物理的解釋。

==== 聯繫我們 ====


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 琪石職業發展俱樂部 的精彩文章:

TAG:琪石職業發展俱樂部 |