【阿旭机器学习实战】【13】决策树分类模型实战:泰坦尼克号生存预测

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 【阿旭机器学习实战】【13】决策树分类模型实战:泰坦尼克号生存预测

决策树分类模型实战:泰坦尼克号生存预测

导入数据集并查看基本信息


import pandas as pd
titanic = pd.read_csv("../data/titanic.txt")
titanic.head()


image.png


# 打印数据集表头
titanic.columns
Index(['row.names', 'pclass', 'survived', 'name', 'age', 'embarked',
       'home.dest', 'room', 'ticket', 'boat', 'sex'],
      dtype='object')

数据字段的含义:


数据集中有12 个字段,每一个字段的名称和含义如下

PassengerId:乘客 ID

Survived:是否生存

Pclass:客舱等级

Name:乘客姓名

Sex:性别

Age:年龄

SibSp:在船兄弟姐妹数/配偶数

Parch:在船父母数/子女数

Ticket:船票编号

Fare:船票价格

Cabin:客舱号

Embarked:登船港口


选择属性:通过分析发现某些属性(如:name)和是否生还没有关系



选择特征并进行特征处理


# 我们选择"pclass","age","sex"这三个主要特征进行模型训练
x = titanic[["pclass","age","sex"]]
y = titanic[["survived"]]
• 1
• 2
• 3


补全缺失值


x.isnull().any()
• 1
pclass    False
age        True
sex       False
dtype: bool
# 查看缺失
x.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1313 entries, 0 to 1312
Data columns (total 3 columns):
pclass    1313 non-null object
age       633 non-null float64
sex       1313 non-null object
dtypes: float64(1), object(2)
memory usage: 30.9+ KB
# 分析发现年龄缺失了一半,如果全都丢弃,数据损失过多
# 丢弃不行需要填补,用所有年龄的平均值来填补
x["age"].fillna(x["age"].mean(),inplace=True)
D:\anaconda3\lib\site-packages\pandas\core\generic.py:5430: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  self._update_inplace(new_data)
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25)
• 1
x_train[:10]


image.png


特征处理:对特征进行向量化


from sklearn.feature_extraction import DictVectorizer
• 1
vec = DictVectorizer(sparse=False)#sparse=False意思是不产生稀疏矩阵
# 非数字类型的特征向量化
x_train = vec.fit_transform(x_train.to_dict(orient="record"))
x_train[:5]
array([[31.19418104,  0.        ,  0.        ,  1.        ,  1.        ,
         0.        ],
       [46.        ,  1.        ,  0.        ,  0.        ,  0.        ,
         1.        ],
       [35.        ,  1.        ,  0.        ,  0.        ,  1.        ,
         0.        ],
       [46.        ,  1.        ,  0.        ,  0.        ,  0.        ,
         1.        ],
       [18.        ,  0.        ,  1.        ,  0.        ,  0.        ,
         1.        ]])
x_train.shape
• 1
(984, 6)
• 1
x_test = vec.fit_transform(x_test.to_dict(orient="record"))

x_test.shape
• 1
(329, 6)
• 1


创建决策树模型,训练预测


dt = DecisionTreeClassifier()
• 1
dt.fit(x_train,y_train)
DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,
            max_features=None, max_leaf_nodes=None,
            min_impurity_decrease=0.0, min_impurity_split=None,
            min_samples_leaf=1, min_samples_split=2,
            min_weight_fraction_leaf=0.0, presort=False, random_state=None,
            splitter='best')
y_pre = dt.predict(x_test)
• 1
y_pre[:10],y_test[:10]


(array([0, 0, 1, 0, 1, 0, 0, 0, 0, 0], dtype=int64),       survived
 908          0
 822          0
 657          1
 856          0
 212          1
 641          1
 305          0
 778          1
 818          1
 1179         0)
dt.score(x_test,y_test)
# score也成为准确性,只能从宏观上查看到一个模型的准确程度
• 1
• 2
0.7872340425531915


性能评测报告


from sklearn.metrics import classification_report
• 1
print(classification_report(y_pre,y_test,target_names=["died","servived"]))
             precision    recall  f1-score   support
       died       0.92      0.78      0.84       244
   servived       0.56      0.81      0.66        85
avg / total       0.83      0.79      0.80       329


性能评测报告的相关指标:


比如两个类别A和B,预测的情况会有四种:True A、True B、False A、False B
1、准确率(score):模型预测的正确的概率:score = (True A+True B)/(True A + True B + False A +False B)
2、精确率:表示的是每一个类别预测准确的数量占所有预测为该类别的数量的比例:precision_a = True A / (True A + False A)
3、召回率:表示的每一个类别预测正确的数量占这里类别真正数量的比例:recall_a = True A / (True A + False B)
4、F1指标:F1_a = 2/(1/precision_a + 1/recall_a) = 2*(precision_a*recall_a)/(precision_a+recall_a) 调和平均数,F1指标指的就是精确率和召回率的调和平均数,除了把精确率和召回率平均,还可以给两个指标相近的模型以较高的评分;
【注意】如果精确率和召回率差距太大,模型就不具备参考价值
相关文章
|
2月前
|
机器学习/深度学习 存储 算法
决策树和随机森林在机器学习中的应用
在机器学习领域,决策树(Decision Tree)和随机森林(Random Forest)是两种非常流行且强大的分类和回归算法。它们通过模拟人类决策过程,将复杂的数据集分割成易于理解和处理的子集,从而实现对新数据的准确预测。
99 10
|
2月前
|
机器学习/深度学习 数据采集 监控
探索机器学习:从数据到决策
【9月更文挑战第18天】在这篇文章中,我们将一起踏上一段激动人心的旅程,穿越机器学习的世界。我们将探讨如何通过收集和处理数据,利用算法的力量来预测未来的趋势,并做出更加明智的决策。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和思考方式。
|
2月前
|
机器学习/深度学习 算法 Python
从菜鸟到大师:一棵决策树如何引领你的Python机器学习之旅
【9月更文挑战第9天】在数据科学领域,机器学习如同璀璨明珠,吸引无数探索者。尤其对于新手而言,纷繁复杂的算法常让人感到迷茫。本文将以决策树为切入点,带您从Python机器学习的新手逐步成长为高手。决策树以其直观易懂的特点成为入门利器。通过构建决策树分类器并应用到鸢尾花数据集上,我们展示了其基本用法及效果。掌握决策树后,还需深入理解其工作原理,调整参数,并探索集成学习方法,最终将所学应用于实际问题解决中,不断提升技能。愿这棵智慧之树助您成为独当一面的大师。
44 3
|
2月前
|
机器学习/深度学习 算法 Python
决策树下的智慧果实:Python机器学习实战,轻松摘取数据洞察的果实
【9月更文挑战第7天】当我们身处数据海洋,如何提炼出有价值的洞察?决策树作为一种直观且强大的机器学习算法,宛如智慧之树,引领我们在繁复的数据中找到答案。通过Python的scikit-learn库,我们可以轻松实现决策树模型,对数据进行分类或回归分析。本教程将带领大家从零开始,通过实际案例掌握决策树的原理与应用,探索数据中的秘密。
48 1
|
3月前
|
机器学习/深度学习 算法 数据挖掘
【白话机器学习】算法理论+实战之决策树
【白话机器学习】算法理论+实战之决策树
|
8天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
28 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
29天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
1月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
56 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
1月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能

热门文章

最新文章

相关产品

  • 人工智能平台 PAI