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

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

集成的方法,如随机森林(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.机器学习(二)分类算法详解机器学习(二)--- 分类算法详解 感觉狼厂有些把机器学习和数据挖掘神话了,机器学习、数据挖掘的能力其实是有边界的。机器学习、数据挖掘永远是给大公司的业务锦上添花的东西,它可以帮助公司赚更多的钱。可是相比JAVA和C++语言开发来说,机器学习/数据挖掘确实是新一些老人占的坑少一些,而且可以经常接触一些新的东西https://blog.csdn.net/china1000/article/details/48597469
2.全网最全的算法模型总结,一直被模仿,从未被超越…聚类因变量全网最全的算法模型总结,一直被模仿,从未被超越… 分类模型 1、距离聚类(系统聚类)(常用,需掌握) 优点 ①将一批样本数据按照他们在性质上的亲密程度在没有先验知识的情况下自动进行分类 ②是一种探索性的分析方法,分类结果不一定相同 例如:主要用于样本数据的初步处理https://www.163.com/dy/article/ISTM3JDF05530N05.html
3.数据分析十大算法Apriori 挖掘关联规则(associate rules)算法,他通过挖掘频繁项集(frequent item sets)来揭示物品之间的关联关系,他被广泛运用到商业挖掘和网络安全等领域。 K-Means 聚类算法,将所有物体划分成K类。假设每个类里面都有”中心点“,即意见领袖,他时这个类的核心。这时如果有一个新的物品要进行分类,这时就只要计算这个https://zhuanlan.zhihu.com/p/582346020
4.分类的算法算法有哪些分类2. 常见的分类算法有哪些 决策树 贝叶斯 人工神经网络 k-近邻 支持向量机 基于关联规则的分类 集成学习 3. 算法有哪些分类 算法分类编辑算法可大致分为: 基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形https://www.ultimate-communications.com/zh/system_35987
5.python二分类算法有哪些Python二分类算法有以下几种:KNN、决策树、朴素贝叶斯、逻辑回归、支持向量机和随机森林 。这些算法各有优缺点,您可以根据您的数据集和问题选择最适合您的算法。 Python二分类算法简介 二分类算法是指将数据分为两个类别的机器学习算法,在实际应用中,我们经常需要对一些事物进行分类,例如垃圾邮件与非垃圾邮件、电影的好https://www.kdun.com/ask/151292.html
6.算法有哪些分类算法有哪些分类平凡可贵 精选回答 算法的分类分为七类,分别是: 1、基本算法 : 包括枚举和搜索两种,分为深度优先搜索,广度优先搜索,启发式搜索和遗传算法; 2、数据结构的算法数论; 3、代数算法; 4、计算几何的算法,求凸包; 5、图论算法:包括哈夫曼编码,树的遍历,最短路径算法,最小生成树算法,最小树形图,https://edu.iask.sina.com.cn/jy/2CMz2sOG9pf.html
7.二分类深度学习分类器二分类算法有哪些二分类深度学习分类器 二分类算法有哪些 1、逻辑回归 原理分析 核心思想:将线性模型的输出映射到0-1之间,通过阈值判断,进行二分类 模型: 损失函数: 最大似然 2、K-近邻算法(KNN) 原理分析 核心思想:已知训练集中的数据集以及类别,当遇到一个新样本进来之后,计算该样本与训练集中各个样本之间的距离,选择距离最近https://blog.51cto.com/u_16099165/8995242
8.数据挖掘算法中常见的分类有哪些?在数据挖掘领域中,有许多常见的分类算法被广泛应用于数据分析、模式发现和预测等任务。以下是一些常见的数据挖掘分类算法: 决策树(Decision Trees):决策树是一种基于树状结构的分类算法,可以通过对输入数据进行一系列的划分来建立一个预测模型。决策树易于理解和解释,并且能够处理具有离散和连续特征的数据。 https://www.cda.cn/view/203659.html
9.数据挖掘的算法有哪些种类帆软数字化转型知识库数据挖掘的算法有哪些种类 数据挖掘的算法有很多种类,主要包括分类算法、聚类算法、关联规则挖掘、回归分析、降维算法、序列模式挖掘、时间序列分析、异常检测算法、神经网络、支持向量机、决策树、贝叶斯分类器等。分类算法是数据挖掘中最常用的一类算法,通过学习已有数据来预测新数据的类别。决策树是一种常见的分类算法,https://www.fanruan.com/blog/article/596640/
10.常用的图像处理算法有哪些基于机器视觉的缺陷检测方法9、表面缺陷目标识别算法: 传统方法:贝叶斯分类、K最近邻(KNN)、人工神经网络(ANN)、支持向量机(SVM)、K-means等; 10、图像分类(识别) 图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。 https://m.elecfans.com/article/2201351.html
11.BAT机器学习面试1000题系列(二)176.常见的分类算法有哪些? SVM、神经网络、随机森林、逻辑回归、KNN、贝叶斯 177.常见的监督学习算法有哪些? 感知机、SVM、人工神经网络、决策树、逻辑回归 178.在其他条件不变的前提下,以下哪种做法容易引起机器学习中的过拟合问题(D) A. 增加训练集量 https://www.jianshu.com/p/4a7f7127eef1
12.《人民政协报》:(张欣)不想被算法“绑架”?今年3月1日施行的新规算法的分级分类管理也是中国算法治理的一个亮点 在此之前,网信办等九部门印发过《关于加强互联网信息服务算法综合治理的指导意见》的通知,提出要对算法进行分级分类管理。同样的算法模型应用在不同的场景,对用户的影响是不同的,所以,不能采用“一刀切”式的治理方式。比如,给爱购物的女性推送的商品广告,推荐得精准与https://law.uibe.edu.cn/mtmf/9726609ad0244a75b6d78cbf424b8904.htm
13.数据分析中的数据挖掘需要哪些算法数据分析中的数据挖掘需要以下算法:一、分类算法;二、聚类算法;三、关联规则算法;四、分类与回归树算法;五、Adaboost算法;六、期望最大化算法;七、最近邻算法;八、神经网络算法。在数据分析中,数据挖掘算法可以帮助发现数据中隐藏的模式、关系、趋势和异常。 https://www.linkflowtech.com/news/1594
14.用于监督分类的算法有。用于监督分类的算法有。 用于监督分类的算法有()。 A.支持向量机 B.决策树 C.神经网络 D.线性回归 正确答案:ABC ①扫描下方二维码关注湖北事业单位考试资讯微信公众号。 ②点击菜单栏“免费资料”,即可0元领取教资事业单位等备考试题资料。https://m.hb.huatu.com/changshi/1615339.html
15.什么是分类算法?常见的分类算法有哪些?有用 思路解析 本题详解 答:分类算法是将数据分为不同类别的算法。常见的分类算法包括决策树、朴素贝叶斯、支持向量机和神经网络等。决策树通过构建树状结构来进行分类;朴素贝叶斯基于贝叶斯定理进行分类;支持向量机通过寻找最优超平面进行分类;神经网络模拟人脑神经元的工作原理进行分类。 开学特惠 开通会员专享超值优惠https://easylearn.baidu.com/edu-page/tiangong/questiondetail?id=1784970436576154525&fr=search
16.深度学习算法有几大类深度学习算法主要有三大类: 1. 卷积神经网络(简称CNN); 2. 递归神经网络(简称RNN); 3. 生成对抗网络(简称GAN)。下面我们来详细介绍这三大类算法。 以下回答由智能化研发管理工具 PingCode整理: 一、CNN CNN主要应用可分为图像分类(image classification)、目标检测(object detection)及语义分割(semantic segmentationhttps://worktile.com/blog/know-668/amp/
17.中国信息安全测评中心石竑松:密码模块安全测评的思路和方法密码算法的理论安全性可以从两个角度进行划分,如图1。第一种方法依据算法安全的可证明情况进行分类,共有两种:(1)启发性安全(Heuristic Security),此时密码算法的安全是基于目前所知的最有效的攻击算法的复杂性来定义的(如DES、AES、SM3等对称加密算法、常用的Hash算法以及基于这些算法构造的密码方案和协议)。(2)可https://www.sxgmj.gov.cn/f/view-13-8aec6b36b67b47418e4497cc01a4f6d9.html
18.各种聚类算法的介绍和比较「建议收藏」腾讯云开发者社区2、聚类和分类的区别 聚类技术通常又被称为无监督学习,因为与监督学习不同,在聚类中那些表示数据类别的分类或者分组信息是没有的。 Clustering (聚类),简单地说就是把相似的东西分到一组,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起。因此,一个聚类算法通常只需要知道如何计https://cloud.tencent.com/developer/article/2062937
19.机器学习中常用的几种分类算法,如何选择合适的算法?今天和大家分享一下机器学习中常见的六种分类算法:K近邻、决策树、朴素贝叶斯、逻辑回归、支持向量机、随机森林、AdaBoost、GBDT、XGBoost。 下面,介绍了各个算法的概念及特点。 KNN 决策树 朴素贝叶斯 逻辑回归 支持向量机 随机森林 AdaBoost GBDT XGBoost https://wap.wokahui.com/article/industry/2697.html