前言:

Hackathon,由 Hack + Marathon 組合而成,如同字面上的意思,把設計師、工程師、專案經理等專案成員集合起來,在短時間內進行馬拉松式的程式設計,激發創意與隨機應變能力,創理想有趣服務或產品。

近來,Hackathon 活動漸漸在臺灣熱門起來。
身為一個工程師,能參加Hachathon與其他人才交流,是一件讓人非常興奮的事情!

在2015年5月某日,與研究所同學與學弟妹回學校找老師聊天,無意間得知學弟參加Hackathon的經驗,覺得相當感興趣。
經由學弟的邀約,決定一起參加這次2B Hackathon!!

2B Hackathon相關資訊

官方網站:http://2bhackathon.org
官方Facebook:https://www.facebook.com/2BHackathon
主題:Big Data and Bitcoin


活動過程:

由於團隊中對於彼特幣的原理與應用不是非常了解,我們報名的同時就決定走Big Data賽
程(只有我曾經挖過彼特幣與持有)



在活動前兩天晚上11點,我們得到API與題目相關資訊,和碩聯合與趨勢公布他們的需求:
一、趨勢:在log中找到有趣的特徵
二、和碩聯合:在資料中預測員工離職率

經過當天晚時討論,根據過去經驗(四人中有三人過去有做過資料探勘經驗),要從趨勢
提供的資料中,找出"有趣的"特徵有困難度,非常有可能忙了一天後,什麼結果都沒有。
投票結果就打算執行和碩聯合的題目,並激烈的討論演算法。

很快的,小組成員展開了討論,並決定使用工具如下:
一、討論:hackpad
二、版本控管:git and github
三、前端:Node.js、D3.js
四、資料匯入格式:CSV



活動現場與競賽過程:

在前一天晚上討論與資料處理到凌晨兩點,一早我們就拖著疲憊的腳步到黑客松會場。
下面是抵達會場照片,協助的工作人員頗多的,似乎都是學生。

(可惡的HTC Bufferfly S 紫光):

 簽到排到照片1


 簽到排到照片2


 簡單卻有意義名牌


簽到完成後,除了可以拿到自己的名牌外,還外加一面小隊旗。
現場能臨時組隊(在另一個會議室),因為我們已經組隊完成,就進入會場找個好位置。

 會場還能插上自己的隊旗


組隊完成,大多數參賽者就定位,主辦單位開始作簡單的活動介紹、重要人物演講與題目說明,在活動過程中,外面還有邀請專家在外廳做開放式的演講。
當倒數計時鈕按下後,黑客松就正式開始了!

現場看起來聲勢浩大(轉載至主辦單位FACEBOOK照片)


 競賽開始後,投影布幕上該死的倒數計時


整個過程就是:
1.遇到問題,拼命解。
2.一直趕工,拼命寫。
3.下家介面處理好等上家處理好的資料。
4.最後幾小時真讓人精神緊繃!!
5.沒力又時間很短的簡報!!

其他就不再贅述,直接看下面成果與投影片就好 。

成果 與 Repo:

在資料分析部分,我們有發現下列規則:
1. 其中一個資料欄位皆為0(表示不需要對該欄位進行處理)
2. 部分資料欄位含有NA值,這些NA具有一定規律(皆為NA)
(因資料機密,就不公開了)

在短時間內,沒有事先準備額外的演算法,而是憑藉過去學習資料探勘的經驗,
比較資料的相似度,依照自己的想法刻劃出簡單的演算法。

這次黑客松使用的平台是kaggle,需要註冊帳號並提出申請才能夠取得API與資料
和碩聯合的題目需要將最後將結果依據題目要求的格式進行上傳,kaggle計算後,會自動
列出準確度。

我們準備確度到65%,排名在第九名(最後一刻被擠下來,billyking真不死心XD,
而這次的成果是已經高於我的預期(原先擔心低於50%)。


最後成果:第九名 準確度65.1%


我們仍舊希望一個成品的出現不只有準確度,而需要一些報表或圖表能進行呈現,因為
我們知道客戶需要知道造成離職率的原因,視覺化的呈現是讓使用者快速理解的捷徑。

所以我們使用Node.js + D3.js 快速建立一個表單網站,上方簡單呈現時間區間與離職
率的關係 ; 下方則說資料之間的關係。在另外個頁面使用動態方式,每下拉20筆資料後,
與伺服器要求後20比資料進行呈現。


使用d3.js 後作呈現


簡報檔案下載:2bhackathon報告


事後看過第一名組別的報告,我認為在NA值處理得不夠完善,是造成準確度降低的主要
原因。

(因團隊討論有建議處理NA值,因我疏忽與時間較短,多數NA值略過為主要原因,這次
我努力的程度仍不夠,需要再加強)


在Demo的過程中,與許多評審與其他參賽者閒聊與分享實作心得:
一、多數參賽者在這次花費大量時間在撰寫程式做資料的I/O。而我們這次使用資料庫與SP
進行資料處理,時間節省不少。
二、多數參賽者對於使用什麼方法與使用什麼演算法非常有興趣。
三、許多人會分享工作心得與技術。

紀念品:

參加活動,其實蠻享受這個過程,一群人集思廣益,短時間內做出可行的作品。
沒想到主辦單位非常貼心,除了大量餐點服務沒讓我們餓著(好像不太健康XD),還準
備了一些紀念品。包含了:

貼紙、紙袋、筆記本



衣服 ( 蠻酷的!我喜歡!)







後記:



這次題目其實非常的硬,比賽結果應該是以準確度為主。
故我們相當堅持整個過程的呈現非常重視,如:發現資料面特徵、資料結果的呈現(圖形化)
與臨場反應(規劃、討論與想法)。
我仍認為有些成果需要有臨場反應想做什麼才更能符合黑客松精神或未來客戶需求。
(雖然準確度也是很重要啦,啦啦啦 ~ )。

能夠與不同的專業人才合作,考驗團隊成員應變能力,短時間內激發想法,見識不
同參賽者的成果,真的是非常的幸運!也辛苦小組所有成員!
(讓我真的精疲力竭,昏睡坐高鐵回台中)


最後,也感謝這次主辦單位與相關人員辛苦辦活動!

--
謝謝!