科学网—[转载]最实用的机器学习算法优缺点分析,没有比这篇说得更好了!

回归树,又名决策树,通过将数据集重复分割成不同的分支来最大化每次分离的信息增益,从而让回归树很自然地学到非线性关系。

集成的方法,如随机森林(RF)或梯度提升树(GBM),则能结合许多独立训练树的预测。我们在这里不会详述其中的机制,但在实践中,随机森林一般都有很出色的表现,梯度提升树则较难调参,但往往能有更高的性能上限。

1.3深度学习

深度学习是指能够学习极端复杂模式的多层神经网络。它们在输入层和输出层之间使用隐藏层来对数据的中间表征建模,这一点是其他算法很难做到的。

深度学习还有几个重要的机制,如卷积、漏失等,这使该算法可以有效学习高维数据。然而,相对于其他算法,深度学习需要更多的数据来进行训练,因为该模型需要估算更大数量级的参数。

1.4荣誉奖:最近邻算法

最近邻算法是“基于实例的”,也就意味着它需要保留每一个训练观察值。最近邻算法通过搜寻最相似的训练样本来预测新样本的观察值。

它是内存密集型算法,处理高维数据时的效果并不理想,同时还需要高效的距离函数来计算相似度。在实践中,使用正则化的回归或树型集成方法通常是更好的选择。

▌2.分类

分类是一种用于分类变量建模及预测的监督学习算法,使用案例包括员工流失、邮件过滤、金融欺诈等的预测。

正如你所见,许多回归算法都有其对应的分类形式,分类算法往往适用于类别(或其可能性)的预测,而非数值。

逻辑回归

2.1(正则化)逻辑回归

逻辑回归是线性回归所对应的分类方法,基本概念由线性回归推导而出。逻辑回归通过逻辑函数将预测映射到0到1的区间,因此预测值可被视为某一类别的概率。

该模型依旧是线性的,只有当数据线性可分时(例如,数据可被某决策平面完全分离),这一算法才会有很好的表现。逻辑回归同样能惩罚模型系数以进行正则化。

2.2分类树(集成方法)

对应于回归树的分类算法是分类树。通常,它们都是指决策树,更为严谨的说法是“分类回归树(CART)”,也就是非常有名的CART算法。

2.3深度学习

深度学习同样很容易适应于分类问题。实际上,深度学习应用地更多的是分类任务,如图像分类等。

2.4支持向量机

支持向量机使用一个名为核函数的技巧,来将非线性问题变换为线性问题,其本质是计算两个观测数据的距离。支持向量机算法所寻找的是能够最大化样本间隔的决策边界,因此又被称为大间距分类器。

举例来说,使用线性核函数的支持向量机类似于逻辑回归,但更具稳健性。因而在实践中,支持向量机最大用处是用非线性核函数来对非线性决策边界进行建模。

2.5朴素贝叶斯

朴素贝叶斯是一种基于条件概率和计数的简单算法,其本质是一个概率表,通过训练数据来更新其中的概率。它预测新观察值的过程,就是根据样本的特征值在概率表中来寻找最为可能的类别。

被称为“朴素”原因,是其核心的特征条件独立性假设(例如,每一项输入特征都相互独立),在现实中几乎是不成立的。

▌3.聚类

聚类是基于数据内部结构来寻找样本自然族群(集群)的无监督学习任务,使用案例包括用户画像、电商物品聚类、社交网络分析等。

由于聚类属于无监督学习,也就不会输出“正确的答案”,评价结果时往往要用到数据可视化。如果你需要“正确的答案”,亦即训练集中存在预标注的集群,那么用分类算法会更加合适。

K均值

3.1K均值

K均值是基于样本点间的几何距离来度量聚类的通用目的算法。由于集群围绕在聚类中心,结果会接近于球状并具有相似的大小。

我们之所以推荐该算法给初学者,是因为它不仅足够简单,而且足够灵活,对于大多数问题都能给出合理的结果。

3.2仿射传播

仿射传播是一种相对较新的聚类算法,它基于两个样本点之间的图形距离来确定集群,其结果倾向于更小且大小不等的集群。

3.3分层/层次

分层聚类,又名层次聚类,其算法基于以下概念来实现:

1)每一个集群都从一个数据点开始;

2)每一个集群都可基于相同的标准进行合并;

3)重复这一过程,直至你仅剩下一个集群,这就获得了集群的层次结构。

3.4DBSCAN

DBSCAN是一种基于密度的聚类算法,它将样本点的密集区域组成集群;其最新进展是HDBSCAN,它允许集群的密度可变。

维度灾难

在机器学习领域,“维度(Dimensionality)”通常指数据集中的特征数量(即输入变量的个数)。

当特征的个数特别大的时候(相对于数据集中观测样本的数量来说),训练出一个有效的模型,对算法要求就会特别高(即,用现有的算法训练出一个有效的模型特别困难)。这就是所谓的“维度灾难(CurseofDimensionality)”,特别是对依赖于距离计算的聚类算法而言。

对于“维度灾难”,有位Quora用户给出了一个非常好的类比:

随着维度的增加,在空间中搜索的难度也会变得愈加困难。

这就需要数据降维的办法:特征选取和特征提取。

▌4.特征选取

需要注意的是,某些监督式机器学习算法已经具备了内在的特征选取机制:比如正则回归与随机森林。通常,我们是建议一开始优先尝试这些算法,如果它们能匹配上你的问题的话。对此我们已经做过介绍。

作为独立的任务,特征选取既可以是非监督式的(如方差阈值),又可以是监督式的(比遗传算法)。有必要的话,你还可以把多种方法以某种合理的方式整合在一起。

4.1方差阈值

方差阈值会摒弃掉观测样本那些观测值改变较小的特征(即,它们的方差小于某个设定的阈值)。这样的特征的价值极小。

举例来说,如果你有一份公共健康数据,其中96%的人都是35岁的男性,那么去掉“年龄”和“性别”的特征也不会损失重要信息。

由于方差阈值依赖于特征值的数量级,你应该对特征值先做归一化处理。

举例来说,如果你有一个房地产数据,其中两个特征分别是“房屋面积(单位:平方英尺)”和“房屋面积(单位:平方米)”,那么,你就可以去掉其中的任何一个(这非常安全,也不会给你的模型带来任何负面影响)。

4.3遗传算法

遗传算法是可用于不同任务的一大类算法的统称。它们受进化生物学与自然选择的启发,结合变异与交叉,在解空间内进行高效的遍历搜索。这里有一篇非常棒的简介:“遗传算法背后的原理引入”。

在机器学习领域,遗传算法主要有两大用处。

其一,用于最优化,比如去找神经网络的最佳权重。

其二,是用于监督式特征提取。这一用例中,“基因”表示单个特征,同时“有机体”表示候选特征集。“种群体”内的每一个有机体都会基于其适应性进行评分,正如在测试数据集上进行模型性能测试。最能适应环境的有机体将会生存下来,并不断繁衍,一直迭代,直至最终收敛于某个最优的解决方案。

4.4荣誉奖:逐步搜索

逐步搜索是一个基于序列式搜索的监督式特征选取算法。它有两种形式:前向搜索和反向搜索。

对于前向逐步搜索,你从没有任何特征开始。接着,从候选特征集中,选择一个特征来训练模型;然后,保存模型性能最好对应的那个特征;再往下,你不断往训练模型的特征集中添加特征,一次添加一个特征,直到你模型的性能不再提升。

反向逐步搜索的过程相同,只不过顺序相反:从把所有的特征都用于训练模型,接着一次性移除一个特征,直到模型的性能骤降。

我们提及这一算法纯粹是源于某些历史原因。尽管很多教科书都把逐步搜索算法作为一个有效的方法,但它所表现出来的性能总是不及其它监督式方法,比如正则化。逐步搜索有很多明显的缺陷,最致命的一点就是它是一个贪心算法,无法面对未来变化的冲击。我们并不推荐这个算法。

▌5.特征提取

特征提取是用来创造一个新的、较小的特征集,但仍能保留绝大部分有用的信息。值得再提的是,特征选取是用来保留原始特征集中的一部分子特征集,而特征提取则是创造全新的特征集。

作为独立的任务,特征提取可以是非监督式的(如主成分分析)或监督式的(如线性判别分析)。

5.1主成分分析

主成分分析是一个非监督式算法,它用来创造原始特征的线性组合。新创造出来的特征他们之间都是正交的,也就是没有关联性。具体来说,这些新特征是按它们本身变化程度的大小来进行排列的。第一个主成分代表了你的数据集中变化最为剧烈的特征,第二个主成分代表了变化程度排在第二位的特征,以此类推。

因此,你可以通过限制使用主成分的个数来达到数据降维的目的。例如,你可以仅采用能使累积可解释方差为90%的主成分数量。

你需要在使用主成分分析之前,对数据进行归一化处理。否则,原始数据中特征值数量级最大的那个特征将会主导你新创造出来的主成分特征。

5.2线性判别分析

线性判别分析不是隐含狄利克雷分布,它同样用来构造原始特征集的线性组合。但与主成分分析不同,线性判别分析不会最大化可解释方差,而是最大化类别间的分离程度。

因此,线性判别分析是一种监督式学习方式,它必须使用有标记的数据集。那么,线性判别分析与主成分分析,到底哪种方法更好呢?这要视具体的情况而定,“没有免费的午餐”原理在这里同样适用。

线性判别分析同样依赖于特征值的数量级,你同样需要先对特征值做归一化处理。

5.3自编码机

自编码机是一种人工神经网络,它是用来重新构建原始输入的。例如,图像自编码机是训练来重新表征原始数据的,而非用以区分图片里面的小猫、小狗。

但这有用吗?这里的关键,是在隐含层搭建比输入层和输出层更少数量的神经元。这样,隐含层就会不断学习如何用更少的特征来表征原始图像。

因为是用输入图像来作为目标输出,自编码机被视为无监督学习。它们可被直接使用(如:图像压缩)或按顺序堆叠使用(如:深度学习)。

THE END
1.机器学习线性回归代码题线性回归方程的代码2、sklearn算法实现: 然后我们这次就通过代码来实现线性回归: 一、简单线性回归: 一元一次方程,在机器学习中一元表示一个特征,b表示截距,y表示目标值。 1、正规方程实现: import numpy as np import matplotlib.pyplot as plt # 转化成矩阵,reshape https://blog.51cto.com/u_16213583/7615083
2.机器学习线性回归算法(Python代码版)线性回归资源机器学习领域线性回归模型数理推导及python代码实现 浏览:3473 提供了机器学习中线性回归模型的数理推导,同时基于Numpy模块的自编代码实现线性回归模型功能和基于sklearn模块实现的两个算法。该pdf中编程语言使用的是python,参考资料为鲁伟的《机器学习公式推导与代码实现》 https://download.csdn.net/download/xiaxianba/86953840
3.机器学习(一):线性回归原理推导及代码实现线性回归算法是机器学习的基础,蕴含着机器学习中的一些重要的基本思想,很多机器学习的算法都是从这些基础算法演变而来,如果函数曲线是一条直线,那被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归。线性回归可分为单变量线性回归和多变量线性回归,这里我们分开讲一下: https://www.jianshu.com/p/6c4a9c0738e3
4.python实现线性回归的示例代码python线性回归就是通过多次取点,找出符合函数的曲线,那么就可以完成一维线性回归,本文通过实例代码给大家介绍python实现线性回归的相关知识,感兴趣的朋友一起看看吧+ 目录 1线性回归 1.1简单线性回归 在简单线性回归中,通过调整a和b的参数值,来拟合从x到y的线性关系。下图为进行拟合所需要优化的目标,也即是MES(Mean https://www.jb51.net/article/238800.htm
5.通俗易懂线性回归算法讲解(算法+案例)腾讯云开发者社区通俗易懂--线性回归算法讲解(算法+案例) 1.线性回归(Linear Regression) GitHub地址(代码加数据) 1.1什么是线性回归 我们首先用弄清楚什么是线性,什么是非线性。 线性:两个变量之间的关系是一次函数关系的——图象是直线,叫做线性。注意:题目的线性是指广义的线性,也就是数据与数据之间的关系。https://cloud.tencent.com/developer/article/1476195
6.从头开始简单理解线性回归(附Python实现)从头开始简单理解线性回归(附Python 实现) 线性回归中的梯度下降法(Python实现) 理解局部加权线性回归 简单理解朴素贝叶斯分类器实现 本文讨论了线性回归的基础知识及其在 Python 编程语言中的实现。 线性回归是一种统计方法,用于对因变量与一组给定的自变量之间的关系进行建模。 注意:在本文中,为简单起见,我们将因变量https://zhuanlan.zhihu.com/p/590875721
7.谷歌大脑提出AutoML这个脚本在10个线性任务上运行进化搜索。每次实验后,它都会评估在100个新的线性任务中发现的最佳算法。一旦算法的适应度大于0.9999,就选择该算法作为最终结果,将代码打印在屏幕上。 在普通电脑上使用CPU在5分钟内就能发现类似于梯度下降进行线性回归的程序: https://m.thepaper.cn/wap/resource/v3/jsp/newsDetail_forward_6453837
8.Microsoft线性回归算法技术参考MicrosoftLearn控制决策树模型的功能选择的算法参数为 MAXIMUM_INPUT_ATTRIBUTES 和 MAXIMUM_OUTPUT。 自定义线性回归算法 Microsoft 线性回归算法支持影响结果挖掘模型的行为、性能和准确性的参数。 您还可以对挖掘模型列或挖掘结构列设置建模标志来控制数据的处理方式。 设置算法参数 https://msdn.microsoft.com/zh-cn/library/cc645871.aspx
9.神经网络改进2022年北京冬奥会数值天气预报后处理过程的算法研究结果表明, 该模型预报的 5 个常规气象要素的预报误差普遍优于一元线性回归、多元线性回归以及数值天气预报模式的原始输出值, 尤其对 3 天以内的天气预报具有明显优势。基于该模型发展的全自动实时后处理系统已于 2020 年 11 月 1 日开始每日自动化地输出预报结果, 并服务于2022 年北京冬奥会的气象保障工作。https://xbna.pku.edu.cn/fileup/0479-8023/HTML/2022-2-210.html
10.宣州区:GDP十年透视领航经济新航程——基于多重线性回归下的GDP按照选定数据和算法,导入SPSS软件进行运算处理,依次得到如下结果,并对结果进行说明分析。 输出结果1:线性回归分析结果表 1.输出结果1分析。 上表格展示了本次模型的分析结果,包括模型的标准化系数、t值、VIF值、R2、调整R2等,用于模型的检验,并分析模型的公式。 1.线性回归模型要求总体回归系数不为0,即变https://www.xuanzhou.gov.cn/Jczwgk/show/2997981.html