本篇為機器學習基礎觀念的第 8 篇文章。在前五篇文章中,我們依序了解機器學習五步驟 : 定義問題、建立資料集、模型訓練、模型評估與模型推論。在本篇文章中,將會重新應用這五步驟來解決「房價預測」的問題。
房價預測經常作為理解機器學習原理的例子,如果你已經具備機器學習的基本觀念,也可以參與 Kaggle 上的 House Prices – Advanced Regression Techniques 競賽,透過此競賽強化觀念。
在房價預測的任務中,我們希望模型可以觀察房子本身的「屬性」(房間數量、衛浴數量、坪數、地理位置) 來預測房子的價格。因此,我們會收集到許多樣本,每個樣本都代表著一間房子。樣本中紀錄著該房子的種種屬性以及目前的售價。如下圖所示 :
因為我們已經有了每一間房子的「價格」(正確答案),因此這個問題屬於「監督式學習」(Supervised Learning)。此外,模型的預測結果為「連續數值」而非類別,因此為「回歸」(Regression) 問題。
建立資料集的過程主要包含以下步驟 :
建立資料集後,我們可以建立模型,並進行模型的訓練。在開始訓練之前,我們通常會將整個資料集拆分成「訓練資料集」(80%) 與「測試資料集」(20%)。這是為了確保模型在訓練過後,我們還可以利用一些模型沒有看過的資料,評估模型的預測品質。
在定義問題階段中,我們已經確認「房價預測」屬於「回歸」問題。因此,我們當然會選用回歸模型 (Regression Model) 進行訓練。
建立一個 Regression Model 的工具非常多,如果希望以傳統的機器學習技術來建立,則可以使用 scikit-learn;如果希望以深度學習技術來建立,則可以使用 TensorFlow 或是 PyTorch。
模型訓練完成後,我們可以透過「測試資料集」(Testing Dataset) 評估模型的好壞。在使用機器學習解決問題的五步驟 : 模型評估中,我們提到「分類模型」與「回歸模型」分別都有許多評估指標可以使用。
針對回歸模型,常見的評估指標有 MAE (Mean Absolute Error)、MSE (Mean Squared Error) 與 RMSE (Root Mean Squared Error)。
在機器學習基礎觀念系列的文章中,我們不會深入探討社學的部分,然而我可以理解不管是 MAE、MSE 或是 RMSE,他們的目的都是要計算模型的「預測值」與實際的「正確數值」差的有多遠。
當模型經過評估確認品質過後,我們可以實際使用模型進行房價的預測。輸入模型在訓練階段沒有見過的樣本,並得到模型輸出的預測值。
在本篇文章中,我們透過「房價預測」的例子,再一次複習了機器學習五步驟,了解每一個步驟在實際解決問題時所扮演的角色。在下一篇文章中,我們會再利用機器學習五步驟,解決生活中「非監督式學習」的例子。