Logistic-Regression:对泰坦尼克号数据执行Logistic回归


**Logistic回归是一种广泛应用的统计学方法,常用于预测离散型输出,如二分类问题。在本案例中,我们将探讨如何使用Logistic回归来分析泰坦尼克号的数据集,以此预测乘客是否能够幸存。** 泰坦尼克号灾难是20世纪初期最著名的海难之一,这次事故的数据集经常被用作机器学习模型训练的实例,因为它包含了大量可预测的特征,如年龄、性别、票价等。Logistic回归在此的应用旨在基于这些特征构建一个模型,该模型能够预测乘客的生存概率。 我们需要导入相关的Python库,如`pandas`用于数据处理,`numpy`进行数值计算,以及`sklearn`中的`LogisticRegression`类来实现Logistic回归模型。在Jupyter Notebook环境中,我们可以通过以下代码导入这些库: ```python import pandas as pd import numpy as np from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, confusion_matrix, classification_report ``` 接下来,加载泰坦尼克号的数据集,通常包括两个文件:`train.csv`(训练数据)和`test.csv`(测试数据)。使用`pandas`的`read_csv`函数读取数据,并查看数据的基本信息: ```python train_data = pd.read_csv('Logistic-Regression-master/train.csv') test_data = pd.read_csv('Logistic-Regression-master/test.csv') print(train_data.head()) ``` 在预处理阶段,我们需要处理缺失值、转换类别变量为数值类型(如性别)以及创建有用的特征(如家庭大小、是否有同伴)。例如: ```python train_data['Age'].fillna(train_data['Age'].mean(), inplace=True) train_data['Embarked'].fillna(train_data['Embarked'].mode()[0], inplace=True) # 将性别转换为数值 train_data['Sex'] = train_data['Sex'].map({'male': 0, 'female': 1}) # 创建新特征 train_data['FamilySize'] = train_data['SibSp'] + train_data['Parch'] train_data['IsAlone'] = 1 - (train_data['SibSp'] + train_data['Parch'] > 0) ``` 然后,我们定义特征和目标变量,将数据集分为训练集和测试集,并构建Logistic回归模型: ```python X_train = train_data.drop(['Survived', 'PassengerId'], axis=1) y_train = train_data['Survived'] X_test = test_data.drop(['PassengerId'], axis=1) X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.2, random_state=42) logistic_model = LogisticRegression() logistic_model.fit(X_train, y_train) ``` 评估模型性能,我们可以使用训练集和验证集上的准确率、混淆矩阵和分类报告: ```python y_pred_train = logistic_model.predict(X_train) y_pred_val = logistic_model.predict(X_val) print("Training Set Accuracy:", accuracy_score(y_train, y_pred_train)) print("Validation Set Accuracy:", accuracy_score(y_val, y_pred_val)) print("Confusion Matrix:\n", confusion_matrix(y_val, y_pred_val)) print("\nClassification Report:\n", classification_report(y_val, y_pred_val)) ``` 使用训练好的模型对测试数据集进行预测,并将结果保存到CSV文件中,以供提交: ```python test_preds = logistic_model.predict(X_test) submission = pd.DataFrame({'PassengerId': test_data['PassengerId'], 'Survived': test_preds}) submission.to_csv('submission.csv', index=False) ``` 在这个过程中,我们不仅学会了如何使用Logistic回归进行二分类预测,还了解了数据预处理、特征工程和模型评估的关键步骤。通过调整模型参数、尝试不同的特征组合或使用其他机器学习算法,可以进一步优化模型的性能。





































- 1


- 粉丝: 37
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 该项目为一个集数据抓取与展示一体的ACM队员数据系统,基于Django、python实现。.zip
- 辅助背单词软件,基于艾宾浩斯记忆曲线(其实背啥都行)的Python重构版,增加在线查词与翻译等功能.zip
- 基于C开发的命令行输入输出流重定向与实时分析工具_支持快捷按键和文本框输入实时过滤计算分析多格式结果呈现文本提示弹窗曲线表格支持批量测试和日志抓取_用于开发调试协议分.zip
- 各种有用的web api 基于Golang, Python(tornado django scrapy gevent).zip
- 华南理工大学找到卷王,基于 Python 的综测系统数据爬虫.zip
- 湖南大学(HNU)数据库系统课程大作业 ATM系统 前端基于Python的PyQt5,后端基于MySQL.zip
- (新闻爬虫),基于python+Flask+Echarts,实现首页与更多新闻页面爬取
- 基于 Flask + Requests 的全平台音乐接口 Python 版.zip
- 基于 FFmpeg ,使用 Python 开发的批量媒体文件格式转换器。.zip
- 基于 CAI 的 OneBot Python 实现.zip
- 基于 nonebot2 开发的消息交互式 Python 解释器,依赖 docker SDK.zip
- 基于 Python 3 + Django 2 开发的用于适配手机的简单 Jenkins 构建平台.zip
- Python 语言的爬楼梯问题实现-计算爬到第 n 级台阶的方法数
- 基于 Napcat, NcatBot, JMComic-Crawler-Python 的 QQ 机器人。.zip
- 基于 Python Tornado 的博客程序 (练习).zip
- 基于 Python 3.5 + Django 2.0 开发的简单个人博客.zip


