决策树笔记

决策树及决策树生成与剪枝 1. 决策树学习 2. 最优划分属性的选择 2.1 信息增益 - ID3 2.1.1 什么是信息增益 2.1.2 ID3 树中最优划分属性计算举例 2.2 信息增益率 - C4.5 2.3 基尼指数 - CART 3. 决策树剪枝 3.1 决策树的损失函数 3.2 如何进行决策树剪枝 3.2.1 预剪枝 3.2.2 后剪枝 3.3.3 两种剪枝策略对比 参考 转自个人... 阅读详情

决策树特点:

​ a. 树形结构:

​ 根节点

​ 非叶子节点

​ 分支

​ 叶子节点:结果值

​ b.每个节点具有决策功能

训练阶段

​ 从给定的训练集DB,构造一棵决策树

​ class = DecisionTree(DB)

​ 决策树构造:

​ 基本思想:随着树深度的增加,节点的熵迅速地降低。熵降低的速度越快越好,去得到一颗高度最矮的决策树。

​ a.确定数据记录的特征

​ b.计算初始熵值

​ c.尝试计算每一个特征作为根节点后得到的熵值

​ 决策分支后的熵值 = P(T1) * 熵(T1集合) + P(T2) * 熵(T2集合) + …

​ d.取信息增益越大的特征作为下一个决策节点(ID3算法)

​ 信息增益 = 初始熵值 - 决策分支后的熵值

​ 决策树剪枝(防止过拟合):

​ 预剪枝:在构建决策树的过程时,提前停止。

​ 后剪枝:决策树构建好后,然后才开始裁剪,通过遍历构建好的决策树,通过损失函数的大小判断是否裁剪,在这里插入图片描述

分类阶段

​ 从根开始,按照决策树的分类属性逐层往下划分,直到叶节点,获得概念(决策、分类)结果。

​ y = DecisionTree(x)

熵的含义

​ 描述特定集合中混乱程度,熵值越大集合越混乱,熵值越小集合越统一。

​ 如:

​ A = [1, 2, 3, 4, 5]

​ B = [1, 1, 1, 1, 1]

​ 集合A的熵值大于集合B

在这里插入图片描述

​ 与熵值描述功能类似的还有:Gini系数
在这里插入图片描述

​

DS&ML_分类算法笔记之决策树模型 对于决策树模型的相关知识点的总结与整理 简单描述一下决策树模型的思想,决策树是什么? 阅读详情

相关推荐

统计学习方法笔记-决策树模型

简介:    决策树是一种基本的分类与回归方法。下面的笔记主要记录用于分类的决策树。决策树模型呈树形结构,在分类中,表示基于特征对实例进行分类的过程。其主要优点是:模型具有可读性,分类速度快。学习时利用训练数据,根据损失函数最小化原则建立决策树模型。决策树学习通常包括三个步骤:特征选择、决策树的生成、决策树的修剪。决策树模型与学习决策树模型:    分类决策树模型是一种描述对实例进行分类的树形结构...

u011070767的专栏 3345

决策树入门

熵

qq_36206070的博客 1691

机器学习之决策树模型学习笔记

求熵 H(x)=−∑p(i)∗log(p(i))H(x) = -\sum p(i) *log(p(i))H(x)=−∑p(i)∗log(p(i)) 当p=0或p=1时,H=0 熵值最小;当p=0.5时,H=1 熵值最大。 信息增益 表示特征X使得类Y的不确定性减少的程度。假如原来熵值等于10,经过一次决策过后,熵值降低为8,那么信息增益值就等于2,那么我们可以遍历所有特征的熵值,看下哪个特征使我们的信息增益值最大,那么这个特征就是根节点。依次类推,再在剩下的特征中继续寻找信息增益值最大的特征,那么这个特征就

weixin_43326122的博客 462

决策树(decision tree)(二)——剪枝

预剪枝就是在构造决策树的过程中,先对每个结点在划分前进行估计,若果当前结点的划分不能带来决策树模型泛华性能的提升,则不对当前结点进行划分并且将当前结点标记为叶结点。

天泽28的专栏 7万+

【机器学习笔记】——决策树(Decision Tree)

决策树   决策树(decision tree)是一种基本的分类与回归方法,其主要优点是模型具有可读性,分类速度快。学习时利用损失函数(正则化的极大似然函数)最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。根据一组训练数据学习的决策树不是唯一的,与训练数据不相矛盾的(能对训练数据进行正确分类)决策树可能有多个,也可能一个也没有。我们需要的是一个与训练数据矛盾较小(训练误差...

孙悟充的博客 1112

决策树学习笔记(一)

决策树学习笔记(一)前言 For GBDT:提升树、GBDT是以分类树或者回归树为基本分类器的提升方法,在看提升树算法的时候我发现对决策树学习的一些细节并不清晰了,于是决定从头再学一遍。之前的理解还是比较粗浅,一直以为决策树比较简单,类似于很多的简单规则一级一级拼凑起来,对决策树的条件概率表示、特征选择、决策树生成以及剪枝都没有真正的掌握。

hczheng的专栏 9620

《统计学习方法》笔记05:决策树模型

《统计学习方法》笔记05:决策树模型决策树模型:由训练数据集估计条件概率模型。学习算法:ID3,L4.5,CART三种。5.1 预备知识1. 熵熵可用来衡量一个随机变量的概率分布的不确定性情况。当随机变量在各取值上概率相同时,熵最大。熵反映了分布的不确定性程度。当分布中各取值概率相同时,不确定性最大,则熵最大。举例:巴西,德国,中国三国足球联赛,巴西和德国取胜概率远大于中国,不确定性小,可以看做“熵

鸟恋旧林的博客 1076

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树

weixin_42046845的博客 1805

决策树模型学习笔记

决策树基础学习笔记

TonCC的博客 1714

[机器学习笔记] (四)决策树 Decision Tree

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

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 2232

计算机组成原理实验二 运算器组成实验

事实上,ALU的设计是在全加器的基础上,对全加器功能的扩展来实现符合要求的多种算术/逻辑运算的功能。为了实现多种功能的运算,An、Bn数据是不能直接与全加器相连接的,它们受到功能变量F3—F1的制约,因此,可由An、Bn数据和功能变量F3-F1组合成新的函数Xn 、Yn,然后,再将Xn 、Yn和下一位进位Cn-1通过全加器进行全加运算以实现所需的运算功能。AC寄存器可用来存储ALU的输入以实现两个操作数的运算操作,也可以用来存储来自ALU的结果,以将这些结果反馈给ALU以进行更多的处理。

qq_63574533的博客 1451

【学习笔记】决策树模型

决策树模型就是通过树来做决策的模型。所有数据从根节点出发,每经过一个节点,就做一次分类判断,最终将所有数据落到叶节点中。例如以是否喜欢打游戏为标准进行分类。在这里构造一个简单的决策树。这个决策树以年龄和性别进行了一个粗略分类。注:决策树中的判断先后顺序不可以轻易替换,决策树对于这个顺序是比较敏感的。如果替换,会对模型效果有影响。决策树既可以做分类问题也可以做回归问题。决策树的组成根节点:第一个选择点非叶子节点和分支:中间过程叶子节点:最终的决策结果。

THE_middle_c的博客 231

从RJPG到温度地图:基于大疆TSDK的热红外数据精准处理与Pix4D拼接实战

本文详细解析了如何利用大疆TSDK将无人机拍摄的热红外RJPG图像精准转换为带有地理坐标的温度TIFF文件,并完成Pix4D拼接生成正射温度地图的全流程。文章重点阐述了辐射定标的原理、TSDK关键参数(测量距离、湿度、发射率、反射温度)的设置与微调方法,以及Pix4D处理中的常见报错解决方案,旨在帮助用户实现从原始数据到可分析温度地图的精准处理。

docker7nomad的博客 465

机器学习笔记(决策树模型)

决策树模型与Laplace概率矫正

Burning1ce的博客 521

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

weixin_40735291的博客 6619

Context Capture10.20 安装教程(附安装包)

ContextCapture 是一款由Bentley公司推出的实景建模软件,可以快速为各种类型的基础设施项目生成最具挑战性的反应现实环境的三维模型。

一起来交流学习吧 2万+

【机器学习笔记 Ⅱ】11 决策树模型

通过一系列规则对数据进行分类或回归。其核心思想是模仿人类决策过程,通过不断提问(基于特征划分)逐步逼近答案。:年龄、收入、信用评分。:预测是否批准贷款。

weixin_44077623的博客 856

大学生数学建模赛题解析及优秀论文-2021电工杯A题高铁牵引供电系统运行数据分析及等值建模(附Python代码)

我国是世界上电气化铁路运营里程最长、服役电力机车型号最多、运营最 繁忙的国家。截至 2020年底,我国铁路年消耗电量约800亿千瓦时,约占三峡 年总发电量的 80%。图1为高速铁路牵引供电系统示意图,主要包括牵引变电所、牵引网和动车 组。牵引变电所将 220kV三相电压转换为满足电力机车运行的27.5kV单相电压, 其核心元件是牵引变压器。牵引网由馈线、接触网、钢轨、回流线等组成,完成 对电力机车的送电任务。...

wenyusuran的专栏 3170

决策树(Decision Tree)学习笔记

决策树学习笔记

xzhu4571的博客 1319

28-3 文件上传漏洞 -白盒审计绕过

这行代码是用来获取文件名中最后一个点(.)后的部分,也就是文件的后缀名。这个函数会返回以最后一个点(.)开始到字符串末尾的部分,包括点(.)本身。然而,这段代码存在一个潜在的安全风险。攻击者可以利用多个点(.)来构造恶意文件名,以绕过后缀名检查。切换到bp将抓到的上传请求发送到重发器然后改包。先上传一个普通的php文件然后使用bp抓包。

weixin_43263566的博客 392

【软件系统架构】系列十一:面向对象技术—sysML

摘要: SysML(系统建模语言)是UML的扩展,专为复杂系统工程设计,支持硬件、软件、人员等跨领域建模。其核心包括9种图:4种结构图(如块定义图BDD、内部块图IBD)、4种行为图(如活动图AD、序列图SD)和需求图(REQ),覆盖需求、结构、行为及参数约束。相比UML(面向软件),SysML精简图表(9 vs 13),强化需求追踪与性能分析(如参数图PD),并支持MBSE(基于模型的系统工程)。需求关系(如满足、验证、派生)在需求图中明确关联设计实现,形成闭环管理。SysML是UML的子集与系统工程扩展

moton2017的博客 1909

决策树学习笔记(Decision Tree)

 什么是决策树?   决策树是一种基本的分类与回归方法。其主要有点事模型具有可得性,分类速度快。学习时,利用训练数据,根据损失函数最小化原则建立决策树模型;预测时,对新数据,利用决策树模型进行分类。  决策树学习通常包含以下三个步骤:   选择特征   决策树生成   剪枝  决策树的改进路线:   ID3--->C4.5--->CART   (1)其...

MA201506的博客 418

【Android 11】使用Android Studio调试系统应用之Settings移植(五):编译Settings 模块、解决编译错误

基于Andorid 11,系列第5篇文章,本章开始,终于轮到解决正主Settings的编译问题了,使用android studio编译出Settings.apk,能看到这一章的同学,也着实不容易了,再接再厉

上周的博客 3919

决策树(Decision Tree)模型笔记

以前看集体智慧编程时觉得决策树模型没什么大不了的,看得不仔细.昨天知道网页正文抽取(full-text extraction)中对boilerplate和content块的判断就是使用该模型,终于有点直观了,复习一下吧. 集体智慧编程中以预测用户是否选择付费,付费是basic还是premium的分类问题为例讲解. 决策树每一步分支都采用贪心策略,熵(entropy)或基尼不纯度(gini im

jollyjumper的专栏 7301

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

matlab决策树模型过程,机器学习笔记关于MATLAB实现决策树(示例代码)

%% I. 清空环境变量clear allclcwarning off%% II. 导入数据load data.mat%%% 1. 随机产生训练集/测试集a = randperm(569);Train = data(a(1:500),:);Test = data(a(501:end),:);%%% 2. 训练数据P_train = Train(:,3:end);T_train = Train(:,...

weixin_42530172的博客 3093

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 算法要点总结
下一篇: 226. 翻转二叉树
Lazy mode
博客等级 码龄10年 13粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值