代码

有关数据处理部分的相关解析,请看 30天吃掉那只 TensorFlow2
写的非常详细 不再在这里赘述


from sklearn import tree
import pandas as pd
import graphvizdef processing(df_doc):df_result = pd.DataFrame()#### Pclass 转成one-hot编码df_doc_Pclass = pd.get_dummies(df_doc['Pclass'])df_doc_Pclass.columns = ['Pclass' + str(i) for i in df_doc_Pclass.columns]df_result = pd.concat((df_result,df_doc_Pclass),axis=1)#### Name 不要了#### sex 转换成独热码df_doc_Sex = pd.get_dummies(df_doc['Sex'])df_result = pd.concat((df_result,df_doc_Sex),axis=1)#### age 不需要转换直接添加, 因为存在空值,所以需要加一项辅助判断是否有空值df_result = pd.concat((df_result,df_doc['Age'].fillna(0)),axis=1)df_age_is_null = df_doc['Age'].isna().astype('int32')df_result['Age_is_null'] = df_age_is_null# print(df_result)#### SibSp  Parch   Fare 作为数字特征直接搬过来  Ticket 不重要,直接舍去df_result = pd.concat((df_result,df_doc['SibSp'],df_doc['Parch'],df_doc['Fare']),axis=1)#### 对于 cabin 这一列的空值,我们不进行填充,但是增加辅助列 cabin_null 作为辅助特征# df_result['Cabin'] = df_doc['Cabin']df_result['Cabin_null'] = pd.isna(df_doc['Cabin']).astype('int32')#### embarked 一共分三类用独热编码处理df_doc_embarked = pd.get_dummies(df_doc['Embarked'],dummy_na=True)  # 否则会报错df_doc_embarked.columns = ['Embarked_' + str(x) for x in df_doc_embarked.columns]df_result = pd.concat([df_result, df_doc_embarked], axis=1)print(df_result)return df_resultif __name__ == '__main__':train_dataset = pd.read_csv('tatanic_train.csv')train_data = processing(train_dataset)train_label = train_dataset['Survived']test_dataset = pd.read_csv('tatanic_test.csv')test_data = processing(test_dataset)test_label = test_dataset['Survived']classifier = tree.DecisionTreeClassifier()classifier.fit(train_data,train_label)score = classifier.score(test_data,test_label)print(score)feature_name = train_data.columnstarget_name = ['0','1']with open('tree.dot','w') as f:dot_data = tree.export_graphviz(classifier, feature_names=feature_name,class_names=target_name, filled=True, rounded=True, out_file=f)


最后生成 pdf 文件将决策树进行可视化

graphviz 生成 pdf 文件可视化决策树

  • 在此之前你应该先安装 graphviz 这个包:

pip install graphviz


但这还不够,因为 graphviz 是个单独的软件,所以你需要安装这个软件(注意,安装的版本不能高,我就是因为装版本高了,又重新装了个 2.28 的版本;这里提供 2.28版本的链接)
https://pan.baidu.com/s/1ExisBC8gyMcH1eI9fpMDtQ
提取码:qzeh


安装完之后要配置环境变量,安装文件夹下的 bin 目录加入环境变量即可,如果安装完系统自动把这个加入环境变量了皆大欢喜了


安装配置完之后,验证一下是否安装成功 dot -version; 下面这种显示方式则为成功

  • win+R 打开终端在其中输入 cmd 打开终端
  • 进入这个 python 文件的文件夹,运行以上的程序后会在这个文件夹下生成一个 tree.dot 的文件,用于生成 pdf 或者是 png 可视化文件

    生成的 png 图片

    生成的 pdf 文件

机器学习入门之:使用 scikit-learn 决策分类树来预测泰坦尼克号沉船生还情况相关推荐

  1. 应用分类算法,预测泰坦尼克号乘客幸存结果

    应用分类算法,预测泰坦尼克号乘客幸存结果 一.业务场景 二.数据集说明 三.操作步骤 阶段一.启动HDFS.Spark集群服务和zeppelin服务器 阶段二.准备案例中用到的数据集 阶段三.对数据集 ...

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

    [阿旭机器学习实战]系列文章主要介绍机器学习的各种算法模型及其实战案例,欢迎点赞,关注共同学习交流. 本文用机器学习中的决策树分类模型对泰坦尼克号生存项目进行预测. 关于决策树的详细介绍及原理参见前一 ...

  3. KDD CUP 99利用决策分类树进行网络异常检测

    import pandas as pd import numpy as np import matplotlib.pyplot as plt 数据导入与数据探索 数据导入 df=pd.read_csv ...

  4. Python机器学习入门1.1《良、恶性乳腺肿瘤预测》

    本教程实用于0基础从事机器学习的人,OK,我们主要是用Python实现机器学习的,所以,你应该花三天时间去看看Python,然后我会有清晰的步骤与每个步骤错误提示,如果你还有什么问题,可以回复我. 这 ...

  5. Spark技术在京东智能供应链预测的应用——按照业务进行划分,然后利用scikit learn进行单机训练并预测...

    3.3 Spark在预测核心层的应用 我们使用Spark SQL和Spark RDD相结合的方式来编写程序,对于一般的数据处理,我们使用Spark的方式与其他无异,但是对于模型训练.预测这些需要调用算 ...

  6. Kaggle教程 机器学习入门学习笔记

    机器学习入门学习笔记 [跳转]<Kaggle教程 机器学习入门>系列课程目录 >> 决策树 简介:是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零 ...

  7. sklearn 决策树(分类树、回归树)的 重要参数、属性、方法理解

    文章目录 决策分类树 引入 重要参数 1,criterion 2,splitter 3,max_depth 4,min_samples_leaf 5,min_samples_split 6,max_f ...

  8. 决策树之CART 算法(回归树,分类树)

    CART 算法,英文全称叫做 Classification And Regression Tree,中文叫做分类回归树. ID3 和 C4.5 算法可以生成二叉树或多叉树,而 CART 只支持二叉树. ...

  9. 机器学习与Scikit Learn学习库

    摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...

最新文章

  1. 强化学习vs遗传算法-人工智能在模拟领域的应用
  2. Spark rdd 介绍,和案例介绍
  3. UIPopoverController的使用
  4. poj3273---Monthly Expense
  5. P5135-painting【组合数学】
  6. ios系统python编译器_MacBook如何安装Python编译器-百度经验
  7. Docker入门之五数据管理
  8. matlab fread函数详解
  9. 国产linux聊天软件,程序员的全平台聊天软件:Rocket.Chat
  10. 万兆交换机用什么网线_千兆网线和万兆网线有什么区别
  11. 移动营业厅前台设备如何安装+新手引导
  12. 光电二极管的工作原理
  13. python之迷宫小游戏
  14. 一瞬间、一刹那、一弹指具体是多少时间呢?
  15. python函数名前带个杠
  16. centos7 搭建三主三从 redis5.0集群
  17. 写给大忙人看的谷歌搜索技巧
  18. 主元分析matlab,主元分析不同方法计算结果不一样
  19. mbr+ghost装黑苹果OS X 10.13
  20. 小木虫网站无法登陆(账号突然被封禁)的解决办法

热门文章

  1. CAD高版本窗体阵列LISP_[转载]AutoCAD高版本怎么把阵列对话框调出来?
  2. 大数据学习之一——Hadoop单机部署
  3. Java幸运盒子代码_幸运盒子扭蛋机小程序app开发
  4. c纳秒级计时器_C#中的高精度计时方法(纳秒级别计时)
  5. 为什么技术面过了却挂在了HR面试之”谈谈你的职业生涯规划“
  6. python多窗口显示内容_如何在一个窗口中显示多个页面?
  7. 欧格教育:提升店铺流量的方法
  8. 好用的工作邮箱有哪些?工作邮箱如何登录
  9. 从’物质决定意识’说起
  10. java实现大文件分片上传功能(前后端都有,代码down下来配置完后可以直接运行)