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

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

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

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

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

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

from sklearn.ensemble import RandomForestClassifier
import numpy as np
 
#年龄,身高,年收入,学历(大专:0,本科:1,硕士:2)
X = np.array(
        [[25, 179, 15, 0],
         [33, 190, 19 ,0], 
         [28, 180, 18, 2],
         [25, 178, 18, 2], 
         [46, 100, 100, 2],
         [40, 170, 170, 1],
         [34, 174, 20, 2],
         [36, 181, 55, 1],
         [35, 170, 25, 2],
         [30, 180, 35, 1],
         [28, 174, 30, 1],
         [29, 176, 36, 1]])
 
#0表示没有相亲,1表示相亲
y= [0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1]
 
clf =RandomForestClassifier().fit(X, y)
p=[[28, 180, 18, 2]]
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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值