zoukankan      html  css  js  c++  java
  • CART树 python小样例

    决策树不断将数据切分成小数据集,直到所有目标变量完全相同,或者数据不能再切分为止,决策时是一种贪心算法,它要在给定的时间内做出最佳选择,但并不关心能否达到最优

    树回归

    优点:可以对复杂和非线性的数据建模

    缺点:结果不易理解

    适用数据类型:数值型和标称型数据

    实现CART算法和回归树,回归树和分类树的思路类似,但叶节点的数据类型不是离散型,而是连续型

    树回归的一般方法

    (1)收集数据:采用任意方法收集数据。

    (2)准备数据:需要数值型的数据,标称型数据应该映射成二值型数据

    (3)分析数据:绘出数据的二维可视化显示结果,以字典方式生成树

    (4)训练算法:大部分时间都花费在叶节点树模型的构建上

    (5)测试算法:使用测试数据上的R2值来分析模型的效果

    (6)使用算法:使用训练出的树做预测,预测结果还可以用来做很多事情

    CART算法只做二元切分,所以这里可以固定树的数据结构。

    创建树的伪代码:

    找到最佳的待切分特征:

      如果该节点不能再分,将该节点存为叶节点

      执行二元切分

      在右子树调用createTree()方法

      在左子树调用createTree()方法

    CATRT算法可以用于构建二元树并处理离散型或连续型数据的切分。若使用不同的误差准则,就可以通过CART算法构建模型树和回归树。该算法构建出的树会倾向于对数据的过拟合。一颗拟合的树常常十分复杂,剪枝技术的出现就是为了解决这个问题。两种剪枝方法分别使预剪枝和后剪枝。

  • 相关阅读:
    面向对象的继承关系体现在数据结构上时,如何表示
    codeforces 584C Marina and Vasya
    codeforces 602A Two Bases
    LA 4329 PingPong
    codeforces 584B Kolya and Tanya
    codeforces 584A Olesya and Rodion
    codeforces 583B Robot's Task
    codeforces 583A Asphalting Roads
    codeforces 581C Developing Skills
    codeforces 581A Vasya the Hipster
  • 原文地址:https://www.cnblogs.com/zhibei/p/9356113.html
Copyright © 2011-2022 走看看