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

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

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()

运行结果:

相关推荐
猫头虎15 小时前
什么是ZCode for GLM-5.2?
开发语言·人工智能·python·科技·算法·ai编程·ai写作
深圳佛手15 小时前
梁文锋说,AGI是首要目标。AGI和AI的区别是什么?
人工智能·机器学习
长不胖的路人甲16 小时前
什么是赫夫曼树(哈夫曼树 / Huffman Tree)
python·算法·霍夫曼树
Warren2Lynch16 小时前
掌握 UML 构造型、标记定义与标记值:面向领域特定建模的 UML 扩展全面指南
大数据·算法·uml
1570925113417 小时前
【无标题】
开发语言·python·算法
稚南城才子,乌衣巷风流17 小时前
换根法(Rerooting)算法详解
算法
晓子文集17 小时前
Tushare接口文档:期货交易日历(fut_trade_cal)
大数据·算法
陳陈陳18 小时前
大模型界的“高考状元”可信吗?一文带你读懂Benchmark的潜规则 📚🤖
机器学习·llm
^yi18 小时前
【Linux系统编程】进程状态的理解
算法·僵尸进程·孤儿进程·进程状态·挂起状态·阻塞状态
hhzz19 小时前
机器学习-算法模型系列文章:04-KNN 不做标准化就跑KNN?你的模型正在被一个特征“独裁“
人工智能·算法·机器学习