机器学习核心算法

目录

逻辑回归

算法原理

决策树

决策树算法概述

树的组成

决策树的训练与测试

切分特征

衡量标准--熵

信息增益

决策树构造实例

连续值问题解决

预剪枝方法

分类与回归问题解决 

决策树解决分类问题步骤

决策树解决回归问题步骤

决策树代码实例

集成算法

Bagging模型

使用Bagging模型的示例代码

Boosting模型

AdaBoost

Stacking模型

支持向量机

决策边界

距离的计算

数据标签定义

 优化的目标

目标函数

拉格朗日乘子法

SVM求解

SVM求解实例

 soft-margin

低维不可分问题

逻辑回归

逻辑回归是一种用于解决二分类问题的机器学习分类算法。它通过将输入特征与权重相乘,并加上偏置项,然后将结果通过一个称为“sigmoid函数”的激活函数进行转换,得到一个介于0和1之间的概率值。这个概率值表示样本属于正类的概率。

算法原理

自变量取值为任意实数,值域[0,1],将任意的输入映射到了[0,1]区间,我们在线性回归中可以得到一个预测值,再将该值映射到Sigmoid 函数中这样就完成了由值到概率的转换,也就是分类任务。

决策树

决策树算法是一种有监督学习算法,它通过构建树形结构的模型来进行决策。决策树的原理是基于特征选择和节点划分的思想。

特征选择是指从所有特征中选择一个最优的特征作为当前节点的划分标准。常用的特征选择方法有信息增益、信息增益比、基尼指数等。这些方法都是通过计算特征对于分类结果的重要性来选择最优特征。

节点划分是指根据选定的特征将数据集划分为不同的子集。每个子集对应一个分支,分支上的样本具有相同的特征值。节点划分的目标是使得每个子集中的样本尽可能属于同一类别,即增加纯度。

决策树的构建过程是递归的,从根节点开始,根据特征选择和节点划分的原则,逐步构建子树,直到满足终止条件。终止条件可以是达到预定的树深度、节点中的样本数小于某个阈值或者节点中的样本属于同一类别。

决策树算法概述

决策树算法是一种基于树形结构的分类学习方法。它通过对数据集进行递归地划分,构建一颗由多个判断节点组成的树。每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。

决策树算法的概述如下:
1. 选择最佳划分属性:根据某个评价指标(如信息增益、基尼指数等),选择最佳的属性作为当前节点的划分属性。
2. 划分数据集:根据划分属性的取值,将数据集划分为多个子集,每个子集对应一个分支。
3. 递归构建子树:对每个子集,重复步骤1和步骤2,递归地构建子树,直到满足终止条件(如节点中的样本属于同一类别,或者没有更多属性可供划分)。
4. 剪枝处理:为了避免过拟合,可以对构建好的决策树进行剪枝处理,即去掉一些不必要的节点和分支。
5. 预测分类结果:根据构建好的决策树,对新样本进行分类预测。

决策树算法的优点包括易于理解和解释、能够处理离散型和连续型属性、能够处理多分类问题等。然而,决策树算法也存在一些缺点,如容易过拟合、对噪声敏感等。

树的组成

  • 根节点:第一个选择点
  • 非叶子节点与分支:中间过程
  • 叶子节点:最终的决策结果

决策树的训练与测试

  • 训练阶段:从给定的训练集构造出来一棵树(从跟节点开始选择特征,如何进行特征切分)
  • 测试阶段:根据构造出来的树模型从上到下去走一遍就好了
  • 一旦构造好了决策树,那么分类或者预测任务就很简单了,只需要走一遍就可以了,那么难点就在于如何构造出来一颗树,这就没那么容易了,需 要考虑的问题还有很多的!

切分特征

  • 问题:根节点的选择该用哪个特征呢?接下来呢?如何切分呢?
  • 想象一下:我们的目标应该是根节点就像一个老大似的能更好的切分数据 (分类的效果更好,根节点下面的节点自然就是二当家了
  • 目标:通过一种衡量标准,来计算通过不同特征进行分支选择后的分类 情况,找出来最好的那个当成根节点,以此类推。
衡量标准--熵
  • 熵是表示随机变量不确定性的度量 (解释:说白了就是物体内部的混乱程度,比如杂货市场里面什么都有 那肯定混乱呀,专卖店里面只卖一个牌子的那就稳定多啦)
  • 熵用来衡量一组数据的平均信息量或平均不确定性。如果数据的可能取值越多,即数据的分布越均匀,那么熵就越大;相反,如果数据的可能取值越少,即数据的分布越集中,熵就越小。
  • 熵的计算公式可以表示为H(X) = -Σ(p(x) * log2(p(x))),其中X是随机变量,p(x)是X取值为x的概率。这个公式将每个可能取值的概率与其对应的信息量(以2为底的对数)相乘,并对所有可能取值进行求和。熵的单位通常以比特(bit)来衡量。

熵是衡量信息或数据的不确定性和随机性的量化指标。熵的大小与不确定性成正比,即越大的熵表示数据越随机、越不确定。而越小的熵则表示数据越有序、越确定。可以将熵看作数据中所包含的信息量,当熵最大时,数据中的每个元素都是等概率出现的,难以从中获得有用的信息;而当熵最小时,数据中的每个元素都具有确定性,从中获得的信息量很小。

在机器学习中,熵经常用于衡量分类问题中的不确定性。在决策树算法中,通过计算每个特征的熵来选择分裂节点,以达到最佳的分类效果。熵可以帮助我们理解数据的分布情况和模型的性能,同时也可以作为评估模型预测结果质量的指标之一。 

信息增益

信息增益是一种用于决策树算法中的指标,用于衡量特征对于分类任务的重要性。它衡量了在划分数据集之前和之后,分类的不确定性减少的程度。信息增益越大,表示使用该特征进行划分能够获得更多的信息,从而更好地分类数据。

计算信息增益的步骤如下:
1. 计算划分前的数据集的信息熵(Entropy)作为基准。
2. 对于每个特征,计算该特征划分后的加权平均信息熵。
3. 计算每个特征的信息增益,即划分前的信息熵减去划分后的加权平均信息熵。

决策树构造实例

数据:14天打球情况

特征:4种环境变化——outlook、temperature、humidity、windy;标签为 play

目标:构造决策树

 划分方式:4种

问题:谁当根节点呢?

依据:信息增益
在历史数据中看play标签(14天)有9天打球(yes),5天不打球(no),所以此时的初始熵值应为:

4个特征逐一分析,先从outlook特征开始

同理计算其余三个特征的增益

信息增益不适合解决特征较多的非常稀疏的特征例如数据中的ID列。

连续值问题解决

贪婪算法是一种基于贪婪策略的算法,它在每一步选择中都采取当前状态下最优的选择,而不考虑全局最优解。贪婪算法通常适用于求解最优化问题,其中问题的解可以通过一系列局部最优选择来构建。

贪婪算法的概述如下:
1. 初始化:选择一个初始解作为当前解。
2. 选择:从可行解集合中选择一个局部最优解作为当前解的下一步。
3. 更新:更新当前解为新的局部最优解。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值