📅  最后修改于: 2023-12-03 15:26:54.821000             🧑  作者: Mango
逻辑回归(Logistic Regression)是一种经典的分类算法,它的结果只有两种可能,为0或1。在实际应用中非常广泛,例如用于信用风险评估、医学诊断和广告点击率预测等领域。
本文将介绍如何使用Python进行逻辑回归分析,并附带示例代码和解析。
在正式开始逻辑回归分析前,需要确保已经安装了Python。如果没有安装,可以到官网下载安装程序。
逻辑回归算法要求数据是数值型的,因此需要将分类变量转换为数值型。在本文中,我们将使用一个名为'watermelon'的数据集来演示如何进行逻辑回归分析,该数据集包含了西瓜的色泽、根蒂、敲击声、纹理、脐部、触感等属性信息。
# 导入必要的库
import pandas as pd
# 读入数据集
data = pd.read_csv('watermelon.csv')
# 将分类变量转换为数值型
data['色泽'] = data['色泽'].map({'青绿': 1, '乌黑': 2, '浅白': 3})
data['根蒂'] = data['根蒂'].map({'蜷缩': 1, '稍蜷': 2, '硬挺': 3})
data['敲声'] = data['敲声'].map({'清脆': 1, '浊响': 2, '沉闷': 3})
data['纹理'] = data['纹理'].map({'清晰': 1, '稍糊': 2, '模糊': 3})
data['脐部'] = data['脐部'].map({'凹陷': 1, '稍凹': 2, '平坦': 3})
data['触感'] = data['触感'].map({'硬滑': 1, '软粘': 2})
# 查看数据集
print(data.head())
输出结果如下:
编号 色泽 根蒂 敲声 纹理 脐部 触感 好瓜
0 1 1 1 1 1 1 1 1
1 2 1 1 1 1 1 2 1
2 3 1 1 1 1 2 2 1
3 4 1 1 1 2 1 1 1
4 5 1 1 1 2 2 1 1
在进行逻辑回归分析前,需要将数据集拆分为训练集和测试集,以便评估模型的性能。通常会将数据集的80%用于训练,20%用于测试。
# 导入必要的库
from sklearn.model_selection import train_test_split
# 拆分数据集
train_data, test_data = train_test_split(data, test_size=0.2, random_state=0)
# 分离自变量和目标变量
train_x = train_data.iloc[:, 1:7]
train_y = train_data.iloc[:, 7]
test_x = test_data.iloc[:, 1:7]
test_y = test_data.iloc[:, 7]
# 查看训练集和测试集的大小
print('训练集大小:', train_x.shape)
print('测试集大小:', test_x.shape)
输出结果如下:
训练集大小: (13, 6)
测试集大小: (4, 6)
在进行逻辑回归分析前,需要先构建模型。在本文中,我们将使用scikit-learn库提供的LogisticRegression方法来构建逻辑回归模型。
# 导入必要的库
from sklearn.linear_model import LogisticRegression
# 构建逻辑回归模型
model = LogisticRegression(max_iter=1000)
# 在训练集上训练模型
model.fit(train_x, train_y)
在训练模型后,需要评估模型的性能。在本文中,我们将使用混淆矩阵来评估模型的性能。
# 导入必要的库
from sklearn.metrics import confusion_matrix, accuracy_score
# 在测试集上进行预测
test_pred = model.predict(test_x)
# 查看混淆矩阵和准确率
print('混淆矩阵:\n', confusion_matrix(test_y, test_pred))
print('准确率:', accuracy_score(test_y, test_pred))
输出结果如下:
混淆矩阵:
[[2 0]
[0 2]]
准确率: 1.0
混淆矩阵的行表示真实目标变量,列表示模型预测的结果,对角线上的数表示模型预测正确的样本数,非对角线上的数表示模型预测错误的样本数。准确率是模型预测正确的样本占总样本数的比例,这里的准确率为100%,说明模型的性能非常好。
逻辑回归是分类问题中最为常见的算法之一。在Python中,可以使用scikit-learn库提供的LogisticRegression方法来构建逻辑回归模型,并使用混淆矩阵来评估模型的性能。在进行逻辑回归分析时,需要注意分类变量的转换和数据集的拆分,以确保模型的准确度和泛化能力。