机器学习——决策树算法

一、实验目的

掌握如何实现决策树算法,用并决策树算法完成预测。

二、实验内容

本次实验任务我们使用贷款申请样本数据表,该数据表中每列数据分别代表ID、年龄、高薪、有房、信贷情况、类别,我们根据如下数据生成决策树,使用代码来实现该决策树算法。

三、实验原理或流程

实验原理:

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy =系统的凌乱程度,使用算法ID3,C4.5和C5.0生成树算法使用嫡。这一度量是基于信息学理论中嫡的概念。

决策树的算法原理
(1)找到划分数据的特征,作为决策点
(2)利用找到的特征对数据进行划分成n个数据子集。
(3)如果同一个子集中的数据属于同一类型就不再划分,如果不属于同一类型,继续利用特征进行划分。
(4))指导每一个子集的数据属于同一类型停止划分。
2、决策树的优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关的特征数据
缺点:可能产生过度匹配的问题

四、实验过程及源代码

1.构建决策树如下:

该决策树的结构,可以用字典表示为:
{'有自己的房子':{0:{'有工作':{O: 'no',1: 'yes'}},1 : 'yes'}}

接下来我们编写python代码来递归构建决策树。
2.打开Pycharm,新建项目,项目位置名称:/data/Test

编译器选择python3.5,如下图所示,然后点击OK:

3.在项目名Test下,创建Python File文件。

4.创建以dectree命名的文件。

5.打开dectree.py文件,编写代码构建决策树。

(1)计算数据集的香农嫡。

(2)创建测试数据集。

(3)创建函数splitDataset,按照特征划分数据集。

(dataSet:待划分的数据集,axis:划分数据集的特征,value:需要返回的特征值)

(4)选择最优特征。

(5)统计classList中出现次数最多的元素(类标签)。
 

(6)创建决策树。

6.右键,选择Run 'dectree',运行程序。

运行结果如下:

7.接下来我们用上述已经训练好的决策树做分类,只需要提供这个人是否有房,是否是高薪工作这两个信息即可。我们在dectree.py文件中添加一个classify函数,代码如下:

8.最后我们在dectree.py文件中的main函数中,输入测试数据[0,1],它代表没房,但是有高薪工作,该函数完整代码如下:

9.然后在dectree.py文件中右键,选择Run 'dectree',运行程序。

根据运行结果,我们得知会同意贷款给这个人。

五、实验结论及心得

实验结论:

本次实验中,我们使用决策树对贷款申请样本数据进行了分类和预测。通过建立决策树模型,我们可以根据不同的特征属性对个体进行分类,判断其是否符合贷款资格的要求。通过对实验结果的观察,可以得出以下结论:高薪、有房和信贷情况是影响贷款申请通过与否的重要因素;在这些因素相同的情况下,年龄越大的人更容易获得贷款资格。同时,我们也需要注意在训练决策树模型时避免过拟合现象的发生,需要对数据集进行合理分割和调整参数。总之,决策树是一种简单而有效的机器学习方法,可以应用于多个领域。

心得体会:

学习决策树的过程中,我深刻认识到了这种机器学习算法的优点和不足。决策树具有模型简单、易于理解、可解释性强等特点,在数据挖掘、分类预测等领域有着广泛的应用。但同时也存在一些缺点,如容易出现过拟合、对异常值敏感等问题。因此,在使用决策树时需要对数据进行充分的处理和清洗,采用剪枝和交叉验证等方法来避免过拟合现象的发生。此外,还需要注意选择合适的评估指标和调整参数来优化模型性能。总之,学习决策树不仅可以帮助我们更好地理解机器学习的基本原理,也有助于我们在实际应用中轻松构建高效的分类模型。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
决策树算法是一种广泛应用于分类和回归的机器学习算法,它基于树形结构对样本进行分类或预测。决策树算法的主要思想是通过一系列的判断来对样本进行分类或预测。在决策树中,每个节点表示一个属性或特征,每个分支代表该属性或特征的一个取值,而每个叶子节点代表一个分类或预测结果。 决策树算法的训练过程主要包括以下步骤: 1. 特征选择:根据某种指标(如信息增益或基尼系数)选择最优的特征作为当前节点的分裂属性。 2. 决策树生成:根据选择的特征将数据集分成若干个子集,并递归地生成决策树。 3. 剪枝:通过剪枝操作来提高决策树的泛化性能。 决策树算法的优点包括易于理解和解释、计算复杂度较低、对缺失值不敏感等。但是,决策树算法也存在一些缺点,如容易出现过拟合、对离散数据敏感等。 下面是一个决策树算法的案例:假设我们要根据一个人的年龄、性别、教育程度和职业预测其收入水平(高于或低于50K)。首先,我们需要将这些特征进行编码,将其转换为数值型数据。然后,我们可以使用决策树算法对这些数据进行训练,并生成一个决策树模型。最后,我们可以使用该模型对新的数据进行分类或预测。例如,根据一个人的年龄、性别、教育程度和职业,我们可以使用决策树模型预测该人的收入水平。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肉肉肉肉肉肉~丸子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值