iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0

接下來我們將透過Logistic Regression開始進入深度學習!

Logistic Regression 是一種常見的分類算法,雖然最初並不是作為深度學習模型提出的,但它為理解深度學習中的神經網絡概念提供了很好的基礎。通過理解 Logistic Regression 的工作原理,可以更容易地過渡到更複雜的神經網絡模型,如多層感知器(MLP)。」

1. 基本概念

Logistic Regression 用於二元分類問題,其核心思想是將輸入特徵的線性組合轉換為一個概率值,這個概率
為了將這個線性組合轉換為概率,我們使用Sigmoid函數。

Logistic Regression 與深度學習的關聯

Logistic Regression 可以看作是一個單層神經網絡(也稱為感知器)的特例,其中只有一個神經元,且使用 Sigmoid 激活函數來進行二元分類。這樣的網絡結構可以看作是多層感知器(MLP)的基礎版本。

在深度學習中,我們可以將 Logistic Regression 的權重和偏置視作神經網絡中的可訓練參數,通過反向傳播和梯度下降算法來優化這些參數。隨著網絡層數的增加和激活函數的變化,Logistic Regression 可以逐步過渡為更複雜的深度學習模型。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix


X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, random_state=42)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 初始化並訓練 Logistic Regression 模型
model = LogisticRegression()
model.fit(X_train, y_train)

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

# 計算準確率
accuracy = accuracy_score(y_test, y_pred)
print(f"測試集準確率: {accuracy:.2f}")

# 混淆矩陣
conf_matrix = confusion_matrix(y_test, y_pred)
print("混淆矩陣:")
print(conf_matrix)

plt.figure(figsize=(10, 6))
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap='viridis', alpha=0.5, edgecolor='k')
x_values = np.linspace(X_test[:, 0].min(), X_test[:, 0].max(), 100)
y_values = -(model.coef_[0][0] * x_values + model.intercept_[0]) / model.coef_[0][1]
plt.plot(x_values, y_values, color='red', label='決策邊界')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('Logistic Regression 決策邊界')
plt.legend()
plt.show()
  1. 數據生成:使用 make_classification 函數生成了一個簡單的二元分類數據集,其中包含兩個主要特徵。

  2. 訓練與測試:將數據集分為訓練集和測試集,並使用 LogisticRegression 來訓練模型。模型會學習一組權重和偏置來分離這兩個類別。

  3. 預測與評估:使用測試集進行預測,並計算模型的準確率。同時,還繪製了模型的決策邊界,以可視化模型如何在特徵空間中分離不同的類別。

Logistic Regression 是理解深度學習的重要基礎。它不僅介紹了分類模型的基本概念,還展示了如何優化模型參數。通過這樣的基礎理解,可以更容易地過渡到更複雜的神經網絡模型,如多層感知器(MLP)和卷積神經網絡(CNN)。


上一篇
DAY22 獨立成分分析ICA 22/30
下一篇
DAY24 Single Layer Perceptron24/30
系列文
機器學習與深度學習背後框架與過程論文與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言