Python二元逻辑回归实战

逻辑回归是一种广泛应用于机器学习和统计学的分类算法。尽管名字中带有“回归”,但逻辑回归实际上是一种分类方法,特别适用于二分类问题。本文将通过一个简单的示例,介绍如何使用Python实现二元逻辑回归。

一、什么是逻辑回归?

逻辑回归试图利用输入特征来预测结果变量的概率。它将输出值限制在0到1之间,通常用于二元分类任务,例如判断一个电子邮件是否为垃圾邮件或识别一个病人是否患有某种疾病。公式如下:

[ P(Y=1|X) = \sigma(W^TX + b) ]

其中,( \sigma ) 是逻辑函数,(W) 是权重,(X) 是特征变量,(b) 是偏置项。

二、环境准备

在开始之前,我们需要确保已安装必要的Python库。可以使用以下命令安装所需库:

pip install numpy pandas matplotlib scikit-learn

三、数据准备

我们将使用一个假想的数据集进行逻辑回归分析。假设我们的数据集中有两个特征,分别是“年龄”和“收入”,目标变量是“是否购买(1为是,0为否)”。

示例数据

import pandas as pd

data = {
    '年龄': [22, 25, 47, 35, 46, 56, 23, 34, 45, 36],
    '收入': [20000, 30000, 50000, 40000, 60000, 70000, 22000, 39000, 52000, 45000],
    '是否购买': [0, 0, 1, 0, 1, 1, 0, 0, 1, 1]
}

df = pd.DataFrame(data)
print(df)

该数据框中包含三列:“年龄”、“收入”和“是否购买”。

四、绘制序列图

在进行逻辑回归之前,了解数据之间的关系非常重要。我们可以使用序列图查看数据分布。

sequenceDiagram
    participant User
    participant Python
    User->>Python: 输入数据集
    Python->>User: 输出数据框
    User->>Python: 生成序列图
    Python->>User: 展示数据分布

五、构建逻辑回归模型

接下来,我们将使用scikit-learn库构建逻辑回归模型。我们需要拆分数据集为训练集和测试集,以评估模型的性能。

拆分数据集

from sklearn.model_selection import train_test_split

X = df[['年龄', '收入']]
y = df['是否购买']

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

训练模型

from sklearn.linear_model import LogisticRegression

model = LogisticRegression()
model.fit(X_train, y_train)

六、模型评估

模型训练完成后,我们可以使用测试集评估模型的性能。我们将观察模型的准确率:

from sklearn.metrics import accuracy_score

y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)

print(f'模型准确率: {accuracy:.2f}')

如果准确率较高,说明我们的模型有效。此外,我们还可以输出混淆矩阵以更加详细地了解模型的表现:

from sklearn.metrics import confusion_matrix

cm = confusion_matrix(y_test, y_pred)
print('混淆矩阵:\n', cm)

七、结语

本文介绍了如何使用Python实现一个二元逻辑回归模型。通过构建数据集、训练模型和评估性能,我们可以清晰地掌握逻辑回归的基本用法。逻辑回归在处理二分类问题时具有良好的解释性和实现简单的优势。在实际应用中,可以扩展使用更复杂的方法,如正则化和多项式逻辑回归,以提高模型的性能和准确性。探索数据的奥秘,掌握更多机器学习技能,相信你会在这个领域取得更多的成就!