【决策树】泰坦尼克号生存预测

决策树基础知识看这里:【机器学习】决策树

1. CART决策树API介绍

class sklearn.tree.DecisionTreeClassifier(criterion = 'gini', max_depth = None, random_state = None)

  • criterion: 特征选择标准。'gini' 或 'entropy', 前者代表基尼系数,后者代表信息增益。默认为'gini', 即CART算法。
  • mini_samples_split: 内部节点再划分所需最小样本数
  • mini_samples_leaf: 叶子结点最少样本数
  • max_depth: 决策数最大深度

2. 案例背景与数据情况

2.1. 背景

1912年4月15日,在她的首次航行中,泰坦尼克号在与冰山相撞后沉没,在2224名乘客和机组人员中造成1502人死亡。造成海难失事的原因之一是乘客和机组人员没有足够的救生艇。尽管幸存生存有一些运气因素,但有些人比其他人更容易生存,例如妇女,儿童和上流社会。

有了遇难和幸运数据,++运用机器学习工具来预测哪些乘客可幸免于悲剧++。

2.2. 数据情况

来源:(阿里云天池)

字段介绍:

  1. 代码实现
python 复制代码
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report
import matplotlib.pyplot as plt
from sklearn.tree import plot_tree

# 加载数据
data = pd.read_csv('E:/数据分析材料/train.csv')
# print(data.info())
# 数据的预处理
x = data[['Pclass', 'Sex', 'Age']]
y = data['Survived']
# 将Age列中的缺失值用年龄的均值填充
x['Age'].fillna(x['Age'].mean(),inplace=True)
# 对sex列进行one-hot编码
x = pd.get_dummies(x)
print(x.info())
# 数据集划分
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=22)

# 特征工程
# 数据值的差异不大,没做特征处理

# 模型训练
# 设定最大深度为10
estimaor = DecisionTreeClassifier(max_depth=5)
estimaor.fit(x_train,y_train)
# 模型预测
y_pred = estimaor.predict(x_test)

# 模型评估
print(f'分类报告:{classification_report(y_test,y_pred)}')
# 画出决策树的图
plt.figure(figsize=(30,20))
# 参1:模型对象 参2:是否用颜色填充 参3:绘制的决策树结构,最多十层
plot_tree(estimaor,max_depth=5,filled=True)
plt.show()

运行结果:

相关推荐
专注仿真6 小时前
ACM算法
算法·深度优先
明志数科6 小时前
具身智能数据供给的分层:分布式采集与入厂采集的工程边界分析
人工智能·机器学习·机器人
傻啦嘿哟7 小时前
Python的默认参数把我坑惨了,原来写[]和写None的区别这么大
开发语言·python·机器学习
顺顺 尼8 小时前
linux 进程信号(上)
linux·c++·算法
罗西的思考8 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 ---(5)--- GRPO
人工智能·算法·机器学习
richard_yuu8 小时前
动态规划:强化学习的「数学基础」,从 MDP 到值迭代
深度学习·神经网络·算法·yolo·机器学习·动态规划
搞科研的小刘选手9 小时前
【计算机方向 | IEEE出版 | 杭州站】第七届机器学习与计算机应用国际学术会议(ICMLCA 2026)
机器学习·学术会议·计算机应用·会议推荐·浙江工业大学
mmmmath_39 小时前
LeetCode.225.用队列实现栈
算法
Elaine3369 小时前
数据结构与算法-程序
数据结构·python·算法·计算机基础·编程基础
2601_965742229 小时前
布局GEO AI本地营销,我重点看这几个细节
大数据·人工智能·算法·ai·新媒体运营