当前位置: 首页 > news >正文

Titanic - Machine Learning from Disaster

数据集

通过网盘分享的文件:
链接: https://pan.baidu.com/s/17TLeF8PW2GSWTbAIJC69-A?pwd=4dak 提取码: 4dak

准备工作

# 导入必要的库  
import numpy as np  # 用于数值计算(如矩阵运算、数学函数等)  
import pandas as pd  # 用于数据处理和分析(如读取CSV、数据清洗等)  

# 使用 os.walk() 遍历 '/kaggle/input/' 目录及其子目录  
# 该目录通常存放 Kaggle 比赛或项目的数据集  
for dirname, _, filenames in os.walk('/kaggle/input'):  
    # 遍历当前目录下的所有文件名  
    for filename in filenames:  
        # 打印文件的完整路径(目录名 + 文件名)  
        print(os.path.join(dirname, filename))  

# 这段代码的作用:  
# 1. 检查 '/kaggle/input/' 目录下有哪些数据文件  
# 2. 帮助用户确认数据是否已正确加载  
# 3. 方便后续代码读取数据文件(如 pd.read_csv())  

导入训练集数据,查看部分数据

# 导入数据
train_data = pd.read_csv("/kaggle/input/titanic/train.csv")
# 看开头部分数据
train_data.head()

导入测试集数据,查看部分数据

test_data = pd.read_csv("/kaggle/input/titanic/test.csv")
test_data.head()

探索数据

看女性存活率

# 从训练数据中筛选性别为女性的乘客,并提取其生存状态(Survived列)
women = train_data.loc[train_data.Sex == 'female']["Survived"]

# 计算女性乘客的生存率(生存人数 / 总女性人数)
rate_women = sum(women) / len(women)

# 打印女性生存率(格式化为百分比形式)
print("% of women who survived:", rate_women)

看男性存活率

men = train_data.loc[train_data.Sex == 'male']["Survived"]
rate_men = sum(men)/len(men)

print("% of men who survived:", rate_men)

训练与预测

# 导入随机森林分类器(scikit-learn 库)
from sklearn.ensemble import RandomForestClassifier

# 定义目标变量 y(即训练数据中的生存状态:0=死亡,1=存活)
y = train_data["Survived"]

# 选择特征列:舱位等级、性别、兄弟姐妹/配偶数量、父母/子女数量
features = ["Pclass", "Sex", "SibSp", "Parch"]

# 对训练数据和测试数据进行独热编码(One-Hot Encoding),将分类变量(如Sex)转换为数值
X = pd.get_dummies(train_data[features])  # 训练集特征
X_test = pd.get_dummies(test_data[features])  # 测试集特征

# 初始化随机森林模型,参数:
# n_estimators=100(100棵树), max_depth=5(树的最大深度), random_state=1(固定随机种子)
model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1)

# 训练模型:输入特征 X 和目标变量 y
model.fit(X, y)

# 对测试集进行预测,生成生存预测结果(0或1)
predictions = model.predict(X_test)

# 将预测结果保存为DataFrame,包含两列:乘客ID和预测的生存状态
output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': predictions})

# 输出到CSV文件(用于Kaggle提交),不保存行索引(index=False)
output.to_csv('submission.csv', index=False)

# 打印成功信息
print("Your submission was successfully saved!")

相关文章:

  • 在航电系统中提高可靠性的嵌入式软件设计
  • Scheme语言的算法
  • OpenVLA-OFT——微调VLA的三大关键设计:并行解码、动作分块、连续动作表示以及L1回归目标
  • 统计学基本原理
  • 基于Android的病虫害防治技术系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 程序化广告行业(58/89):系统架构与广告反作弊深度剖析
  • Java项目之基于ssm的家政公司服务平台(源码+文档)
  • Java面试黄金宝典34
  • FPGA学习(四)——状态机重写LED流水灯并仿真
  • Java 字符串常量池在哪里?
  • Android Dagger 2 框架的注解模块深入剖析 (一)
  • 虚拟地址空间布局架构
  • 八、重学C++—动态多态(运行期)
  • 痉挛性斜颈康复路,饮食要点来相助
  • PyTorch 深度学习实战(34):神经架构搜索(NAS)实战
  • Linux开发工具——vim
  • AIGC8——大模型生态与开源协作:技术竞逐与普惠化浪潮
  • 【UVM学习笔记】UVM验证平台的运行—Phase以及objection
  • Redis-11.在Java中操作Redis-Spring Data Redis使用方式-环境搭建
  • spark 集群
  • 福州网站平台建设公司/西安网站优化
  • 阿里巴巴官方网站/百度信息流怎么做效果好
  • 个人网站一般做多大/个人网络销售平台
  • 廊坊网站建设兼职/专业seo整站优化
  • 菏泽做网站建设找哪家好/html静态网页制作
  • 中国建设教育协会网站打不开/新乡百度关键词优化外包