利用CART分类器进行预测

读取数据

import pandas as pd
data =pd.read_csv("train.csv")

查看数据

# 显示前五行
data.head()# 显示行数和列数
data.shape# 显示所有列的数据类型等信息
data.info()

# 显示类别Embarked特征列的所有取值及出现次数
data.Embarked.value_counts()

三、数据处理

1、缺失值处理

在查看数据发现特征Age和Embarked有缺失值

特征Age使用其均值补充

特征Embarked使用众数“S”进行补充

2、特征编码转换

大部分模型只能处理数值型数据

使用将非数值型转换可计算的编码

采用特征编码转换

生成N个二值特征列(取值0或1),每个对应一种取值

使用决策树模型,一般无须对特征进行缩放

# 缺失值处理
data.Age.fillna(data.Age.median(),inplace=True)
data.Embarked.fillna('S',inplace=True)# 特征编码转换
data.Sex=data.Sex.map({'female':0,'male':1})
embarked_d=pd.get_dummies(data.Embarked,prefix='Embarked',drop_first=True)
data=pd.concat([data,embarked_d],axis=1)# 将处理好的数据放入
feature_cols=['Pclass','Sex','Age','Embarked_Q','Embarked_S']
X=data[feature_cols]
y=data.Survived

四、训练和选择模型

数据集进行训练

from sklearn.tree import DecisionTreeClassifier
treeclf = DecisionTreeClassifier(max_depth=3,random_state=1)treeclf.fit(X,y)

五、可视化决策树

import graphviz
from sklearn import tree
from graphviz import Digraph
dot_data = tree.export_graphviz(treeclf,out_file=None,feature_names=feature_cols,class_names='Survived',filled=True,rounded=True,special_characters=True)
graph=graphviz.Source(dot_data)
graph.render('xgboost1') #输出pdf文件
graph

六、查看特征的重要性

pd.DataFrame({'feature':feature_cols,'importance':treeclf.feature_importances_})

七、模型评估

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.7, test_size=0.3, random_state=4)from sklearn.model_selection import GridSearchCV
parameters = {'max_depth':[1,3,5,10,15,20,30]}
tree_clf=GridSearchCV(DecisionTreeClassifier(),param_grid=parameters,scoring='accuracy')
tree_clf.fit(X_train,y_train)

print(tree_clf.best_params_)
print(tree_clf.best_score_)

y_pred=tree_clf.predict(X_test)from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
print(accuracy_score(y_test,y_pred))
print(classification_report(y_test,y_pred))

完整代码:

import pandas as pd
data =pd.read_csv("train.csv")data.Age.fillna(data.Age.median(),inplace=True)
data.Embarked.fillna('S',inplace=True)data.Sex=data.Sex.map({'female':0,'male':1})
embarked_d=pd.get_dummies(data.Embarked,prefix='Embarked',drop_first=True)
data=pd.concat([data,embarked_d],axis=1)feature_cols=['Pclass','Sex','Age','Embarked_Q','Embarked_S']
X=data[feature_cols]
y=data.Survivedfrom sklearn.tree import DecisionTreeClassifier
treeclf = DecisionTreeClassifier(max_depth=3,random_state=1)
treeclf.fit(X,y)import graphviz
from sklearn import tree
from graphviz import Digraph
dot_data = tree.export_graphviz(treeclf,out_file=None,feature_names=feature_cols,class_names='Survived',filled=True,rounded=True,special_characters=True)
graph=graphviz.Source(dot_data)
graphpd.DataFrame({'feature':feature_cols,'importance':treeclf.feature_importances_})
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.7, test_size=0.3, random_state=4)from sklearn.model_selection import GridSearchCV
from sklearn.tree import DecisionTreeClassifierparameters = {'max_depth':[1,3,5,10,15,20,30]}
tree_clf=GridSearchCV(DecisionTreeClassifier(),param_grid=parameters,scoring='accuracy')
tree_clf.fit(X_train,y_train)print(tree_clf.best_params_)
print(tree_clf.best_score_)y_pred=tree_clf.predict(X_test)
from sklearn.metrics import accuracy_score
print(accuracy_score(y_test,y_pred))
print(classification_report(y_test,y_pred))

机器学习——CART决策树——泰坦尼克还生还预测相关推荐

  1. Kaggle案例之泰坦尼克船员幸存预测(sklearn机器学习库)

    无意间在网易云课堂上找了一个Kaggle案例,泰坦尼克获救船员预测,在此之前我是从没接触过kaggle,毕竟是刚入门的小白,看着视频,算是真正实战了一次,主要是在这个过程中学到了很多东西. 下面视频地 ...

  2. 19丨决策树(下):泰坦尼克乘客生存预测

    在前面的两篇文章中,我给你讲了决策树算法.决策树算法是经常使用的数据挖掘算法,这是因为决策树就像一个人脑中的决策模型一样,呈现出来非常直观.基于决策树还诞生了很多数据挖掘算法,比如随机森林(Rando ...

  3. Kaggle案例之泰坦尼克船员幸存预测

    无意间在网易云课堂上找了一个Kaggle案例,泰坦尼克获救船员预测,在此之前我是从没接触过kaggle,毕竟是刚入门的小白,看着视频,算是真正实战了一次,主要是在这个过程中学到了很多东西.  下面视频 ...

  4. 基于深度学习的泰坦尼克旅客生存预测

    基于深度学习的泰坦尼克旅客生存预测 摘要:近年来,随着深度学习的迅速发展和崛起,尤其在图像分类方向取得了巨大的成就.本文实验基于Windows10系统,仿真软件用的是Anaconda下基于python ...

  5. 10种流行的机器学习算法进行泰坦尼克幸存者分析

    还记得上世纪轰动全球的泰坦尼克吗? 1912年4月,正在处女航的泰坦尼克号在撞上冰山后沉没,2224名乘客和机组人员中有1502人遇难,这场悲剧轰动全球,遇难的一大原因正式没有足够的就剩设备给到船上的 ...

  6. 利用tensorflow神经网络进行泰坦尼克的生存预测

    相信每一个在机器学习感兴趣的小伙伴都对kaggle有所耳闻,甚至也自己上面打过一两场.kaggle上有很多经典的比赛可以让我们练手,最有名的当然要属泰坦尼克号的生存预测了.kaggle官网的泰坦尼克地 ...

  7. kaggle入门竞赛之泰坦尼克事故存活预测(xgboost方法)

    传送门:https://www.missshi.cn/api/view/blog/5a06a441e519f50d0400035e 本文我们详细讲解如何利用xgboost方法来解决泰坦尼克沉船事故人员 ...

  8. 机器学习能诊断病情,还能预测患者出院后的情况?

    摘要: 机器学习正逐渐改变着各行各业,医疗行业也处于变革之中.想不到机器学习不光能诊断患者病情,还能预测患者出院后的情况呢,这个研究方向有点意思,感兴趣的读者快来瞅瞅吧! 随着数据量以及计算机性能的不 ...

  9. gini系数 决策树_案例7:机器学习--使用决策树实现泰坦尼克号乘客生存率预测...

    一.决策树简介 1.1 什么是决策树? 决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树. ...

  10. 机器学习基础—Kaggle泰坦尼克预测(完整分析)

    1.引言 我们先找个简单的实际例子,来看看,所谓的数据挖掘或者机器学习实际应用到底是怎么样一个过程. 2.背景 2.1 关于Kaggle Kaggle是一个数据分析建模的应用竞赛平台,有点类似KDD- ...

最新文章

  1. 2018/8/26 PSO-based Clustering Techniques to Solve Multimodal Optimization Problems: A Survey
  2. 关于2021年及未来,人工智能的5大趋势预测
  3. pod setup 慢 的问题
  4. AlertDialog.Builder setCancelable用法
  5. Cmake:linux中cmake添加动态库
  6. php怎么从牌里找对子,php判断半顺,顺子, 对子实例代码
  7. 读取properties文件的信息
  8. linux 网卡驱动 优化,Linux多核环境网卡驱动优化研究①.PDF
  9. [Java] 蓝桥杯ALGO-118 算法训练 连续正整数的和
  10. C# WinForm开发系列 - ComboBox
  11. 其他干货——如何做科学报告(oral, poster, eLightning)
  12. iwconfig工具源码
  13. python下载慢怎么办
  14. shell grep正则匹配汉字
  15. 高通CPU处理器解析
  16. 正则html在线测试,正则表达式在线测试工具
  17. 纪念我的第一个Python程序:猜数字
  18. 投色子抽奖游戏 html,使用jQuery实现的掷色子游戏动画效果
  19. 计算机三级 网络安全
  20. 网络安全技术与应用实验——SSL验证分析 基于DTLS的安全服务器设计

热门文章

  1. Unity3D物理渲染算法研究【PBR】
  2. Reeder 5 for Mac(RSS阅读器)
  3. FTP文件传输神器:8uftp
  4. 内含干货PPT下载|一站式数据管理DMS关键技术解读
  5. 什么是弱网测试?为什么要进行弱网测试?怎么进行弱网测试?
  6. C# 专业的软件安装包
  7. 追赶法 matlab编程,科学网—数值分析----三对角方程组的追赶法matlab程序 - 殷春武的博文...
  8. **记录在win10电脑上使用Duet display的一次经历**
  9. 程序设计c语言基础选择题填空题(含答案)
  10. 金格套红正文字体格式的修改