首页 > 其他分享 >0009.有监督学习之树回归

0009.有监督学习之树回归

时间:2023-06-09 11:55:52浏览次数:45  
标签:剪枝 回归 之树 CART 0009 切分 算法 监督 决策树

一、回顾决策树(分类)

ID3算法构建树模型:每次选取当前最佳的特征类分割数据,并按照该特征的所有可能取值来切分。也就是说,如果一个特征值有4中取值,那么数据将被切分成4份。一旦按某特征切分后,该特征在之后的算法执行过程中将不会再起作用,所以有观点认为这种切分方式过于迅速。

除了切分过于迅速外,ID3算法还存在另一个问题,它不能直接处理连续型特征。只有事先将连续型特征离散化,才能在ID3算法中使用。但这种转换过程会破坏连续型变量的内在特性,也会损失一部分信息。

总结ID3算法缺点:

二、CART算法

1. 什么是CATR?

CART是英文Classification And Regression Tree的简写,又称为分类回归树。从它的名字我们就可以看出,它是一个很强大的算法,既可以用于分类还可以用于回归,所以非常值得我们来学习。

CART算法使用的是二元切分法,这种方法可以通过调整数的构建过程,使其能够处理连续型变量。具体的处理方法是:如果特征值大于给定值就走左子树,否则就走右子树。

CART算法有两步:

决策树生成:递归地构建二叉决策树的过程,基于训练数据集生成决策树,生成的决策树要尽量大;自上而下从根开始建立节点,在每个节点处要选择一个最好的属性来分裂,使得子节点中的训练集尽量的纯;

决策树剪枝:用验证数据集对生成的树进行剪枝并选择最优子树,这时损失函数最下作为剪枝的标准。

不同的算法使用不同的指标来定义“最好”:

2. 衡量指标

先构建一个DataFrame数据集,最后一列为标签。方便后续测试函数。

#导入相关包
import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
#构造数据集
def createDataSet():
  group = np.array([[1, 2],
          [1, 0],
          [2, 1],
          [0, 1],
          [0, 0]])
  labels = np.array([0, 1, 0, 1, 0])
  dataSet = pd.concat([pd.DataFrame(group), pd.DataFrame(labels)],axis=1,
ignore_index=True)
  return dataSet

查看数据集:

2.1 误差率计算函数

2.2 信息熵函数

2.3 Gini指数

三、CART回归树的python实现

1. 找到最佳切分列

2. CART算法实现代码

四、回归树的SKlearn实现

五、树剪枝

1. 预剪枝

2. 后剪枝

六、模型树

1. 模型树叶节点生成函数

2. 模型树实现

七、用树回归进行预测

1. 导入数据集

2. 构建预测函数的辅助函数

3. 回归树的预测结果

4. 模型树的预测结果

5. 标准线性回归的预测结果

八、使用python的Tkinter库创建GUI

1. 用Tkinter创建GUI

2. 集成Matplotlib和Tkinter创建GUI

标签:剪枝,回归,之树,CART,0009,切分,算法,监督,决策树
From: https://www.cnblogs.com/lxinghua/p/17463250.html

相关文章

  • 0007.有监督学习之集成学习(Adaboost算法)
    一、集成学习概述1.集成学习算法定义集成学习(Ensemblelearning)就是将若干个弱分类器通过一定的策略组合之后产生一个强分类器。弱分类器(weakClassifier)指的就是哪些分类准确率只比随机猜测略好一点的分类器,而强分类器(StrongClassifier)的分类准确率会高很多。这里的“强”&......
  • 0006.有监督学习之支持向量机(SVM)
    一、什么是SVM支持向量机(SupportVectorMachine,SVM)是用于分类的一种算法,也属于有监督学习的范畴。当一个分类问题,数据是线性可分(linearlyseparable)的,也就是用一根棍就可以将两种小球分开的时候,我们只要将棍的位置放在让小球距离棍的距离最大化的位置即可,寻找这个最大间隔的......
  • 0005.有监督学习之逻辑回归(Logistic回归)
    一、逻辑回归概述分类计数是机器学习和数据挖掘应用中的重要组成部分。在数据科学中,大约70%的问题属于分类问题。解决分类问题也有很多种,比如:k-近邻算法,使用距离计算来实现分类;决策树,通过构建直观易懂的树来实现分类;朴素贝叶斯,使用概率论构建分类器。这里要讲的是Logistic回归,它......
  • 0004.有监督学习之朴素贝叶斯(NB)
    一、朴素贝叶斯概念贝叶斯分类算法是统计学的一种概率分类方法,朴素贝叶斯分类是贝叶斯分类中最简单的一种。七分类原理就是利用贝叶斯公式根据某特征的先验概率计算出其后验概率,然后选择具有最大后验概率的类作为该特征所属的类。之所以称之为“朴素”,是因为贝叶斯分类只做最原......
  • 0003.有监督学习之决策树
    一、什么是决策树决策树(DecisionTree)是有监督学习中的一种算法,并且是一种节本的分类与回归的方法。即决策树有两种:分类树和回归树。那什么事决策树了?简单点说就是二元判定,从头到尾逐次判定其归属类型。从上述案例,我们很容易理解:决策树算法的本质就是二元判定的属性结构,我们......
  • 使用GAN进行异常检测——可以进行网络流量的自学习哇,哥哥,人家是半监督,无监督的话,还是
    实验了效果,下面的还是图像的异常检测居多。https://github.com/LeeDoYup/AnoGANhttps://github.com/tkwoo/anogan-keras看了下,本质上是半监督学习,一开始是有分类模型的。代码如下,生产模型和判别模型:###generatormodeldefinedefgenerator_model():inputs=Input((10,))......
  • 非监督异常点检测算法总结——没有想到矩阵分解和编码解码器也是一种思路
    非监督异常点检测算法总结 一、基于密度1) d(p,o):两点p和o之间的距离;2)k-distance:第k距离 对于点p的第k距离dk(p)定义如下:p的第k距离,也就是距离p第k远的点的距离,如图。  3)k-distanceneighborhoodofp:第k距离邻域 点p的第k距离邻域Nk(p),就是p的第k距离即以内的所有点,包括......
  • 0002.有监督学习之k-近邻算法
    一、概述k-近邻算法(k-NearestNeighbouralgorithm),又称为KNN算法,是数据挖掘技术中原理最简单的算法。KNN的工作原理:给定一个已知标签类别的训练数据集,输入没有标签的新数据后,在训练数据集中找到与新数据最邻近的k个实例,如果这k个实例的多数属于某个类别,那么新数据就属于这个类别......
  • 斯坦福大学李飞飞团队新作:孪生掩码自编码器SiamMAE,刷榜视觉自监督方法
    前言 只需一个简单操作扩展MAE,即可实现自监督学习新sota!本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框架最全教程整理【CV技术指南】CV全栈指......
  • 自然语言处理(NLP) - 前预训练时代的自监督学习
    前预训练时代的自监督学习自回归、自编码预训练的前世神经网络(NeuralNetwork,NN)损失函数,度量神经网络的预测结果和真实结果相差多少平方差损失(欧式距离角度)预测概率分部和实际标签概率的欧式距离交叉熵损失(信息量角度)预测概率分部和真实概率分部的差异,指导神经网络学......