决策树学习笔记

embedded/2024/9/22 20:19:04/

 一、衡量标准——熵

H(X)=-\sum p_i \log(p_i)

随机变量不确定性的度量

信息增益:表示特征X使得类Y的不确定性减少的程度。

二、数据集

14天的打球情况

特征:4种环境变化(天气、温度等等)

在上述数据种,14天中打球的天数为9天;不打球的天数为5天,计算熵值为

H(X)=-\frac{5}{14} \log(\frac{5}{14}) - \frac{9}{14} \log(\frac{9}{14}) = 0.940

(1)选择outlook作为根节点

计算加权

\frac{5}{14}*0.971+\frac{4}{14}*0+\frac{5}{14}*0.971=0.693

gain(outlook) = 0.940-0.693 = 0.247

类似计算:

gain(temp) = 0.029

gain(humidity) = 0.152

gain(windy) = 0.048

outlook的信息增益最大,因此选择outlook作为根节点

以此类推,确定每一个子树的根节点

三、决策树算法

ID3: 信息增益

C4.5: 信息增益率 

CART: GINI系数

1-\sum p_k^2

四、剪枝

决策树过拟合风险很大,理论上可以将数据完全分开,即一个叶子节点一个数据,因此需要对决策数进行剪枝操作。

剪枝策略:预剪枝和后剪枝

预剪枝:边建立决策树边进行剪枝操作

后剪枝:当建立完决策树后来进行剪枝操作


http://www.ppmy.cn/embedded/20306.html

相关文章

基于uni-app的动态表单

一、应用场景和意义 可以通过配置字段和校验规则,快速完成页面开发、提升开发效率 二、应用前提 形成ui/业务规范,最好是应用在问卷调查之类的业务 三、动态表单的功能 字段报错、快速滚动定位报错信息、支持字段值和字段规则拆分,便于实…

MongoDB的基础使用

1. 数据集操作 进入MongoDB控制台: # 展示数据库 show dbs# 创建并使用数据库 use 数据库名 如:use articledb# 删除数据库 db.dropDatabase()注: 数据库命名规则:数据库名可以是满足以下条件的任意UTF-8字符串。 不能是空字符串…

Tomcat基本使用与控制台乱码解决方式

目录 Tomcat简单介绍 Tomcat基本使用 Tomcat控制台乱码解决方式 Tomcat简单介绍 tomcat是apache开源绿色版本的服务器。 Tomcat基本使用 安装:下载zip包解压即可。 卸载:删除解压的tomcat文件夹即可。 启动:双击bin/startup.bat 停止…

ElasticSearch教程入门到精通——第二部分(基于ELK技术栈elasticsearch 7.x+8.x新特性)

ElasticSearch教程入门到精通——第二部分(基于ELK技术栈elasticsearch 7.x8.x新特性) 1. JavaAPI-环境准备1.1 新建Maven工程——添加依赖1.2 HelloElasticsearch 2. 索引2.1 索引——创建2.2 索引——查询2.3 索引——删除 3. 文档3.1 文档——重构3.2…

Docker数据管理、网络通信和Dockerfile

一.数据管理 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于 Linux 下对目录…

基于 Redis 发布订阅实现服务注册与发现

写在前面 其实很少有公司会使用 Redis 来实现服务注册与发现,通常是ETCD、NACOS、ZOOKEEPER等等,但是也不妨碍我们了解。本文会先介绍 Redis 的发布/订阅模式,接着基于这个模式实现服务注册与发现。 Redis发布订阅流程图: Red…

Swift加载Lottie

OC使用时&#xff0c;需要通过swift透出方法供OC使用 // 此处文件名可以从Build Settings下搜索Generated Header Name的值得出 #import <Test-Swift.h>一、导入包 target iOS douse_frameworks!# 此处pod lottie-ios end二、功能实现 1. 创建组件 import LottieobjcM…

uniapp小程序订阅通知

服务 开通订阅服务 const tmplIds ref([tsdasdadasdfgdrtwexQHdEsjZV])//换成自己的 function confirm(){uni.requestSubscribeMessage({tmplIds: tmplIds.value,success: (res) > {// console.log(res)let auth_notice res[tmplIds.value[0]] accept ? 1 : 2 //1是接…