iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
AI & Data

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

【DAY10】監督式學習:用 Python 實作邏輯迴歸----模型實作與初步訓練

  • 分享至 

  • xImage
  •  

前言
昨天我們完成資料前處理與特徵工程,現在已經有乾淨且規範的資料可以使用。今天將進入核心步驟:建立邏輯迴歸模型,讓模型學習特徵與目標之間的關係。


一、建立邏輯迴歸模型

from sklearn.linear_model import LogisticRegression

# 建立模型
model = LogisticRegression()

# 用訓練集進行模型訓練
model.fit(X_train, y_train)

說明:

  • fit() 會讓模型根據訓練資料學習每個特徵的權重,使模型對結果的預測更準確。
  • 每個特徵會有一個「權重」,模型內部自動計算,用來判斷特徵對預測結果的影響。正值表示正向影響,負值表示負向影響。
  • 訓練次數:雖然程式碼中看不到手動迭代的步驟,fit() 內部已經自動進行多次迭代來調整權重。

二、初步評估模型

from sklearn.metrics import accuracy_score

# 預測測試集
y_pred = model.predict(X_test)

# 計算準確率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

說明:

  • model.predict(X_test):使用訓練好的模型對測試資料進行預測,得到模型認為每筆資料的分類結果(0 或 1)。
  • accuracy_score(y_test, y_pred):計算模型預測結果與真實標籤相比的正確率。
  • y_test:測試集的真實目標值。
  • y_pred:模型預測的目標值。
  • 准確率 = 正確預測數 / 測試資料總數。
  • print("Accuracy:", accuracy):將計算出的準確率印出,方便我們了解模型在新資料上的表現。

三、使用模型進行單筆資料預測

# 隨便挑一筆測試資料,這裡選第一筆
sample_X = X_test[0].reshape(1, -1)  # reshape成 (1, 特徵數量)
sample_y = y_test.iloc[0]             # 用 iloc 取位置,避免 KeyError

# 顯示輸入特徵值
print("輸入特徵值:")
print(sample_X)

# 使用模型進行預測
sample_pred = model.predict(sample_X)

# 顯示結果
print("真實值:", sample_y)
print("模型預測:", sample_pred[0])

說明:

  • sample_X:這筆測試資料的特徵值,是模型的輸入。
  • sample_y:這筆資料的真實標籤,用來對比模型預測結果。
  • reshape(1, -1):因為模型需要「二維資料」輸入,即使只有一筆資料,也要加上這個維度。
  • model.predict(sample_X):使用訓練好的模型對這筆資料進行預測。

印出的結果可以看到 模型認為這筆資料是良性還是惡性,再跟真實值比較。


小結
今天我們完成了邏輯迴歸模型的建立,並試著用它來預測單筆資料。雖然我們沒有手動調整任何內部數值,模型已經能自動學習特徵的重要性。
後續章節,我們會介紹更多模型設定的方式,幫助模型學得更準確,也會說明其他評估模型的方法,讓我們能更全面地了解模型的表現。


上一篇
【DAY9】監督式學習:用 Python 實作邏輯迴歸----資料前處理與特徵工程
下一篇
【DAY11】監督式學習:用 Python 實作邏輯迴歸----模型評估
系列文
30 天了解 AI & Data:入門到實作12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言