机器学习理论与实战(九)回归树和模型树

article/2025/10/4 12:48:47

       前一节的回归是一种全局回归模型,它设定了一个模型,不管是线性还是非线性的模型,然后拟合数据得到参数,现实中会有些数据很复杂,肉眼几乎看不出符合那种模型,因此构建全局的模型就有点不合适。这节介绍的树回归就是为了解决这类问题,它通过构建决策节点把数据数据切分成区域,然后局部区域进行回归拟合。先来看看分类回归树吧(CART:Classification And Regression Trees),这个模型优点就是上面所说,可以对复杂和非线性的数据进行建模,缺点是得到的结果不容易理解。顾名思义它可以做分类也可以做回归,至于分类前面在说决策树时已经说过了,这里略过。直接通过分析回归树的代码来理解吧:

from numpy import *def loadDataSet(fileName):      #general function to parse tab -delimited floatsdataMat = []                #assume last column is target valuefr = open(fileName)for line in fr.readlines():curLine = line.strip().split('\t')fltLine = map(float,curLine) #map all elements to float()dataMat.append(fltLine)return dataMatdef binSplitDataSet(dataSet, feature, value):mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:][0]mat1 = dataSet[nonzero(dataSet[:,feature] <= value)[0],:][0]return mat0,mat1

上面两个函数,第一个函数加载样本数据,第二个函数用来指定在某个特征和维度上切分数据,示例如(图一)所示:


(图一)

       注意一下,CART是一种通过二元切分来构建树的,前面的决策树的构建是通过香农熵最小作为度量,树的节点是个离散的阈值;这里不再使用香农熵,因为我们要做回归,因此这里使用计算分割数据的方差作为度量,而树的节点也对应使用使得方差最小的某个连续数值(其实是特征值)。试想一下,如果方差越小,说明误差那个节点最能表述那块数据。下面来看看树的构建代码:

def createTree(dataSet, leafType=regLeaf, errType=regErr, ops=(1,4)):#assume dataSet is NumPy Mat so we can array filteringfeat, val = chooseBestSplit(dataSet, leafType, errType, ops)#choose the best splitif feat == None: return val #if the splitting hit a stop condition return val(叶子节点值)retTree = {}retTree['spInd'] = featretTree['spVal'] = vallSet, rSet = binSplitDataSet(dataSet, feat, val)retTree['left'] = createTree(lSet, leafType, errType, ops)retTree['right'] = createTree(rSet, leafType, errType, ops)return retTree  

         这段代码中主要工作任务就是选择最佳分割特征,然后分割,是叶子节点就返回,不是叶子节点就递归的生成树结构。其中调用了最佳分割特征的函数:chooseBestSplit,前面决策树的构建中,这个函数里用熵来度量,这里采用误差(方差)来度量,同样先看代码:

def chooseBestSplit(dataSet, leafType=regLeaf, errType=regErr, ops=(1,4)):tolS = ops[0]; tolN = ops[1]#if all the target variables are the same value: quit and return valueif len(set(dataSet[:,-1].T.tolist()[0])) == 1: #exit cond 1

http://chatgpt.dhexx.cn/article/3eWd5OBP.shtml

相关文章

决策树模型

本文代码及数据集来自《Python大数据分析与机器学习商业案例实战》 决策树模型的建树依据主要用到的是基尼系数的概念。基尼系数&#xff08;gini&#xff09;用于计算一个系统中的失序现象&#xff0c;即系统的混乱程度。基尼系数越高&#xff0c;系统的混乱程度就越高&#x…

新版HyperMesh的Assemblies中调出下拉菜单查看Component(装配关系模型树)

新版HyperMesh的Assemblies中调出下拉菜单查看Component&#xff08;装配关系模型树&#xff09; 从Altair更新的2019版本开始&#xff0c;在Model模型树中找不到Assemblies了&#xff0c;这样导致好多用户一直在用14或者17版本&#xff0c;其实这次更新不是把这个功能取消掉了…

Cesium bim模型加载并与模型树关联(分层加载)

很久都没写文章了&#xff0c;最近实在是太忙了&#xff0c;向各位关注我的小伙伴致个歉&#xff01; 最近没事儿写了个模型树和模型关联的功能&#xff0c;处理工具是用的cesiumlab。 说明一下为什么要用cesiumlab&#xff1a; 网上现在有很多的模型转换工具&#xff0c;如…

举例讲清楚模型树和回归树的区别

根据上面图中的一个例子&#xff0c;我们来分析下&#xff0c;假设A、B两点是曲线上的噪声点。 模型树的叶子节点是一个分段线性函数[1]。 回归树的叶子节点是取一个区间的平均(一个常数值)。 上述图中AB区间的均值是一个暗点。 所以&#xff1a; 对于节点A而言&#xff0c;模…

[Ansys Workbench] Mechanical 界面显示模型树窗口和详细信息窗口

根据这个回答才找到的……我之前也没注意&#xff0c;别人问我我才去想的 https://forum.ansys.com/discussion/8740/workbench-tree-outline 一般的方法是在 主页 - 布局 - 管理 里面选择显示哪个视窗 如果就是想显示模型树窗口和详细信息窗口&#xff0c;可以使用快捷键 Ctr…

creo文件如何检入服务器,CREO模型树配置的保存与检索

保存模型树配置 (1)单击 然后单击“保存设置文件”(Save Settings File)。“保存模型树配置”(Save Model Tree Configuration) 对话框打开。 (2)接受默认文件名 tree.cfg 或键入新名称。 (3)单击“保存”(Save)。 手动检索模型树配置 (1)单击 然后单击“打开设置文件”(Open S…

Graphviz绘制模型树2——XGBoost模型的可解释性

从二分类模型中的树重新理解XGBoost算法 一.对绘制的树简单解释1.1类别判断1.2树的最大层级1.3效果较差情况 二.从数据来解释一棵树2.1EXCEL构建第1颗树2.2第1棵树的数据解释2.3效果较差的节点解释 三.N颗树如何预测样本3.1样本22数据3.2样本22落入叶子情况3.3样本22的总结 四.…

决策树(二):回归树和模型树

下面介绍的回归树和另一篇文章介绍的分类树&#xff0c;都属于决策树范畴。分类树的模型是每个非叶子节点都是一个分类特征&#xff0c;按照该分类特征的不同取值&#xff0c;将数据集分为多少个子集&#xff1b;并且分类树模型我们要找的是测试数据集的最终分类结果&#xff0…

模型树——就是回归树的分段常数预测修改为线性回归 对于非线性回归有较好的预测效果...

说完了树回归&#xff0c;再简单的提下模型树&#xff0c;因为树回归每个节点是一些特征和特征值&#xff0c;选取的原则是根据特征方差最小。如果把叶子节点换成分段线性函数&#xff0c;那么就变成了模型树&#xff0c;如&#xff08;图六&#xff09;所示&#xff1a; &…

《机器学习实战》9.3树回归之模型树和项目案例

《机器学习实战》9.3树回归之模型树和项目案例 搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多人工智能、机器学习干货 csdn&#xff1a;https://blog.csdn.net/baidu_31657889/ github&#xff1a;https://github.com/aimi-cn/AILearners 本文出现的所有…

模型树–M5

模型树–M5 模型树推广了回归树的概念&#xff0c;它与回归树的2个重要不同在于&#xff1a; 叶节点上不是常量&#xff0c;而是一个线性函数模型。分割空间的标准不是降低平方误差&#xff0c;而是降低样本标准差。 相比于回归树&#xff0c;模型树的优点在于&#xff1a;回…

机器学习——模型树

和回归树&#xff08;在每个叶节点上使用各自的均值做预测&#xff09;不同&#xff0c;模型树算法需要在每个叶节点上都构建出一个线性模型&#xff0c;这就是把叶节点设定为分段线性函数&#xff0c;这个所谓的分段线性&#xff08;piecewise linear&#xff09;是指模型由多…

深度学习人脸检测与人脸识别

一、概述 1. 基本概念 人脸是个人重要的生物特征&#xff0c;业界很早就对人脸图像处理技术进行了研究。人脸图像处理包括人脸检测、人脸识别、人脸检索等。人脸检测是在输入图像中检测人脸的位置、大小&#xff1b;人脸识别是对人脸图像身份进行确认&#xff0c;人脸识别通常…

各类人脸识别算法的总体分析

一、人脸识别算法之特征脸方法&#xff08;Eigenface&#xff09; 1、原理介绍及数据收集 特征脸方法主要是基于PCA降维实现。 详细介绍和主要思想可以参考 http://blog.csdn.net/u010006643/article/details/46417127 上述博客的人脸数据库打不开了&#xff0c;大家可以去下…

人脸识别算法初次了解

人脸识别算法初次了解 这是转载别人的帖子&#xff0c;觉得好&#xff0c;大家一块学习http://www.cnblogs.com/guoyiqi/archive/2011/07/28/2129300.html 前言 在写此文之前&#xff0c;先扯点东西。我一直在找一个东西&#xff0c;让我思考&#xff0c;让我久久的深陷其…

深扒人脸识别技术,原理、算法深度解析

在深度学习出现后&#xff0c;人脸识别技术才真正有了可用性。这是因为之前的机器学习技术中&#xff0c;难以从图片中取出合适的特征值。轮廓&#xff1f;颜色&#xff1f;眼睛&#xff1f;如此多的面孔&#xff0c;且随着年纪、光线、拍摄角度、气色、表情、化妆、佩饰挂件等…

基于特征脸的人脸识别算法概述

基于特征脸的人脸识别算法概述 —— 才疏学浅, 难免有错误和遗漏, 欢迎补充和勘误. 特征脸识别算法&#xff08;EigenFaceRecognizer&#xff09;是一种在主成分分析&#xff08;PCA&#xff09;中进行人脸辨识的技术。基于特征脸的驾驶人身份识别流程图为&#xff1a; 图1 …

人脸检测与识别

人脸检测&#xff08; Face Detection &#xff09;和人脸识别技术是深度学习的重要应用之一。本章首先会介绍MTCNN算法的原理&#xff0c; 它是基于卷积神经网络的一种高精度的实时人脸检测和对齐技术。接着&#xff0c;还会介绍如何利用深度卷积网络提取人脸特征&#xff0c;…

人脸检测算法综述

其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。 书的购买链接书的勘误,优化,源代码资源导言 人脸检测是目前所有目标检测子方向中被研究的最充分的问题之一,它在安防监控,人证比对…

现在人脸识别最好的算法是哪种?

目前看来&#xff0c;基于深度学习是在人脸识别领域效果比较出色的机器学习方法。 但从学术的角度来讲&#xff0c;“最好”是一个谨慎的词语&#xff0c;深度学习从以往不被认可逐渐成长为机器学习的主流&#xff0c;同样&#xff0c;也难保未来会有其它方法会取代深度学习。 …