邏輯回歸是一種有監督的學習分類算法,用于預測目標變量的概率。目標或因變量的性質是二分法的,這意味著將只有兩個可能的類。主要解決二分類問題。
主要步驟有三個:
- 求線性回歸曲線。
- 通過 sigmoid 函數將線性回歸曲線轉為 0-1 范圍函數。 σ ( x ) = 1 1 + e ? x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+e?x1?。其中
x
是步驟 1 中的線性回歸曲線。 - 然后轉為 0、1 分類,大于 0.5 的是一類,小于 0.5 的劃分為另一種類。
以下是一個簡單的應用示例:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import confusion_matrix, accuracy_score# 假設 df 是包含上述數據的 DataFrame
df = pd.read_csv('bank_data.csv')# 數據預處理:將分類標簽轉化為數值
df['Subscribed'] = df['Subscribed'].map({'No': 0, 'Yes': 1})# 特征與目標變量
X = df[['Age', 'Income', 'Savings']]
y = df['Subscribed']# 數據標準化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.3, random_state=42)# 創建邏輯回歸模型,注意設置max_iter以避免迭代次數不夠的警告
logreg = LogisticRegression(max_iter=1000)# 訓練模型
logreg.fit(X_train, y_train)# 預測
predictions = logreg.predict(X_test)# 評估模型
print(y_test)
print(predictions)print("Confusion Matrix:")
print(confusion_matrix(y_test, predictions))
print("Accuracy Score:", accuracy_score(y_test, predictions))
上述代碼演示了如何使用sklearn
進行邏輯回歸模型訓練以及預測。與其他訓練模型的基本思路一致,主要包括以下步驟:
- 獲取數據集。
- 標準化數據集。
- 將數據集劃分成訓練集和測試集。
- 訓練。
- 對測試集合進行預測。
- 評估準確率。