iT邦幫忙

2024 iThome 鐵人賽

DAY 2
1
AI/ ML & Data

征服機器學習的終極秘技系列 第 2

Day 2 - 機器學習的應用與基本分類

  • 分享至 

  • xImage
  •  

今天將深入了解機器學習的應用,並簡要介紹機器學習的兩大基本類型:監督式學習非監督式學習。在這之前,該有的基本觀念還是解釋一下~

機器學習是什麼?

機器學習 (Machine Learning, ML) 是一種通過大量歷史數據去識別分布型態、自我學習數據之間的關係、改進自身性能以達到最佳化預測結果的技術。簡單點來說,ML 主要的目標是讓機器能夠運用算法來解析數據,從中自主的從數據中提取有價值的資訊,再基於這些資訊對未來的數據做出預測或決策。這種方法使得 ML 在處理複雜問題和大量數據時特別有效。

機器學習的應用

機器學習的應用可以在不同領域使用到,舉例一些筆者曾經使用的領域:

  • 履歷推薦系統
  • 偵測交通事故發生的時間區段
  • 機台設備維護異常偵測 (如 CPU 使用率異常)
  • 智慧醫療預測神經系統疾病以輔助診斷 (如中風)
  • 預測眼科治療處置
  • 建築營建成本估價預測
  • 房屋實價登錄預測

這些應用範圍涵蓋了從日常生活中到專業領域的各個方面,還有更多應用領域,如娛樂、零售業的客戶個性化推薦及推播系統、庫存管理、銷售預測等。

機器學習與傳統程式設計的不同

在理解機器學習的基本概念之前,我們先來看看傳統程式設計與機器學習在處理輸入(input)和輸出(output)方面的不同之處。

傳統程式設計

工程師需要明確的編寫每一步的邏輯規則,並將這些規則寫成程式碼。這些規則 定義了如何將輸入轉換為輸出。

  • 輸入 (Input):程式碼可接收的內容,此輸入可以是使用者輸入、檔案、數字。
  • 邏輯處理 (Processing):根據編寫的規則和邏輯對輸入數據進行處理,此過程可以是計算、過濾、排序等。
  • 輸出 (Output):程式碼依據邏輯處理得出的結果,這些結果可以是顯示在螢幕上的文字、存儲在文件中的數據等。

舉例來說,如果要做一個計算機讓兩個數字相加,以下是傳統程式設計的輸入、處理及輸出:

  • 輸入 (input):兩個數字 (2、3)
  • 邏輯處理 (Processing):函式加法運算 (a=2, b=3 --> a+b)
  • 輸出 (Output):兩個數字的和 (5)

機器學習

工程師不再需要寫將輸入轉換為輸出的邏輯處理規則。我們反而是讓計算機自己學習如何從數據中找出規則。

  • 輸入/特徵 (Input/ Features):大量的歷史數據 (與期望輸出相關的數據),機器學習的輸入參數又稱作特徵。
  • 學習/訓練 (Learning/ Training):運用統計分析這些訓練數據,並使用 (演)算法讓機器去學習如何將輸入數據映射到正確的輸出。這個過程的正式名稱為訓練。
  • 輸出/預測 (Output/Prediction):對於新的輸入數據,(演)算法根據學到的規則生成預測結果

舉例來說,近期詐騙猖獗,如果要預測新收到的手機訊息是不是詐騙,此系統的輸入、訓練及輸出如下:

  • 輸入 (input):大量的詐騙和非詐騙的手機訊息 。
  • 學習/訓練 (Learning/ Training):(演)算法及統計分析這些手機訊息,訓練機器學習如何區分詐騙和非詐騙手機訊息。
  • 輸出/預測 (Output/ Prediction):對於新收到的手機訊息,將上一步訓練好的 (演)算法拿來預測它是詐騙還是非詐騙手機訊息。

機器學習的分類

機器學習主要分成兩大類型:監督式學習 (Supervised Learning)非監督式學習 (Unsupervised Learning)

監督式學習

有 Label 的數據,也就是說你手上的數據已經有最終要預測的目標值或答案的標註, 就好比有人在一旁指導你學習,告訴你答案。只要數據中包含了最終要預測的輸出值(Output/ Prediction),則他就屬於監督式學習。例如:想要判斷病人的腫瘤屬於良性還是惡性,而數據集中已有過去病患良性/惡性腫瘤的標註

監督式學習可以進一步分為兩種主要任務:

  • 分類(Classification):預測離散標註 (如性別、骰子點數、郵遞區號)
  • 迴歸(Regression):預測連續值 (如體重、身高、溫度)

[註記]離散值指的是有限的、可數或可列舉的數值或類別;而連續值則是一個範圍內可以取無數個不同的值,通常是一個連續區間。

非監督式學習

無 Label 的數據,也就是說你手上的數據當中沒有最終要預測的目標值或答案的標註,就像是自學一樣,機器需要自己從數據中歸納出內在的模式和規律。如果你的問題是要對數據進行分類,而數據本身並未提供已知的分組資訊,那就屬於非監督式學習了。 例如:從100萬個不同的基因中,找到一種自動將這些基因根據不同的變量 (如壽命、位置等) 分組的方法。 其主要子類型包括:

  • 聚類(Clustering):目的是將數據劃分為若干組,使得同組內的數據點在某種意義上更相似。此方法常用在探索數據的內在結構,發現數據中潛在的模式和關係,並且能夠幫助識別出數據中的異常點。
  • 降維(Dimensionality Reduction):目的是將高維數據轉換到低維空間,以便數據的分析和可視化。簡單來說有時候我們收集了很多數據參數,但沒辦法直觀的去理解這些數據的分布,人類能想像的空間是三維,但參數往往超過三維。因此我們希望可以透過降維度來更直觀理解數據分布。

客戶分群通常使用聚類算法,例如市場行銷中根據客戶購買行為,將客戶分成不同的群體,數據可視化則使用降維算法,例如將高維數據投影到 2D 或 3D 空間,以便觀察數據結構和分布。

https://ithelp.ithome.com.tw/upload/images/20240903/20168116cH0xaIxVxd.jpg
[自行製圖]

如何判斷是哪兩種學習開始?

要判斷機器學習任務是屬於監督學習還是非監督學習,關鍵在於數據是否帶有標記。具體可以按照以下步驟進行:

  1. 檢查數據是否有標記:如果數據中每個樣本都有一個對應的標註,則屬於監督學習;如果數據中樣本沒有標註,則屬於非監督學習。
  2. 確認問題的性質:如果目的是進行預測或分類,通常是監督學習;如果目的是發現數據內部的模式或結構,通常是非監督學習。

理解監督式與非監督式學習的區別,對於選擇合適的機器學習算法模型很重要。這些知識將為後續的學習和實踐打下堅實的基礎。


上一篇
Day 1 - 揭開 AI 的真相
下一篇
Day 3 - 機器學習的基本流程與重要步驟
系列文
征服機器學習的終極秘技30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言