机器学习之旅—决策树(1)
决策树(Decisino Tree)
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。
前言
我们将讨论可以用于分类和回归任务的简单、非线性的模型——决策树。个人认为决策树相对于其他机器学习模型更容易理解,符合我们人类思考和对事物进行分类判断的逻辑。我们在现实生活中就是这样一步一步做出决策的。例如找对象、找工作都会不自觉用到决策树算法来做出决定我们的决定。有人可能认为现在是深度学习的天下,决策树是不是已经过时了没有立足之地了。虽然在某些应用已经打上深度神经网的标签,但是在一些领域中可能更适合选择决策树而非深度神经网模型。
决策树
dt_011.jpeg决策树是一个非线性分类器,给出以一种分割数据的规则来将数据切分为 和 两份数据。既然这里提到了线性和非线性模型,我们简单介绍一下什么是线性模型和什么是非线性模型,以及两者的区别。
dt_03.jpg
线性模型
在统计意义上,如果一个回归等式是线性的,其参数就必须也是线性的。如果相对于参数是线性,那么即使性对于样本变量的特征是二次方或者多次方,这个回归模型也是线性的。
非线性模型
最简单的判断一个模型是不是非线性,就是关注非线性本身,判断其参数是不是非线性的。
- 和 不是独立,在不同区域内 和 关系不同。
线性模型和非线性模型的区别
在机器学习的回归问题中,线性模型和非线性模型都可以去对曲线进行建模,所有有许多人误认为线性模型无法对曲线进行建模。其实,线性模型和非线性模型的区别并不在于能不能去拟合曲线。
- 线性模型可以用曲线拟合样本,但是分类的决策边界一定是直线(如 logistics 模型)
- 区分是否为线性模型,主要是看一个乘法式子中自变量 前的系数 ,应该是说 只被一个 影响,那么此模型为线性模型。
- 画出 和 是曲线关系,但是他们是线性模型,因为 中可以观察到 只被一个 影响
- 当(如下面模型中) 不仅仅被参数 影响,而且还被 影响,自变量 被两个以上的参数影响,那么模型就是非线性模型
看一个例子
- 看待遇
- 看是否双休
- 看是否出差
- 看是否
- 看是否有发展
通过系列问题我们衡量最终结果是去还是不去这家公司。这系列问题就是
决策树的结构
dt_09.jpg决策树算法是用树状结构表示数据分类的结果
- 根节点(root node)
- 非叶子节点(internal node)
- 叶子节点(leaf node)每一个叶子节点都有一个分类值
-
分支(branch)
dt_07.jpg
在开始之前,我们看一些重要概念以及公式推导。
信息熵
熵概念最早是在物理热力学中提出概念后来也被在统计学中使用,表示提出了信息熵的概念,用以度量信息的不确定性。度量数据的纯度的指标这里用信息熵。一个事件发生概率与这个事件信息的关联,完全确定的也就是一定会发生,那么信息就会为 0。既然我们知道信息熵和概率的关系我们下面来推导一下信息熵计算公式
表示事件发生不确定性,也就是事件信息熵,他们分别表示x 和 y 的信息熵。
例如说太阳从东方升起那么这句话就是信息量为 0 的话,这里信息量是指事件本身,也就是小概率发生了那么他信息量就是很大。那么也就是说概率越大其携带的信息量就越少。
dt_10.jpg我们通过下面实际例子来说说信息熵,下面有 A 和 B 两个集合分别是不同类别的元素,在 A集合包含各种不同种类水果的元素,而相对于 A 集合 B 集合包含了属于较少类别的元素。
分类
在 A 集合中有属于 banana apple straberry orange grape 等不同类别的元素
而在 B 集合中仅包含较少类别的水果
不难看出 A 集合和 B 集合,A 集合中种类中水果品种类别出现比较多,说明 A 集合比 B 集合的信息熵大。也就是所有 A 集合类别比较高。
下面图为
ln(x) 是增函数,那么 -ln(x) 就是一个减函数。所有在 x = 1 处 -ln(x) 为 0 而在 x = 0 时候 -ln(x) 却是无穷大
下面公式就是信息熵的公式
-
在离散情况下信息熵公式
-
在连续函数情况下信息熵的公式