目錄
資料科學是近年來的顯學,領域之內又可以分為資料科學家、數據分析師、商業分析師,不論是哪一個角色,都有大量的背景知識與技能需要學習,包括程式設計、統計學、機器學習等。在程式設計中,Python與R語言是兩個主流的程式語言。雖然有些人號稱用Excel也可以作數據分析,Excel中確實也有許多實用的分析功能,但你可能不知道,Excel的資料列數上限為1048576,如果資料量大於這個數字,連檔案的讀取都會成問題,而真實世界中的資料量動不動就會超過這個數字。因此,對於想踏入資料科學領域的新手而言,學習程式設計絕對有其必要性。
做中學是最有效的學習方式
所有人都曾經當過新手,知道學習程式設計的路上會有許多的難關。我自己光是學Python就學了三次,每次學完基本概念和語法後都覺得自己懂了,卻因為沒有實際執行專案而生疏,導致每一次看到Python程式碼都像從零開始。後來,我重新檢視了自己的學習方法,認為學習新技能的最好的方式,就是讓學習目標與自己的生活緊密結合,像是為了想出國旅遊而練好英文,為了到海邊秀人魚線、馬甲線所以努力健身,剛好我之前想學投資,理所當然的認為投資與Python可以相互結合,從此踏上了奇幻旅程。如果你和我一樣,同時對於這兩個領域都有興趣,不妨聽聽為什麼我認為股市資料非常適合作為股市資料的入門磚。
在練習中打造個人投資系統
如果你認同了學習目標應該與生活緊密結合,那我相信練習用的資料集絕對滿足不了你。舉例來說,資料科學界有一個相當有名的資料集為鳶尾花(Iris),裡面包含了鳶尾花的品種,萼片(Sepal)的長寬,以及花瓣(Ptal)的長寬,常見的練習是透過建立模型預測鳶尾花的品種。雖然這也是真實世界的資料,你也可以透過這個練習學習建模技巧,但這個練習終究只是個練習,而不是個可以再利用的成果,你不會因為這個習作而燃起對植物學的熊熊熱情。
如果我們使用股市資料作為練習素材,目標是建立自己的投資輔助系統,系統的功能可能有資料抓取、數據分析、未來預測、視覺化圖表等,讓每一次的練習成果都成為投資系統的一部份。從這個角度切入,寫code本身就是一個資產累積的過程,你的code寫得越好,你的資產就越值錢。這個宗旨會讓自己避免寫出爛code,會開始考慮coding style、擴充性、易讀性及維護性,同時思考如何將系統模組化,並累積自己的程式庫(Codebase)。好的Programmer擅於使用工具,但真正傑出的Programmer擅於寫自己的工具。
股市資料容易取得
網路上可以輕易取得相當多的開放資料(Open Data),像是人口統計、天氣觀測、交通資訊,但這些資料有些過於零散,或是已經停止更新,如果這些資料剛好又沒什麼人使用,資料源壞了就壞了,沒有人會跳腳。相反,股票市場每天有大把鈔票進進出出,券商的下單系統必須讀取最新資料,投資人要看到即時交易情形,程式交易者要透過即時數據調整策略,這是一個資訊龐大完整,而且錯誤容忍度極低的市場。對於一個搞數據的人來說,在股票市場像在天堂。
如果經驗與金錢可以雙收,何樂而不為
投資界有許多流派,除了程式交易者的量化投資外,還有價值投資、技術分析等。每個流派各有優缺點,像量化投資的常見的疑慮即是資本額要夠大,透過高頻交易賺取多筆小額利潤,進而累積成為高額報酬,這也代表散戶很難直接套用量化基金的投資方式。然而,我們不能否認量化投資可能會產生適合散戶的變形版本,至少至少,交易輔助系統也可以讓投資人客製化自己的交易策略,提升看盤效率。
在這個物價比薪資漲更兇的時代,投資幾乎成為所有人不得不面對的課題。不一定能透過投資買房,但好的投資紀律絕對有助於提升生活品質。如果在成為資料科學家與數據分析師的路上,能透過學習成果為自己增加投資收入,何樂而不為呢?
延伸閱讀
〈在DataCamp學Python和R語言,快速入門資料科學〉