机器学习,如何使用xgboost预测泰坦尼克数据集结果?
发布于 作者:苏南大叔 来源:程序如此灵动~

对这个泰坦尼克数据集已经反复分析了好多次了,在本文中就根据这个数据集的其中一个版本,叫做xgboost
的预测。其实,用什么模型来预测,都会有数据结果。不同的就是:预测的精准度的问题。可谓是条条大路通罗马,款款预测有结果。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验文章。测试环境:python@3.12.3
,pandas@2.2.2
,numpy@1.26.4
,xlrd@2.0.1
,openpyxl@3.1.2
,scikit-learn@1.5.0
,xgboost@2.0.3
。
前置文章
本文的正确理解,建立在对泰坦尼克数据集字段的正确理解上。所以,参考文章:
应该知道:网络上的泰坦尼克数据集有很多个版本,每个版本的字段写法都不一样。具体的数据情况,也不一样。所以,加载使用这些数据集的方式方法也不一样。
拿到数据之后,要根据每个数据集的具体情况和目标需求,对数据集进行一定的加工处理。参考文章:
苏南大叔使用xgboost
对鸢尾花数据集进行预测的文章,可以参考:
数据初步处理
本文使用的泰塔尼克数据集来自斯坦福大学的公开版本,加载地址是:
这个斯坦福的数据集版本,字段比较少,并且没有空值,没有重复值。
输出:
关于数据处理的部分,每个人都有自己的不同理解。参考代码:
输出:
数据分割
【首要目标】就是:分割目标字段和特性字段。目标字段当然是Survived
了,所以分割代码为:
这里的.drop
方法,可以参考:
【其次目标】就是:分割训练集和测试集。
关于这个数据集分割的方法,可以参考:
模型预测
模型预测的代码很少,重复度也很高。每个模型大体上来说,就是换换模型的名称。
预测的准确率
关于准确度和查准率的区分,可以参考:
F1评分
更加权威的模型评价方法是classification_report()
。
输出:
目标值阴性的数据条数为140,目标值阳性的数据条数为82。f1
得分越高,表示这个模型越精准。所以,这个xgboost
模型,对于当前数据集来说,效果还算不错。
参考文章:
- https://newsn.net/say/sklearn-classification_report.html
- https://newsn.net/say/sklearn-score-average.html
字段重要性排序
输出:
这个结果表示的是:性别sex
以及票等级pclass
这两个字段比较重要。不过这个结论有待论证。
结束语
如果对于模型预测的结果不满意,可以调整训练集的样本。更多机器学习的文章,可以参考苏南大叔的博客:


