Coursera: 台大資工 Machine Learning 上課心得

整理記錄一下在 Coursera 修台大資工林軒田老師的機器學習課程心得,分成兩門課上下兩個學期。

2016年2月9日 21:12 UTC+08

拿到台大機器學習技法的證書啦 t.co/AwlAdFgkj0 #coursera # 努力了半年終於解開 Machine Learning 的成就,在技法課中實作了 SVM、AdaBoost、Decision Tree 和 NNet 演算法。

2015年12月28日 21:33 UTC+08

接連兩個機器學習作業實作出 AdaBoost 和 Decision Tree(CART) 及 Random forest (我用Ruby寫),跟其他模型相比,難得不需要太多數學,感覺簡單多了 XD 另外發現 Python scikit-learn 的 Decision Tree 也是用 CART 演算法,所以也拿來測了一下自己寫的對不對,它還可以把決策樹匯出 Graphviz 圖真是太棒了。 接下來要進入類神經網路了。

2015年11月11日 0:02 UTC+08

交了 Coursera 台大機器學習基石最後一次作業,收穫頗豐,每次作業都寫好久。這堂課比較偏理論,上到第二次作業最理論的時候,差點就要放棄了,好險撐了下來後面講 overfitting 的部分我認為是這堂課最精彩的部分。為什麼做 feature transform 和 regularation,如何用 validation 等等,理論貫穿前後。這些其實之前在修 edX Spark ML 課的時候,也有照著用這些技巧,但是都不知道為什麼,現在知道理論之後超有感覺。 接著就是機器學習技法了,感覺又是一整個超難,SVM 我來了!

淺談 Startup 公司的軟體開發流程 投影片

Update(2016/3): 投影片新增第四階段:營運成長

感謝 David Ko 的邀請,在 Agile Tour Hsinchu 給一場分享講軟體開發流程,內容就東拼西湊這幾年在 startup 公司學到和用到的東西,沒想到迴響還不錯,得到的評價是很實用,摘要如下:

  1. 需求收集
    • Lean Startup: MVP
    • 用 User Stories 描述
    • 善用線上協同工具 Quip 或 Hackpad
  2. 實作
    • 專案管理: Scrum 或 Kanban
    • 不重複發明輪子
    • 用 Wireframe 做設計
    • 寫自動化測試
    • 用版本控制系統 Git 搭配 Github flow 或 git flow
  3. 佈署上架
    • 自動化部署程序
    • 善用第三方 Monitor 和通訊工具 Slack
    • 使用 Metrics 量測
  4. 最後:在 Startup 就要關注全局,參與產品設計與營運

程式設計師升級必練內功:TDD Kata

(本文 crossposting 於 ALPHACamp Blog)

測試驅動開發(Test-Driven Development,簡稱 TDD)是一種程式開發的技巧,簡單來說就是先寫測試程式,然後才實作功能。具體的流程則是透過 Red–Green–Refactor cycle 的循環:

  1. Red – 先寫測試程式,此時因為還沒有實作功能,所以這個測試是會失敗
  2. Green – 快速實作出功能,讓上述的測試通過
  3. Refactor – 重構程式碼,去除多餘重複的代碼,提高程式碼品質,同時維持測試通過

閱讀全文〈程式設計師升級必練內功:TDD Kata〉