iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
自我挑戰組

從零開始學Python系列 第 15

[Day15] Python機器學習(邏輯回歸 Logistic Regression)

  • 分享至 

  • xImage
  •  

資料來源:GrandmaCan -我阿嬤都會教學影片

邏輯回歸 Logistic Regression可以用來解決分類問題,像是糖尿病的原因,如果有年齡、血糖、體重等資料,可以用來做回歸預測。

可以透過Sigmoid Function(S型函數)來讓回歸的直線更加貼合數據。
https://ithelp.ithome.com.tw/upload/images/20240905/201688115xZw8iaQPp.png

  1. 輸入檔案
import pandas as pd

url = "https://raw.githubusercontent.com/GrandmaCan/ML/main/Classification/Diabetes_Data.csv"
data = pd.read_csv(url)
data

https://ithelp.ithome.com.tw/upload/images/20240905/2016881107vSDyKpri.png

  1. 資料預處理
  • label encoding:
data["Gender"] = data["Gender"].map({"男生": 1, "女生": 0})
data

https://ithelp.ithome.com.tw/upload/images/20240905/20168811MxmTvKS32L.png

  1. 訓練資料:將資料拆分成訓練集與測試集,通常訓練及佔比7-8成。
from sklearn.model_selection import train_test_split
x = data[["Age", "Weight", "BloodSugar", "Gender"]]
y = data["Diabetes"]

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=87)
x_train = x_train.to_numpy()
x_test = x_test.to_numpy()

資料標準化

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
scaler.fit(x_train)
x_train = scaler.transform(x_train)
x_test = scaler.transform(x_test)
  1. 尋找cost function 以及設定optimizer
import numpy as np
def sigmoid(z):
  return 1/(1+np.exp(-z))
w = np.array([1, 2, 3, 4])
b = 1
z = (w*x_train).sum(axis=1) + b 
sigmoid(z)

上一篇
[Day14] Python機器學習(多元線性回歸 Multiple Linear Regression)
下一篇
[Day16] Python OpenCV -1
系列文
從零開始學Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言