当前位置: 首页 > news >正文

[机器学习]决策树

1 决策树简介

2 信息熵

 3 ID3决策树

3.1 决策树构建流程

3.2 决策树案例

4 C4.5决策树

5 CART决策树(分类&回归)

6 泰坦尼克号生存预测案例

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier,plot_tree
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score,precision_score,recall_score,f1_score,classification_report
# 获取数据
data=pd.read_csv('titanic/train.csv')
# data.info()
# 数据处理
x=data[['Sex','Age','Pclass']]
y=data['Survived']
# x.head()
# 热编码
x=pd.get_dummies(x)
# 缺失值填充
x['Age']=x['Age'].fillna(x['Age'].mean())
# x.head()
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=22)
# 模型训练
tree=DecisionTreeClassifier(criterion='gini',max_depth=6)
tree.fit(x_train,y_train)
# 模型预测
y_predict=tree.predict(x_test)
# print(y_predict)
# 模型评估
print('accuracy_score',accuracy_score(y_test,y_predict))
print('precision_score',precision_score(y_test,y_predict))
print('recall_score',recall_score(y_test,y_predict))
print('f1_score',f1_score(y_test,y_predict))
print(classification_report(y_test,y_predict))
# 绘制树
plt.figure(figsize=(30,20))
plot_tree(tree,filled=True,feature_names=['Age','Pclass','Sex_female','Sex_male'],class_names=['died','survived'])
plt.show()

7 CART回归树

import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.tree import DecisionTreeRegressor,plot_tree
import matplotlib.pyplot as plt# 构建数据
x=np.array(list(range(1,11))).reshape(-1,1)
print(x.shape)
y=np.array([5.56,5.7,5.91,6.4,6.8,7.05,8.9,8.7,9,9.05])
# print(x)# 模型训练
model1=LinearRegression()
model2=DecisionTreeRegressor(max_depth=1)
model3=DecisionTreeRegressor(max_depth=3)model1.fit(x,y)
model2.fit(x,y)
model3.fit(x,y)
# 模型预测
x_test=np.arange(0.0,10.0,0.01).reshape(-1,1)
print(x_test.shape)
y1=model1.predict(x_test)
y2=model2.predict(x_test)
y3=model3.predict(x_test)plt.scatter(x,y)
plt.plot(x_test,y1)
plt.plot(x_test,y2)
plt.plot(x_test,y3)
plt.grid()
plt.show()plt.figure(figsize=(30,20))
plot_tree(model3,filled=True)
plt.show()

8 决策树剪枝

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 24年蓝桥杯及攻防世界赛题-MISC-3
  • Jenkins 构建后操作(Send build artifacts over SSH)
  • Codes 开源研发项目管理平台——敏捷测试管理创新解决方案
  • JS全选反选案例
  • Git进阶(十五):Git LFS 使用详解
  • vue3使用provide和inject传递异步请求数据子组件接收不到
  • 线程(二) 线程清理和控制、线程的属性
  • 4.C_数据结构_队列
  • 用Java实现人工智能
  • Selenium实现滑动滑块验证码验证!
  • 龙蜥8.9系统hadoop3.3.6上spark3.5.2安装(伪分布)
  • 在RabbitMQ中四种常见的消息路由模式
  • Red Hat 和 Debian Linux 对比
  • 小程序体验版无法正常请求接口,开启 调试可以正常请求
  • 本地不能訪問linux的kafka服務
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • avalon2.2的VM生成过程
  • docker容器内的网络抓包
  • Fabric架构演变之路
  • javascript 哈希表
  • JAVA多线程机制解析-volatilesynchronized
  • JS实现简单的MVC模式开发小游戏
  • PHP 7 修改了什么呢 -- 2
  • php的插入排序,通过双层for循环
  • Redis学习笔记 - pipline(流水线、管道)
  • unity如何实现一个固定宽度的orthagraphic相机
  • 理清楚Vue的结构
  • 数据结构java版之冒泡排序及优化
  • 通过git安装npm私有模块
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  •  一套莫尔斯电报听写、翻译系统
  • 06-01 点餐小程序前台界面搭建
  • mysql面试题分组并合并列
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​第20课 在Android Native开发中加入新的C++类
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #android不同版本废弃api,新api。
  • ${factoryList }后面有空格不影响
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Java)【深基9.例1】选举学生会
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (分布式缓存)Redis分片集群
  • (九)c52学习之旅-定时器
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十三)Flink SQL
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .gitignore文件设置了忽略但不生效
  • .java 9 找不到符号_java找不到符号
  • .NET MVC 验证码
  • .net Stream篇(六)