用 Machine Learning 及 App 幫助養豬業者

以上影片來自一篇很有趣的文章,裡面提到如何讓小型、資源又有限的養豬個體戶,也可以簡單的預測在有限的資源之中,該養多少、甚至什麼品種的豬,期能在未來的市場上有最多獲利。

其中還描述了預測模型的建構過程,對想實作 Azure ML 的人應該有一些啟發。

image

為了讓養豬戶都能輕鬆使用,一個簡單易學易操作的 App 當然是必要的:

PigScreens

但整個系統的最大價值,是後端用到了 Azure Machine Learning 機器學習來作更精確的預測,訓練方式是藉由過往 2 年的各項歷史市場資訊,作為建立預測模型的資料。

架構中妥善運用了私有雲及公有雲的混合模式: 原始資料的收集、清理及儲存都是在地上 (private cloud) 完成、之後就丟到天上 (Azure) 去作預測模型的建立及測試、最後發佈為服務之後,讓 App 能直接存取使用。

image

其中有趣的地方是其訓練預測模型的方式,它將所有的歷史資科用來預測四種不同的豬隻品種,在未來 6、15、24 個月的需求:

image

各自再以 3 種不同的演算法來模擬: 類神經 (Neural Network)、促進式決策樹 (Boosted Decision Tree) 及線性迴歸 (Linear Regression)。

再將各自預測的錯誤率整理成以下的柱狀圖作比較,因為是錯誤率,所以愈小表示預測的表現愈好:image

可發現在四個豬品種的預測中,都是以 Boosted Decision Tree 演算法表現最好:

image

同時,它還使用了 2 種資料集 (dataset) 來作預測模型的建構:

  • DSPM 是與養豬業直接相關的資料 (如: 各品種公、母、小豬銷售量、屠宰場使用、豬飼料等)
  • DSPM+ 則是另一組較無直接相關的資料 (如: 玉米、雞蛋、牛肉、毛皮等)

小計一下,也就是它總共建構了至少 4 (豬品種) x 3 (演算法) x 2 (資料集) = 24 種的模型,再來作最後的比較:

image

最後,由於 Azure ML 在模型建立後,是以 Web Service 的方式提供給開發人員使用,要以 HTML5 或其他語言在跨平台裝置上運行也是很輕鬆的事。(目前已開發 Windows Phone 8.1 App 版本並刻正上架審核中)

延伸閱讀:

1. 想入門實作自己的 Machine Learning 嗎? 請見 Azure 「機器學習」初體驗

2. 還不甚了解什麼是 Machne Learning? 請見 Azure 「機器學習」FAQ,以及實際應用模型

3. 文中提到了幾種演算法,想了解他們的分類嗎? 請見 Azure 「機器學習」:我該用哪種演算法 (algorithms)?

4. Microsoft Azure 機器學習官方學習網站 (含教學影片及文件):

https://azure.microsoft.com/zh-tw/documentation/services/machine-learning/