• sklearn的决策树和随即森林的demo


    以下demo的大概意思:选择是否相亲是标签y,特征是年龄、身高、年收入、学历。

    最后是测试,我输入年龄、身高、年收入、学历。模型判断我是否需要选择相亲。

    1、sklearn中对应的函数DecisionTreeClassifier函数(分类),DecisionTreeRegressor(回归),分类代码如下:

    1. from sklearn import tree
    2. import numpy as np
    3. #年龄,身高,年收入,学历(大专:0,本科:1,硕士:2
    4. X = np.array(
    5. [[25, 179, 15, 0],
    6. [33, 190, 19 ,0],
    7. [28, 180, 18, 2],
    8. [25, 178, 18, 2],
    9. [46, 100, 100, 2],
    10. [40, 170, 170, 1],
    11. [34, 174, 20, 2],
    12. [36, 181, 55, 1],
    13. [35, 170, 25, 2],
    14. [30, 180, 35, 1],
    15. [28, 174, 30, 1],
    16. [29, 176, 36, 1]])
    17. #0表示没有相亲,1表示相亲
    18. y= [0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1]
    19. clf = tree.DecisionTreeClassifier().fit(X, y)
    20. p=[[28, 180, 18, 2]]
    21. print(clf.predict(p)) #[1]

    2、sklearn中对应的函数RadomForestClassifier函数(分类),RadomForestRegressor(回归)

    1. from sklearn.ensemble import RandomForestClassifier
    2. import numpy as np
    3. #年龄,身高,年收入,学历(大专:0,本科:1,硕士:2
    4. X = np.array(
    5. [[25, 179, 15, 0],
    6. [33, 190, 19 ,0],
    7. [28, 180, 18, 2],
    8. [25, 178, 18, 2],
    9. [46, 100, 100, 2],
    10. [40, 170, 170, 1],
    11. [34, 174, 20, 2],
    12. [36, 181, 55, 1],
    13. [35, 170, 25, 2],
    14. [30, 180, 35, 1],
    15. [28, 174, 30, 1],
    16. [29, 176, 36, 1]])
    17. #0表示没有相亲,1表示相亲
    18. y= [0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1]
    19. clf =RandomForestClassifier().fit(X, y)
    20. p=[[28, 180, 18, 2]]
    21. print(clf.predict(p)) #[1]

     决策树的架构比较:

    ID3、C4.5、CART的区别

    1984年提出的cart,1986年提出的ID3,1993年提出的c4.5

    ID3 使用信息增益作为选择特征的准则;
    C4.5 使用信息增益比作为选择特征的准则;
    CART 使用 Gini 指数作为选择特征的准则

    ID3:

    ID3算法是由Ross Quinlan提出的决策树的一种算法实现,以信息论为基础,以信息熵信息增益为衡量标准,从而实现对数据的归纳分类。只适用于分类问题处理。

    缺点只能处理离散的,并且选择倾向属性值较多的

    C4.5:

     C4.5是基于ID3优化后产出的算法,主要优化了关于节点分支的计算方式,支持连续,支持特征筛选

    CART:(sklearn采用的方式)

    CART 与 ID3,C4.5 不同之处在于 CART 生成的树必须是二叉树。也就是说,无论是回归还是分类问题,无论特征是离散的还是连续的,无论属性取值有多个还是两个,内部节点只能根据属性值进行二分。

     建议:

    小样本建议考虑c4.5、大样本建议考虑cart

  • 相关阅读:
    [MAUI]集成富文本编辑器Editor.js至.NET MAUI Blazor项目
    活在当下,看清楚眼前——贪心算法
    Vmware虚拟机创建快照、克隆和备份 创建文件夹共享方法
    基于php的中小型服装厂原料采购系统
    一颗完整意义的LPWAN SOC无线通信芯片——ASR6601
    计算机操作系统-第六天
    什么是反射
    java计算机毕业设计网上租房管理源码+系统+数据库+lw文档+mybatis+运行部署
    C Primer Plus(6) 中文版 第2章 C语言概述 2.1 简单的C程序示例
    Docker安装MoogoDB, 进入容器, mongo shell操作mongoDB
  • 原文地址:https://blog.csdn.net/chehec2010/article/details/126443360