栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

实验4 决策树分类实验中

Python 更新时间:发布时间: 百科书网 趣学号

一、实验要求

在计算机上验证和测试招聘数据的决策树分类实验,理解基尼系数生成决策树,同时理解决策树的参数。

  • 实验目的

1、掌握决策树分类的原理

2、能够实现决策树分类算法;

3、掌握决策树的参数设置;

三、实验内容

实验步骤

  1. 请阅读DecisionTree1代码,实现基尼系数生成决策树的,gini函数。

 

  1. 请阅读DecisionTree2代码,实现calOneEntropy和calOneGini函数,选取莺尾花数据的某个特征,对其分割,针对每个分割点分别计算信息熵和基尼系数,最后把信息熵和基尼系数的曲线图画出来。

def caloneEntropy(X,y,n=100):
    ents = np.zeros(n)
    X1 = X[:,3]
    cuts = np.linspace(X1.min(),X1.max(),n)
    #开始计算
    i = 0
    for num in cuts:
        ent = 0.0
        y1 =  y[X1 < num]
        y2 = y[X1 > num]
        ent += entropy(y1)
        ent += entropy(y2)
        ents[i] = ent
        i+=1
    return cuts,ents

cuts,ents = caloneEntropy(X,y)
plt.xlabel('cuts')
plt.ylabel('ents')
plt.plot(cuts,ents)
plt.show()

 

def caloneGini(X,y,n=100):
    ents = np.zeros(n)
    X1 = X[:,3]
    cuts = np.linspace(X1.min(),X1.max(),n)
    #开始计算
    i = 0
    for num in cuts:
        ent = 0.0
        ent += gini(y[X1 < num])
        ent += gini(y[X1 > num])
        ents[i] = ent
        i+=1
    return cuts,ents

cuts,ents = caloneGini(X,y)
plt.xlabel('cuts')
plt.ylabel('ents')
plt.plot(cuts,ents)
plt.show()

3.请阅读tree1.ipynb,生成makemoon数据,分别测试,KNN,贝叶斯和决策树,对这个样本数据的分类观察分类的区别。

同时对决策树的下面5个参数进行调节,找到决策树分类相对最优的参数组合。

决策树易于理解和实现,但是决策树算法非常容易过拟合,可以通过设置节点最少样本数量和调节不同参数来改进。

 KNN算法无需估计参数,无需训练的方法,但是它的缺点是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。如需改变其准确率可以通过改变其k值来进行测试,找到最优的分类方法。

 贝叶斯模型对缺失数据不太敏感,算法也比较简单,常用于文本分类。但是需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。

 

四、实验总结

1. 定义:基尼指数(基尼不纯度):表示在样本集合中一个随机选中的样本被分错的概率。

2.正则化超参数

DecisionTreeClassifier 类还有一些其他的参数,同样可以限制决策树的形状:

min_samples_split (分裂前节点必须有的最小样本数)

min_samples_leaf(叶节点必须有的最小样本数量)

max_leaf_nodes(最大叶节点数量)

max_features(分裂每个节点评估的最大特征数量)

3.使用交叉验证或者网格化搜索查询最优点

4.当决策树深度过大时,在训练集上表现特别好,往往就会出现过拟合现象,我们需要一些解决办法,引入随机森林,下次实验会用。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/275001.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号