【Python】機器學習 — 實戰入門
在大數據時代,機器學習(Machine Learning,簡稱 ML)這個詞彙非常火紅,簡單來說,機器學習是透過演算法將收集到的資料(即過往資料及經驗)進行分類學習並找到其運行的規則,建立出預測模型。
ML 應用範圍極為廣泛,可用於搜尋引擎結果推薦、各類辨識(圖像、影音、指紋、車牌等)、醫療診斷輔助、證券分析等。感謝 Tairung 學長再次答應本社講課邀請,讓我們一起來揭開 ML 的奧秘吧!
本篇文章 take away
- 了解機器學習的範疇,例如:Supervised learning
- 提升對資料的掌握性,例如類型及探索性分析方法
- 認識線性迴歸模型的基本概念與應用
目錄
講者介紹
機器學習的範疇
資料類型
探索性資料分析
線性迴歸模型
相關文章
講者介紹
Tairung Chen 學長畢業於臺大經研所,目前在 KKBOX Group 旗下 KKLab 擔任 Senior Data Scientist,負責建立各專案的機器學習模型,以及視覺化圖表。
機器學習的範疇
學長藉由網路曾瘋傳的梗圖「選擇圖片中含有夏于喬的圖片」來說明:
Supervised learning
Supervised learning 就像直接給機器正確解答,在一開始就提供被標註好的資料,讓它學習在輸出時如何判斷誤差。以梗圖舉例,則是預先餵給模型夏于喬和宋芸樺的照片,讓它學習判讀照片中的是哪個藝人。
若採取 Supervised learning,則須判讀資料的類型是迴歸(Regression)還是分類(Classification)。
簡單來說,當預測目標是連續的數值,並可以依據目標問出 “How many?”,則為迴歸;若預測目標為離散、不連續也不可加減計算,並可以依據目標問出 “What is?”,則稱為分類。
Unsupervised learning
Unsupervised learning 則是類似自學的概念,所有資料皆沒有標註,讓模型自己尋找資料特徵並進行分類。以梗圖舉例,就是直接給模型一些夏于喬和宋芸樺的照片,讓它自行辨認及判斷兩者差異。
Semi-supervised learning
Semi-supervised 則是上述兩種方式的混合,只為部分資料做標註,剩下的讓模型透過既有特徵自行判斷。以梗圖舉例,即為給幾張夏于喬的照片,讓模型找出其他張夏于喬。
Reinforcement learning
Reinforcement learning 可理解為先自學、後考試,也就是同樣不給模型任何有標註的資料讓它自行判斷,但模型可以得到辨別結果反饋,若是錯誤它會自行逐步修正,此模式常應用於電動車。
資料類型
在進行機器學習前,必須把資料清理乾淨,做出來的結果才會更準確,所以接下來我們要介紹資料類型,能妥善辨別資料類型才能準確做出分析結果唷!
Numeric
簡單來說就是數字這種可被量化的東西,能在數學上被加減乘除運算的都算,舉例而言:薪水、經濟成長率、溫度等。
Categorical
Categorical 又稱名義(nominal)屬性,資料中不同的觀察值代表著不同的分類,也就是質化的概念。舉例而言:True/ Fulse、非常同意/ 同意/ 普通/ 不同意/ 非常不同意等。
探索性資料分析 Exploratory Data Analysis
在資料清理過後,可能我們對於資料會沒什麼頭緒,這時就可以進行探索性資料分析(EDA),先觀察各欄位資料間的關係。最常見的的 EDA 方式有:表格 Tables、敘述統計 Descriptive Statistics、資料視覺化Data Visualization。
學長分享了幾個有趣的 EDA 範例,以下提供給大家做參考!
- 擊球落地位置視覺化
2. 鐵達尼號罹難者長條圖 EDA
[資料補充]Tairung 學長提供大家幾個能強化 EDA 能力的方式,這邊提供連結給大家參考:
線性迴歸模型 Linear Regression
線性迴歸分析模型是分析變數間關係的工具,主要在研究自變數(x)與應變數(y)之間的線性關係。我們可以透過迴歸模型,推論和預測想知道的應變數(y)結果。
以上圖為例,可以明顯看出年資越高薪水越高的趨勢,這種線性相關的資料就很適合使用線性迴歸模型作分析。
接下來,跟大家分享課堂中學長帶我們實際操作的第一個模型 — — 線性迴歸分析模型,我們要用一個澳洲的資料集來探討離市中心遠近是否影響房價,因此自變數(x)是房子與市中心的距離,應變數(y)是房價。
首先,要先將資料集分成訓練集跟測試集,這樣在模型完成後才能確認模型表現。
載入 Scikit-learn 中的模型,並設定 fit_intercept 超參數來擬合截距。
在訓練模型前先看一下資料分布的情況。
接下來餵資料給模型做訓練,自變數(x)是房子與市中心的距離,應變數(y)是房價。
模型預測的房價為基準價(b_0)加上模型依據資料所計算出的預測係數(b_1)乘上距離。接下來輸出散布圖,觀察預測結果(紅色線)。
模型輸出的結果:
b_0 = 1259059.7488
b_1 = -17772.8388
從上圖可知這個模型並不完美,非常多筆資料沒有落在擬合線上。
由這個例子我們可以知道,在這個資料集中房價與其與市中心的關係並不大,我們必須在加入更多特徵,如:房間數、落成年份及土地大小,來幫助模型更有效的預測。
相關文章
另外兩篇 Tairung 學長的機器學習課程分享:
謝謝 Tairung 學長第二次答應我們的講課邀約,對於上次學長的職涯分享有興趣的朋友詳見此篇文章!