㈠ 机器学习的方法之回归算法
我们都知道,机器学习是一个十分实用的技术,而这一实用的技术中涉及到了很多的算法。所以说,我们要了解机器学习的话就要对这些算法掌握通透。在这篇文章中我们就给大家详细介绍一下机器学习中的回归算法,希望这篇文章能够帮助到大家。
一般来说,回归算法是机器学习中第一个要学习的算法。具体的原因,第一就是回归算法比较简单,可以让人直接从统计学过渡到机器学习中。第二就是回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习其他的算法。而回归算法有两个重要的子类:即线性回归和逻辑回归。
那么什么是线性回归呢?其实线性回归就是我们常见的直线函数。如何拟合出一条直线最佳匹配我所有的数据?这就需要最小二乘法来求解。那么最小二乘法的思想是什么呢?假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。
那么什么是逻辑回归呢?逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类。而逻辑回归算法划出的分类线基本都是线性的(也有划出非线性分类线的逻辑回归,不过那样的模型在处理数据量较大的时候效率会很低),这意味着当两类之间的界线不是线性时,逻辑回归的表达能力就不足。下面的两个算法是机器学习界最强大且重要的算法,都可以拟合出非线性的分类线。这就是有关逻辑回归的相关事项。
在这篇文章中我们简单给大家介绍了机器学习中的回归算法的相关知识,通过这篇文章我们不难发现回归算法是一个比较简答的算法,回归算法是线性回归和逻辑回归组成的算法,而线性回归和逻辑回归都有自己实现功能的用处。这一点是需要大家理解的并掌握的,最后祝愿大家能够早日学会回归算法。
㈡ 机器学习第五篇:详解决策树-CART算法
01|前言:CART算法,全称"Classification And Regression Trees",是决策树生成的一种算法,既适用于分类问题也适用于回归问题。它的构建过程包括特征选择、树生成和剪枝。CART算法的核心在于通过构建决策树来实现数据分类或预测。
02|CART的生成:
决策树的生成是一个递归构建二叉决策树的过程。对于回归树,使用平方差最小化准则;对于分类树,则使用基尼指数最小化准则进行特征选择。
回归树针对连续型目标变量,通过寻找能使预测误差最小化的分界点来分割训练集,逐步构建决策树。
分类树利用基尼指数选择最优特征进行二值切分,基尼指数定义了样本集合的不确定性,数值越大表示不确定性越高。
03|CART剪枝:
剪枝是为了防止过拟合,通过减少决策树的复杂度来优化模型。剪枝的关键在于减少树的复杂度,比如子树的叶节点数量或降低训练误差。
在剪枝过程中,通过计算剪枝前后损失函数的变化来决定是否剪枝。具体步骤包括从决策树根节点开始,对每个内部节点计算损失函数变化量,选择损失函数减少幅度最大的节点进行剪枝。
通过不断剪枝并测试不同剪枝阈值下的决策树性能,选择使得验证数据集上性能最优(如平方误差或基尼指数最小)的决策树作为最终模型。
㈢ 干货 | 基础机器学习算法
本篇内容主要是面向机器学习初学者,介绍常见的机器学习算法,当然,欢迎同行交流。
哲学要回答的基本问题是从哪里来、我是谁、到哪里去,寻找答案的过程或许可以借鉴机器学习的套路:组织数据->挖掘知识->预测未来。组织数据即为设计特征,生成满足特定格式要求的样本,挖掘知识即建模,而预测未来就是对模型的应用。
特征设计依赖于对业务场景的理解,可分为连续特征、离散特征和组合高阶特征。本篇重点是机器学习算法的介绍,可以分为监督学习和无监督学习两大类。
无监督学习算法很多,最近几年业界比较关注主题模型,LSA->PLSA->LDA 为主题模型三个发展阶段的典型算法,它们主要是建模假设条件上存在差异。LSA假设文档只有一个主题,PLSA 假设各个主题的概率分布不变(theta 都是固定的),LDA 假设每个文档和词的主题概率是可变的。
LDA 算法本质可以借助上帝掷骰子帮助理解,详细内容可参加 Rickjin 写的《 LDA 数据八卦》文章,浅显易懂,顺便也科普了很多数学知识,非常推荐。
监督学习可分为分类和回归,感知器是最简单的线性分类器,现在实际应用比较少,但它是神经网络、深度学习的基本单元。
线性函数拟合数据并基于阈值分类时,很容易受噪声样本的干扰,影响分类的准确性。逻辑回归(Logistic Regression)利用 sigmoid 函数将模型输出约束在 0 到 1 之间,能够有效弱化噪声数据的负面影响,被广泛应用于互联网广告点击率预估。
逻辑回归模型参数可以通过最大似然求解,首先定义目标函数 L ( theta ),然后 log 处理将目标函数的乘法逻辑转化为求和逻辑(最大化似然概率 -> 最小化损失函数),最后采用梯度下降求解。
相比于线性分类去,决策树等非线性分类器具有更强的分类能力,ID3 和 C4.5 是典型的决策树算法,建模流程基本相似,两者主要在增益函数(目标函数)的定义不同。
线性回归和线性分类在表达形式上是类似的,本质区别是分类的目标函数是离散值,而回归的目标函数是连续值。目标函数的不同导致回归通常基于最小二乘定义目标函数,当然,在观测误差满足高斯分布的假设情况下,最小二乘和最大似然可以等价。
当梯度下降求解模型参数时,可以采用 Batch 模式或者 Stochastic 模式,通常而言,Batch 模式准确性更高,Stochastic 模式复杂度更低。
上文已经提到,感知器虽然是最简单的线性分类器,但是可以视为深度学习的基本单元,模型参数可以由自动编码( Auto Encoder )等方法求解。
深度学习的优势之一可以理解为特征抽象,从底层特征学习获得高阶特征,描述更为复杂的信息结构。例如,从像素层特征学习抽象出描述纹理结构的边缘轮廓特征,更进一步学习获得表征物体局部的更高阶特征。
俗话说三个臭皮匠赛过诸葛亮,无论是线性分类还是深度学习,都是单个模型算法单打独斗,有没有一种集百家之长的方法,将模型处理数据的精度更进一步提升呢?当然,Model Ensembe l就是解决这个问题。Bagging 为方法之一,对于给定数据处理任务,采用不同模型/参数/特征训练多组模型参数,最后采用投票或者加权平均的方式输出最终结果。
Boosting为Model Ensemble 的另外一种方法,其思想为模型每次迭代时通过调整错误样本的损失权重提升对数据样本整体的处理精度,典型算法包括 AdaBoost 、GBDT 等。
不同的数据任务场景,可以选择不同的 Model Ensemble 方法,对于深度学习,可以对隐层节点采用 DropOut 的方法实现类似的效果。
介绍了这么多机器学习基础算法,说一说评价模型优劣的基本准则。欠拟合和过拟合是经常出现的两种情况,简单的判定方法是比较训练误差和测试误差的关系,当欠拟合时,可以设计更多特征来提升模型训练精度,当过拟合时,可以优化特征量降低模型复杂度来提升模型测试精度。
特征量是模型复杂度的直观反映,模型训练之前设定输入的特征量是一种方法,另外一种比较常用的方法是在模型训练过程中,将特征参数的正则约束项引入目标函数/损失函数,基于训练过程筛选优质特征。
模型调优是一个细致活,最终还是需要能够对实际场景给出可靠的预测结果,解决实际问题。期待学以致用! 作者 晓惑 本文转自阿里技术,转载需授权