邏輯回歸(Logistic Regression)
說到現在最火的就是AI,今天來研究一下機器學習的監督式學習的部分
邏輯回歸(Logistic Regression)是一種廣泛使用的統計方法,用於分類問題。它適用於二分類問題,即模型的輸出是兩個可能的類別之一。邏輯回歸通過使用邏輯函數(也稱為Sigmoid函數)來估計事件發生的概率。
邏輯回歸的基本概念
邏輯回歸的主要目的是找到一條最佳的分界線(決策邊界),將數據集分成不同的類別。其基本思想如下:
線性組合:邏輯回歸首先計算特徵的線性組合。假設有特徵 ,邏輯回歸模型計算:
其中 是模型的參數(權重)。
邏輯函數:接著,將線性組合結果 通過邏輯函數轉換成概率值 。邏輯函數的形式如下:
這個函數將 的值壓縮到 [0, 1] 之間。
分類決策:根據概率值 ,設置一個閾值(通常為0.5),來決定輸出標籤:
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
# 創建一個簡單的數據集
data = {
'Feature1': [2.3, 1.7, 3.1, 3.5, 2.1, 1.6, 2.8, 3.0, 3.2, 2.7],
'Feature2': [4.5, 3.2, 5.1, 5.5, 3.9, 2.4, 4.3, 4.8, 5.0, 4.1],
'Label': [0, 0, 1, 1, 0, 0, 1, 1, 1, 0]
}
# 轉換為DataFrame
df = pd.DataFrame(data)
# 分離特徵和標籤
X = df[['Feature1', 'Feature2']]
y = df['Label']
# 切分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 初始化邏輯回歸模型
model = LogisticRegression()
# 訓練模型
model.fit(X_train, y_train)
# 使用測試集進行預測
y_pred = model.predict(X_test)
# 評估模型
accuracy = accuracy_score(y_test, y_pred)
conf_matrix = confusion_matrix(y_test, y_pred)
class_report = classification_report(y_test, y_pred)
# 輸出結果
print(f'Accuracy: {accuracy:.2f}')
print('Confusion Matrix:')
print(conf_matrix)
print('Classification Report:')
print(class_report)
- 創建一個簡單的數據集。
- 使用pandas將數據集轉換為DataFrame。
- 分離特徵和標籤。
- 使用train_test_split切分訓練集和測試集。
- 初始化並訓練邏輯回歸模型。
- 使用測試集進行預測。
- 評估模型的準確性、混淆矩陣和分類報告。
留言
張貼留言