机器学习算法基础——决策树

news/2024/11/25 13:33:26/

文章目录

  • 决策树算法的定义
  • 发展历程
  • 适用范围及其优缺点
    • 适用范围
    • 优点
    • 缺点
  • 代码实现

决策树算法的定义

在这里插入图片描述

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。

发展历程

决策树的发展先后经历了ID3、C4.5已经CART三种算法。
在这里插入图片描述

适用范围及其优缺点

适用范围

决策树算法比较适合用于离散型的数据分布,比如当特征的取值只有0和1时,使用决策树算法往往会取得很好地效果,如果处理的数据为连续型分布,在分类决策时,同样还需要将其变成离散型分布,比如设置一个中间值,将所有数据变为与中心值比较的大小关系。

优点

  1. 决策树易于理解和实现,人们在在学习过程中不需要使用者了解很多的背景知识,这同时是它的能够直接体现数据的特点,只要通过解释后都有能力去理解决策树所表达的意义。
  2. 对于决策树,数据的准备往往是简单或者是不必要的,而且能够同时处理数据型和常规型属性,在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
  3. 易于通过静态测试来对模型进行评测,可以测定模型可信度;如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。

缺点

  1. 对连续性的字段比较难预测。
  2. 对有时间顺序的数据,需要很多预处理的工作。
  3. 当类别太多时,错误可能就会增加的比较快。
  4. 一般的算法分类的时候,只是根据一个字段来分类。

代码实现

数据下载:https://pan.baidu.com/s/1debtGBe-J4-7eQJh6pVU2w?pwd=z91e

# 导入各种包,其中决策树所在的包为tree
import numpy as np
from sklearn import tree
import graphviz
#导入数据
data=np.genfromtxt("cart.csv",delimiter=',')
x_data=data[1:,1:-1]
y_data=data[1:,-1]
x_data,y_data
model=tree.DecisionTreeClassifier() #建立决策树模型,默认分类到叶子结点
model.fit(x_data,y_data)
#导出决策树图形
dot_data=tree.export_graphviz(model,feature_names=['house_yes','house_no','single','married','divorced','income'],class_names=['no','yes'],filled=True,rounded=True,special_characters=True)
graph = graphviz.Source(dot_data) #绘图
graph.render('cart') #保存为pdf文件
graph #输出决策树图形

在这里插入图片描述


http://www.ppmy.cn/news/6095.html

相关文章

小程序02/小程序 响应式单位rpx 、image组件概念说明 和 mode属性介绍

一. 响应式单位rpx rpx 说明 rpx: 规定不管屏幕为多少px , 100%的屏幕宽度就是750rpx 100% 屏幕的宽度 750rpx rpx响应单位 rpx是微信小程序独有的,解决屏幕自适应的尺寸单位 可以根据屏幕宽度进行自适应,不论大小屏幕,规定屏幕宽为750…

基于ACO蚁群优化实现VRPTW问题求解matlab仿真

目录 1.算法概述 2.仿真效果 3.matlab仿真源码 1.算法概述 随着科学技术和生产的不断发展,许多实际问题不可能在合理的时间范围内找到全局最优解,这就促使了近代最优化问题求解方法的产生。随着各种不同搜索机制的启发式算法相继出现,如禁忌搜索、遗传算法、模拟退火算法…

使用MAXScript脚本编写圣诞树建模插件教程

一、前言 2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 今年的圣诞节为大家分享用MAXScript脚本编写圣诞树建模插件的技术创意,喜欢的同学别忘记在下面点个赞! 二、创意名 一键圣诞树插件 三、效果展示 四、实现步骤 1.制作圣诞树的设计稿…

MySQL的数据类型和存储引擎介绍

一. MySQL数据类型 1. 整数类型 注:MySQL可以为整数类型指定宽度,比如 int(3)、int(5),这个限制不是限制value的合法范围,所以对绝大数应用没有任何意义,对于存储而言,int(3) 和 int(5) 是相同的&#xff…

垃圾回收机制

1.什么场景下该使用什么垃圾回收策略? (1).对内存要求苛刻的场景 想办法提高对象的回收效率,尽可能的多回收一些对象,腾出更多内存 (2).在CPU使用率较高的情况下 降低高并发时垃圾回收频率,让CPU更多地去执行业务而不是垃圾回收 …

某鱼兼职并不是那么好做,钱也不是漫天要价

文章目录一、背景二、雇主的期望2.1、jinja2代码三、题主的期望3.1、删除功能3.2、前端体现3.3、留言列表实现降序3.4、效果显示四、总结一、背景 上周某鱼推送过来的单子多到题主应接不暇,不得已拒绝了几单,但是接下来的单子呢又不那么顺利,…

InnoDB详解2

文章目录InnoDB详解21 行格式1 Compact行格式详解1 变长字段长度列表(两个字节)2 NULL值列表(1个字节)3 记录头信息 (重点)2 Dynamic行格式2 页的上层结构InnoDB详解2 1 行格式 规定每条记录是怎么存储的…

不同截止高度角BDS/GPS/Galileo单历元RTK定位性能分析

摘要 【目的】为探究北斗卫星导航系统(BeiDou Navigation Satellite System, BDS)、GPS(Global Positioning System)、Galileo单系统及组合系统在中国地区不同截止高度角下单历元双频RTK(Real-Time Kinematic)定位性能,对武汉境内一条短基线进行分析研究。【方法】采用双…