【Python】 逻辑回归:从训练到预测的完整案例


我把我唱给你听

把你纯真无邪的笑容给我吧

我们应该有快乐的

幸福的晴朗的时光

我把我唱给你听

用我炙热的感情感动你好吗

岁月是值得怀念的留恋的

害羞的红色脸庞

谁能够代替你呀

趁年轻尽情的爱吧

最最亲爱的人啊

路途遥远我们在一起吧

🎵 叶蓓《想把我唱给你听》


逻辑回归是监督学习中常用的一种分类算法,尤其擅长于二分类问题。在本文中,我们将通过一个具体的案例,展示如何使用逻辑回归进行模型训练,并在一个新的数据集上进行预测验证。

1. 案例介绍

假设我们的任务是根据病人的体检数据来预测其是否有患糖尿病的风险。我们将使用公开的Pima印第安人糖尿病数据集来训练我们的模型。这个数据集包含了病人的多种生理健康指标,如:怀孕次数、胰岛素水平、体重指数(BMI)、年龄等。

2. 数据预处理

在开始模型训练前,首先需要对数据进行预处理:

数据清洗:检查并处理数据中的缺失值或异常值。

特征选择:选择对预测糖尿病有显著影响的特征。

数据分割:将数据集分为训练集和测试集,比如使用70%的数据进行训练,30%的数据用于测试。

3. 模型训练

使用Python的scikit-learn库来进行逻辑回归模型的训练:

python 复制代码
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 加载数据
data = pd.read_csv('pima_indians_diabetes.csv')
X = data.drop('Outcome', axis=1)
y = data['Outcome']

# 分割数据
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)

# 预测测试集
predictions = model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy:.2f}")

4. 新数据集上的预测验证

为了进一步验证模型的泛化能力,我们可以在另一个相关的新数据集上进行测试。假设这个新数据集来自另一地区的病人数据,具有相同的特征结构。

python 复制代码
# 加载新的数据集
new_data = pd.read_csv('new_diabetes_data.csv')
X_new = new_data.drop('Outcome', axis=1)
y_new = new_data['Outcome']

# 使用已训练的模型进行预测
new_predictions = model.predict(X_new)

# 计算新数据集的准确率
new_accuracy = accuracy_score(y_new, new_predictions)
print(f"New Dataset Accuracy: {new_accuracy:.2f}")

5. 结论

通过上述案例,我们可以看到逻辑回归不仅能有效处理二分类问题,而且操作简单,易于实现。同时,通过在不同的数据集上进行预测验证,我们能够评估模型的泛化能力和实用性。逻辑回归模型特别适用于那些特征与结果之间具有明显线性关系的场景。

总结来说,逻辑回归是一种强大而灵活的工具,能够帮助研究者和开发者解决实际问题,尤其在医学、金融等领域的应用尤为广泛。希望本文能够帮助你理解和运用逻辑回归,为你的数据分析项目提供支持。

相关推荐
小声读源码15 分钟前
【技巧】使用UV创建python项目的开发环境
开发语言·python·uv·dify
程序员杰哥19 分钟前
自动化测试基础知识详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
zm-v-1593043398623 分钟前
解锁遥感数据密码:DeepSeek、Python 与 OpenCV 的协同之力
开发语言·python·opencv
szxinmai主板定制专家23 分钟前
基于TI AM6442+FPGA解决方案,支持6网口,4路CAN,8个串口
arm开发·人工智能·fpga开发
龙湾开发43 分钟前
轻量级高性能推理引擎MNN 学习笔记 02.MNN主要API
人工智能·笔记·学习·机器学习·mnn
勘察加熊人1 小时前
Python+Streamlit实现登录页
开发语言·python
DavieLau1 小时前
Python开发后端InfluxDB数据库测试接口
服务器·数据库·python·时序数据库
CopyLower1 小时前
Java与AI技术结合:从机器学习到生成式AI的实践
java·人工智能·机器学习
workflower1 小时前
使用谱聚类将相似度矩阵分为2类
人工智能·深度学习·算法·机器学习·设计模式·软件工程·软件需求
jndingxin1 小时前
OpenCV CUDA 模块中在 GPU 上对图像或矩阵进行 翻转(镜像)操作的一个函数 flip()
人工智能·opencv