Hadoop学习笔记三 -- 决策树算法实现用户风险等级分类

本文介绍了在大数据背景下,决策树算法在用户风险等级分类中的应用。通过对数据特征的信息增益计算,构建决策树模型,并在MapReduce中实现。实验结果显示,虽然决策树算法结果直观,但在处理非二元数据时错误率较高,可通过增加判断维度来优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

刚刚过去的2016年被称为人工智能的元年,在AlphaGo大战李世石取得里程碑式的胜利后,神经网络和深度学习的概念瞬间进入了人们的视野,各大商业巨头也纷纷将自己的目标转移到这个还没有任何明确方向但所有人都知道它一旦出手将改变世界的人工智能方向中。在这个过程中,人们也突然发现在过去几年大数据存储技术和硬件处理能力不断发展,而产出却有限,主要是面对如此纷繁复杂的数据,人们却不知道如何利用。答案就在那里,却不知道如何寻找答案。所以数据挖掘、机器学习的算法的学习和研究又成了高度热门的话题。本文继上一篇博客中研究的KNN算法,对机器学习中另一个比较简单的算法 – 决策树算法进行学习和研究。KNN算法是基于节点之间的欧式距离进行分类,算法简单易懂,比较大的缺陷是计算量比较大而且无法给出数据的内在含义,而决策树算法相对而言在数据内在含义方面有比较大的优势,得到的结果也容易在业务上被理解。

决策树算法

决策树算法的规则跟人脑决策非常相似,通过一系列IF-ELSE的问题进行决策实现最终的分类。以下是一个极简单的决策树例子。


这里写图片描述
决策树算法运行的过程也是决策树构造的过程,面对庞杂的数据,在构造决策树时,需要解决的第一个问题就是当前数据集上哪个特征在划分数据分类时起决定性作用。如在上一个博客中用户风险等级划分的案例,用户有股票、基金及贵金属投资,理财产品投资,存款机货币市场投资三个方面的数据,而实际的商业用户有更多维度的数据,我们必须找到决定性的特征,才能划分最好的结果,所以我们必须评估每个特征的重要性。在找到第一个决策点后,整个数据集就会被划分成几个分支,接下来再检查这几个分支下的数据是否属于同一类,如果是同一类数据,则停止划分,如果不属于同一类数据,则需要继续寻找决策点,创建分支的伪代码如下:

    检测数据集中每个子项是否属于同一分类:
        If so return 类标签;
        Else 
            寻找划分数据集的最好特征

            划分数据集
            创建分支节点
                For 每个划分的子集
                    迭代并增加返回结果到分支节点中
            return 分支节点

信息增益

划分数据集的最大原则是将无序的数据变得更加有序,在划分数据集之前和之后信息发生的变化称为信息增益,在计算完每个特征值划分数据集获得的信息增益后,获得信息增益最高的特征就是最好的选择。而集合信息的度量方式称为香农熵。香农熵的计算公式为

这里写图片描述

在MapReduce中实现每个维度信息增益的计算。

public class CalcShannonEntMapper 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值