iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0
AI & Data

ㄧ個八卦的時間也能了解AI最新趨勢系列 第 14

Day 14 來訓練模型吧!-- 傳統機器學習模型(下)

  • 分享至 

  • xImage
  •  

嗨嚕~大家午安呀!
這兩天我們講了傳統機器學習中很經典的兩個模型,希望在介紹過程中大家都有對模型以及整個訓練過程加減了解一些,那我們今天一樣要繼續介紹另一個常被提及用來做分類任務的模型,那就是邏輯迴歸(Logistic Regression) 啦!

監督式與非監督式學習

在介紹邏輯回歸之前,我們先來了解一下機器學習通常會分成的兩種類型:

  1. 監督式學習(Supervised Learning)
    這種類型的機器學習中,每一筆訓練資料都有標籤
    例如:在一堆包含貓和狗的照片中,每張照片都已標記「貓」或「狗」,也就是資料都有「標準答案」。
    模型會透過這些有答案的資料學習,找出特徵與標籤之間的規律,之後遇到新的資料就能預測正確的標籤。

  2. 非監督式學習(Unsupervised Learning)
    與監督式學習最大的不同是:資料沒有標籤,只有大量未標記的資料
    模型需要自己找出隱藏的結構,例如自動將風格相似的文章分群,或找出客戶群體的共同特徵。
    一般會應用在資料的**自動分群(Clustering)或降維(例如主成分分析 PCA)**等任務。

而我們這幾天介紹的 SVM、Decision Tree,以及今天要講的邏輯回歸(Logistic Regression),
都屬於監督式學習,所以這些模型通常會用在分類任務上。

邏輯回歸(Logistic Regression)

邏輯回歸是一種線性回歸的變體,它的主要目的是找到一條能夠有效區分兩類資料的界線。
和普通的線性回歸不同的是,線性回歸尋找的是一條「最佳擬合線」,希望所有資料點越靠近這條線越好,因此通常用來做連續數值的預測,而不是分類,可以參考下圖了解一下差別:
https://ithelp.ithome.com.tw/upload/images/20250928/20178745Js8RgHoDT9.jpg
而至於邏輯回歸如何找出這條分界線,我們這裡就不細講了 XD,畢竟裡面涉及不少數學公式。
簡單來說,模型會根據資料的不同特徵給予加權值,先做一次線性運算,再把結果套入 Sigmoid 函數,把輸出的數值壓縮到 0~1 之間。這個 0~1 的機率就能用來判斷資料屬於哪一類。
有了這條分界線之後,當新資料進來時,模型就能根據它的特徵,判斷這筆資料更接近哪個類別!

那我就一樣來實作一下~
一樣用這幾天有用到的學生資料當練習!


# 讀取資料
df = pd.read_csv('/Users/xxuan/Downloads/student.csv')

基本步驟都差不多,大致會先讀資料 -> 轉換資料至數值 -> 切分測試集、訓練集 -> 訓練模型 -> 評估模型只是我們可以根據我們的目的選擇不一樣的模型!

le = LabelEncoder()
df['High_School_Type'] = le.fit_transform(df['High_School_Type'])
target = le.fit_transform(df['Sex'])

# 區分特徵 & 目標
features = df[['High_School_Type', 'Weekly_Study_Hours', 'Student_Age']]

# 切分資料
feat_train, feat_test, target_train, target_test = train_test_split(features, target, test_size=0.2, random_state=0)

# 建立模型
log_reg = LogisticRegression() #這裡使用邏輯回歸模型!
log_reg.fit(feat_train, target_train)

# 檢視準確率
print(log_reg.score(feat_test, target_test))

輸出結果

0.5517241379310345

表現似乎比昨天的決策樹好呢xd

當然,特徵的不同也會影響模型表現,所以大家可以試者挑不同的特徵來訓練模型喔!

喔虧!那最基本常被提到的傳統機器學習模型就大概講到這裡~
明天我們會來介紹到底如何評估自己訓練的模型是好是壞,那就明天見啦~

圖篇參考網址


上一篇
Day13 來訓練模型吧!--傳統機器學習模型(中)
下一篇
Day 15 我的模型超級棒?模型評估怎麼看?
系列文
ㄧ個八卦的時間也能了解AI最新趨勢16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言