iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
AI & Data

30 天了解 AI & Data:入門到實作系列 第 8

【DAY8】監督式學習:用 Python 實作邏輯迴歸----資料下載與初步測試

  • 分享至 

  • xImage
  •  

前言
昨天完成了開發環境建置,今天我們要開始準備邏輯迴歸的資料。首先從網路下載範例資料檔案,然後導入 Jupyter Notebook,進行初步檢視與簡單視覺化(資料視覺化:將數據以圖形方式呈現,方便快速了解資料分布與趨勢),為後續模型訓練做好準備。


一、下載範例資料

  1. 選擇範例資料來源
    常見的機器學習練習資料來源有:
  • Kaggle:最大型的資料科學平台,提供各種公開資料集

  • UCI Machine Learning Repository:歷史悠久的經典資料庫

這裡我們選擇 Kaggle 的乳癌資料集(Breast Cancer Dataset) 作為範例。

  1. 使用 KaggleHub 套件下載
    Kaggle 提供 API 與工具下載資料集,我們這裡示範用 kagglehub 套件:
pip install kagglehub
import kagglehub

# Download latest version
path = kagglehub.dataset_download("yasserh/breast-cancer-dataset")

print("Path to dataset files:", path)

執行後會顯示下載完成的路徑

二、讀取資料

下載好資料後,可以透過 pandas 輕鬆讀取:

pip install pandas
import pandas as pd

# 讀取 CSV 檔案
df = pd.read_csv("breast-cancer.csv")  # 因為同資料夾,只要寫檔名即可

# 查看前 5 筆資料
print(df.head())

輸出會顯示前幾筆資料,幫助我們快速確認欄位與資料內容。
https://ithelp.ithome.com.tw/upload/images/20250920/20178799ln5Hrdvg72.png

三、初步檢視資料

讀取後,可以先做基本的資料探索:

# 檢視資料形狀(筆數、欄位數)
print("資料維度:", df.shape)

# 檢視欄位名稱與型態
print(df.info())

# 檢視統計摘要
print(df.describe())

https://ithelp.ithome.com.tw/upload/images/20250920/20178799bDDnnek3LI.png
https://ithelp.ithome.com.tw/upload/images/20250920/20178799fcesVARn25.png
這些資訊能幫助我們了解資料集是否乾淨、是否有缺失值(Missing Value:指資料中缺少的觀測值),以及哪些欄位可能與預測目標有關。

四、簡單視覺化

在機器學習中,先對資料做視覺化能幫助我們快速了解特徵分布(Feature,指用來預測目標欄位的欄位)與目標類別(Target / Label,模型要預測的結果)差異。這裡我們使用兩個常用套件:

  • matplotlib.pyplot:最基本的繪圖工具,可以畫折線圖、長條圖、散佈圖等
  • seaborn:基於 matplotlib 的進階套件,語法簡單,容易畫出美觀統計圖表
    首先,我們可以觀察目標欄位 diagnosis 的類別分布:
pip install matplotlib
pip install seabornb
import matplotlib.pyplot as plt
import seaborn as sns

# 設定中文顯示(Windows)
#這段程式碼用於避免中文或負號顯示錯亂,Windows 使用者建議加入。
plt.rcParams['font.sans-serif'] = ['Microsoft JhengHei']
plt.rcParams['axes.unicode_minus'] = False

# 目標欄位 diagnosis 分類數量
sns.countplot(x="diagnosis", data=df)
plt.title("乳癌資料集類別分布")
plt.xlabel("類別")
plt.ylabel("數量")
plt.show()
  • sns.countplot():計算並畫出每個類別的數量,快速了解資料中良性與惡性腫瘤的比例
    在乳癌資料集(Breast Cancer Dataset)中,diagnosis 欄位是目標欄位(Target),用來標示腫瘤的類別:
  • M = Malignant(惡性腫瘤):會快速生長並可能擴散,需要及時治療
  • B = Benign(良性腫瘤):不會擴散,一般不具威脅性

所以在 sns.countplot() 的圖表中:

  • B 的長條高度表示良性腫瘤的樣本數
  • M 的長條高度表示惡性腫瘤的樣本數
    https://ithelp.ithome.com.tw/upload/images/20250921/20178799xZ9Qeh003I.png

五、名詞解釋

  1. 資料視覺化(Data Visualization)
    資料視覺化是將數據以圖形化方式呈現的過程,例如長條圖、散佈圖、折線圖等。透過視覺化,我們能快速了解資料的分布、趨勢與異常值,比單純看表格更直覺。在本文中,我們使用 matplotlib 和 seaborn 將乳癌資料集中不同類別的腫瘤數量繪製成長條圖。

  2. 缺失值(Missing Value)
    缺失值是資料集中缺少的觀測值或資料點,可能因為測量錯誤、遺漏填寫等原因造成。例如,如果某筆乳癌資料缺少 radius_mean 的數值,就稱該欄位有缺失值。缺失值可能影響模型訓練效果,因此需要在資料清理階段進行處理,如刪除含缺失值的資料或用平均值/中位數填補。

  3. 目標欄位 / 目標變數(Target / Label)
    目標欄位是模型要預測的結果,在分類問題中就是每筆資料的類別。在乳癌資料集中,diagnosis 欄位就是目標欄位,用來判斷腫瘤是良性(B)還是惡性(M)。

  4. 特徵欄位(Feature / Attribute)
    特徵欄位是用來預測目標欄位的資料屬性,例如乳癌資料集中的 radius_mean、texture_mean 等數值特徵。特徵欄位提供模型訓練所需的訊息,影響預測準確度。

  5. 資料維度(Shape / Dimension)
    資料維度指的是資料的行數與列數。在 Pandas 中可以透過 df.shape 查看,例如 (569, 32) 表示有 569 筆資料、32 個欄位。

  6. 統計摘要(Statistical Summary)
    統計摘要提供資料集中數值欄位的基本統計資訊,如平均值(mean)、標準差(std)、最大值(max)、最小值(min)等。在 Pandas 中用 df.describe() 可以快速查看,有助於了解資料分布與離群值。

  7. 良性(Benign, B)與惡性(Malignant, M)
    這是乳癌資料集中的類別標籤:

  • B(Benign):良性腫瘤,不會擴散,一般不具威脅性。
  • M(Malignant):惡性腫瘤,會快速生長並可能擴散,需要及時治療。

小結
今天我們完成了邏輯迴歸資料準備的前置作業,包括下載範例資料、讀取資料、初步檢視,以及簡單的資料視覺化。透過這些步驟,我們已經對乳癌資料集的結構、特徵分布及目標類別有了基本認識。
資料視覺化不僅能幫助我們快速了解資料,還能在後續特徵工程與模型訓練中提供重要參考。掌握這些基礎操作後,我們就能順利進入下一步:特徵處理與邏輯迴歸模型的建立與訓練。
後續章節中,我們將學習如何將資料轉換成模型可接受的格式,並使用邏輯迴歸進行分類預測。


上一篇
【DAY7】監督式學習:用 Python 實作邏輯迴歸----開發環境建置
系列文
30 天了解 AI & Data:入門到實作8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言