最近為了系統性複習有關時間序列的知識,在Udemy上了一堂評價不錯的課程Python for Time Series Data Analysis。整體來說,我覺得課程是值得推薦初學者的。但因為課程對於很多時間序列的模型只是淺淺帶過,如果對時間序列已經有了解的人會比較像是浪費錢。
這裡我將從教學模式跟課程內容簡單的說些感想。
首先先是教學模式,以下先列出我覺得課程的優點:
- 整體時間序列的架構蠻清楚的。相比於有名的時間序列電子書Forecasting: Principles and Practice也簡單實用的多(數學沒那麼多)。
- 課程長度適宜,搭配Udemy對手機端也很friendly所以上起來沒什麼壓力。適合我這種專注力只能一次集中10–20分鐘的人。
- 課程附的Jupyter Notebook做得很用心,很多補充的知識背景可以去探索。還有裡面的sample code基本上可以直接拿去當模板用了。
- 很適合Python新手,課程中也有4個章節從Numpy開始教,到Pandas還有可視化。當然這對我來說我會覺得這同時也是個缺點,因為這代表真正在時間序列上的課程時長沒有想像的多。
另外討論一下我覺得教學模式上的缺點:
- 對模型理論的講解有點太過簡單化了。
- 還是以舊式的ppt講法一頁頁在讀。補充上面的第一點,我倒覺得很多YouTube教學還比課堂上說的清楚。未來有機會也想整理出我覺得關於時間序列說的很好的YouTube影片,如果有的話網址會補上在這。
- 範例基本上都是些完美老掉牙案例。講者有時候會分享些自己親身心得,但我覺得可以再多一些,畢竟這才是比較難從其他地方學到的。
接下來討論一下課程內容。總共的課程時長是15.5小時,卻有大概5小時(1/3)的時間在介紹與教基礎python,從剩下的第七章開始才正式進入時間序列的主題。接下來以每章來大致說一下會談到什麼,大家也可以依照自己理解程度看看有沒有上這課程的必要。
Section 7 — Time Series Analysis with Statsmodels: 這章終於開始接觸time series重要的python包Statsmodels,然後淺談了時間序列的基礎。但這裡介紹的都還是非預測的部分,主要是對一組時間序列如何進行拆分,大致會拆成ETS (Error-Trend-Seasonal)。這裡還會特別說根據ETS概念衍伸而來的Holt — Winters Methods,也是利用這樣拆分的概念作為模型的理論。
Section 8 — General Forecasting Models: 這才是整個課程的主軸,總共有快要6小時的內容。我個人認為雖然說Models是複數,但其實講者只是想帶出最有名的ARIMA以及SARIMA而已,可以說他是ARIMA的粉絲。好處是身為知名度最大的模型,ARIMA整套在這段被解釋的最詳細,而且講者提供的sample code整套流程是很完整的。跟上一章結合起來是整個課程比較好的兩個章節。
Section 9 — Deep Learning for Time Series Forecasting: 這章開始就讓人比較失望,我覺得講者可能認為SARIMA一招打天下就夠了。他自己也在課程中說覺得沒有必要用Deep Learning來做時間序列這點我是同意的因為在實際商務上Deep Learning就像是黑盒子根本無法解釋,但以它現在在Machine Learning的重要程度來說我覺得它值得更長的篇幅來探討,並跟其他方法橫向比較。不過若是完全沒有接觸過Keras包,是可以在這學會搭一個簡單的LSTM模型。
Section 10 — Facebook’s Prophet Library: 最失望的一章,身為現在使用最多的時間序列包居然只是簡單的用官方網站的範例帶過。當然它使用上非常簡單,不過因為我自己在不同案例使用上卻覺得有不少限制並且還有更多可以深入探討的地方,所以看到這樣匆匆帶過覺得有點不應該啊。
總結來說,從兩個部分討論了這個課程只是想讓如果還在考慮要不要上這門課的你/妳可以有個考慮依據,並且也算是個自己看完一遍後的小整理。當然,時間序列是個很大的領域,也不能指望就單純一堂課就能掌握所有囉,所以這也只是當作個參考,其他還是要靠自己去實作。
那就先這樣。如果有任何問題歡迎留言!