机器学习常用的十大算法人工智能

2.适用于需要得到有分类概率额场景;

3.对小数据噪声的鲁棒性好,不会收轻微的多重共线性的影响

缺点:

1.容易欠拟合,分类精度可能不高;

2.数据有缺失和特征很大的时候表现不好。

2.支持向量机

对于两类线性可分学习任务,SVM找到一个间隔最大的超平面将两类样本分开,最大间隔能够保证该超平面具有最好的泛化能力。

1.可以解决小样本情况下的ML问题;

2.可以提高泛化性能

3.可以解决高维问题,避免维数灾难

4.可以解决非线性问题

参数C和g的选择对分类性能的影响:

C是惩罚系数,C越大,交叉validation高,容易过学习;

g是核函数的到达0的速率,g越小,函数下降快,交叉validation高,也容易造成过学习。

1.对缺失数据敏感;

1)解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。

2)仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。

3)有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。

4)样本量不是海量数据的时候,分类准确率高,泛化能力强。

SVM算法的主要缺点有:

1)如果特征维度远远大于样本数,则SVM表现一般。

2)SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。(不适用于大数据集)

3)非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。

4)SVM对缺失数据敏感。

2)在特征数非常多的情况下,或者样本数远小于特征数的时候,使用线性核,效果已经很好,并且只需要选择惩罚系数C即可。

3)在选择核函数时,如果线性拟合不好,一般推荐使用默认的高斯核'rbf'。这时我们主要需要对惩罚系数C和核函数参数γ进行艰苦的调参,通过多轮的交叉验证选择合适的惩罚系数C和核函数参数γ。

3.决策树

1.计算复杂度不高,易于理解和解释,可以理解决策树所表达的意义;

2.数据预处理阶段比较简单,且可以处理缺失数据;

3.能够同时处理数据型和分类型属性,且可对有许多属性的数据集构造决策树;

4.是一个白盒模型,给定一个观察模型,则根据所产生的决策树很容易推断出相应的逻辑表达式

6.可以对有许多属性的数据集构造决策树。

1.对于那些各类别样本数目不一致的数据,信息增益的结果偏向于那些具有更多数值的属性;

2.对噪声数据较为敏感;

3.容易出现过拟合问题;

5.处理缺失数据时的困难

决策树优点:

1)简单直观,生成的决策树很直观。

2)基本不需要预处理,不需要提前归一化,处理缺失值。

3)使用决策树预测的代价是O(log_2m)。m为样本数。

4)既可以处理离散值也可以处理连续值。很多算法只是专注于离散值或者连续值。

5)可以处理多维度输出的分类问题。

6)相比于神经网络之类的黑盒分类模型,决策树在逻辑上可以得到很好的解释

7)可以交叉验证的剪枝来选择模型,从而提高泛化能力。

8)对于异常点的容错能力好,健壮性高。

决策树算法的缺点:

1)决策树算法非常容易过拟合,导致泛化能力不强。可以通过设置节点最少样本数量和限制决策树深度来改进。

2)决策树会因为样本发生一点点的改动,就会导致树结构的剧烈改变。这个可以通过集成学习之类的方法解决。

3)寻找最优的决策树是一个NP难的问题,我们一般是通过启发式方法,容易陷入局部最优。可以通过集成学习之类的方法来改善。

4)有些比较复杂的关系,决策树很难学习,比如异或。这个就没有办法了,一般这种关系可以换神经网络分类方法来解决。

5)如果某些特征的样本比例过大,生成决策树容易偏向于这些特征。这个可以通过调节样本权重来改善。

4.KNN算法

一种惰性分类方法,从训练集中找出k个最接近测试对象的训练对象,再从这k个训练对象中找出居于主导的类别,将其赋给测试对象。

1.简单有效,容易理解和实现;

2.重新训练的代价较低(类别体系的变化和训练集的变化);

4.错误率渐进收敛于贝叶斯错误率,可作为贝叶斯的近似;

5.适合处理多模分类和多标签分类问题;

6.对于类域的交叉或重叠较多的待分类样本集较为适合;

1.是懒散学习方法,比一些积极学习的算法要慢;

2.计算量比较大,需对样本点进行剪辑;

3.对于样本不平衡的数据集效果不佳,可采用加权投票法改进;

4.k值的选择对分类效果有很大影响,较小的话对噪声敏感,需估计最佳k值。

5.可解释性不强,计算量大。

KNN的主要优点有:

1)理论成熟,思想简单,既可以用来做分类也可以用来做回归

2)可用于非线性分类

4)和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感

5)由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合

6)该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分

KNN的主要缺点有:

1)计算量大,尤其是特征数非常多的时候

2)样本不平衡的时候,对稀有类别的预测准确率低

3)KD树,球树之类的模型建立需要大量的内存

4)使用懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归之类的算法慢

5)相比决策树模型,KNN模型可解释性不强

5.朴素贝叶斯算法

贝叶斯分类器的分类原理是利用各个类别的先验概率,再利用贝叶斯公式及独立性假设计算出属性的类别概率以及对象的后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类别。

1.数学基础坚实,分类效率稳定,容易解释;

2.所需估计的参数很少,对缺失数据不太敏感;

3.无需复杂的迭代求解框架,适用于规模巨大的数据集。

2.需要知道先验概率,分类决策存在错误率。

朴素贝叶斯的主要优点有:

1)朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。

2)对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练。

3)对缺失数据不太敏感,算法也比较简单,常用于文本分类。

朴素贝叶斯的主要缺点有:

2)需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。

3)由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。

4)对输入数据的表达形式很敏感。

6.随机森林算法

1)训练可以高度并行化,对于大数据时代的大样本训练速度有优势。最主要的优点。

2)由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。

3)在训练后,可以给出各个特征对于输出的重要性

4)由于采用了随机采样,训练出的模型的方差小,泛化能力强。

6)对部分特征缺失不敏感。

RF的主要缺点有:

1)在某些噪音比较大的样本集上,RF模型容易陷入过拟合。

2)取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。

7.AdaBoost算法

提升方法是从弱学习算法出发,反复学习,得到一系列的弱分类器(即基本分类器),然后组合这些弱分类器,构成一个强分类器,大多数的提升方法都是改变训练数据集的概率分布(训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列的弱分类器。

1.分类精度高;

2.可以使用各种方法构建子分类器,Adaboost算法提供的是框架;

3.简单,且不用做特征筛选;

4.不会造成overfitting。

1.对分类错误的样本多次被分错而多次加权后,导致权重过大,影响分类器的选择,造成退化问题;(需改进权值更新方式)

2.数据不平衡问题导致分类精度的急剧下降;

3.算法训练耗时,拓展困难;

4.存在过拟合,鲁棒性不强等问题。

Adaboost的主要优点有:

1)Adaboost作为分类器时,分类精度很高

2)在Adaboost的框架下,可以使用各种回归分类模型来构建弱学习器,非常灵活。

3)作为简单的二元分类器时,构造简单,结果可理解。

4)不容易发生过拟合

Adaboost的主要缺点有:

1)对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。

8.GBDT

GBDT主要的优点有:

1)可以灵活处理各种类型的数据,包括连续值和离散值。

3)使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如Huber损失函数和Quantile损失函数。

GBDT的主要缺点有:

1)由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行。

9XGBoost算法

1.XGBoost与GBDT相比,其优势:

将树模型的复杂度加入到正则项中,来避免过拟合,因此泛化性能会优于GBDT。

损失函数用泰勒展开式展开,同时用到了一阶和二阶导数,可以加快优化速度。

GBDT只支持CART作为基学习器,XGBoost还支持线性分类器作为基学习器。

引进了特征子采样,像随机森林那样,既能避免过拟合,又能减少计算。

在寻找最优分割点时,考虑到传统的贪心算法效率较低,实现了一种近似贪心算法,用来加速和减少内存小号,除此之外,还考虑了稀疏数据集合缺失值的处理。

XGBoost支持并行处理。XGBoost的并行不是模型生成的并行,而是在特征上的并行,将特征排序后以block的形式存储在内存中,在后面迭代重复使用这个结构。这个block也使得并行化成为了可能,其次在节点分裂时,计算每个特征的增益,最终选择增益最大的那个特征去做分割,那么各个特征的增益计算就可以开多线程进行。

2.与lightGBM相比的不足点:

XGBoosting采用level-wise生成决策树,同时分裂同一层的叶子,从而进行多线程优化,不容易过拟合,但很多叶子节点的分裂增益较低,没必要进行跟进一步的分裂,这就带来了不必要的开销;LightGBM采用深度优化,leaf-wise生长策略,每次从当前叶子中选择增益最大的结点进行分裂,循环迭代,但会生长出更深的决策树,产生过拟合,因此引入了一个阈值进行限制,防止过拟合。

10.人工神经网络

1.分类的准确度高,并行分布处理能力强,分布存储及学习能力强;

2.对噪声神经有较强的鲁棒性和容错能力,能充分逼近复杂的非线性关系,具备联想记忆的功能等。

2.不能观察之间的学习过程,输出结果难以解释,会影响到结果的可信度和可接受程度;

THE END
1.最强总结,十大机器算法!!5.决策树算法 决策树,是一种特殊的树结构,由一个决策图和可能的结果(例如成本和风险)组成,用来辅助决策。机器学习中,决策树是一个预测模型,树中每个节点表示某个对象,而每个分叉路径则代表某个可能的属性值,而每个叶节点则对应从根节点到该叶节点所经历的路径所表示的对象https://mp.weixin.qq.com/s?__biz=MzI2OTE0ODY5Mw==&mid=2247525985&idx=1&sn=cf011faecac3617cd721a09791cd1da5&chksm=eb8e093e1bfc7026142b9dd8a53980d31da949fb7292dbc425fc5f054948dfd63e7892331949&scene=27
2.17个机器学习的常用算法!腾讯云开发者社区17 个机器学习的常用算法! 1. 监督式学习: 在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的https://cloud.tencent.com/developer/article/1874962
3.机器学习十大经典算法机器学习典型算法机器学习算法是计算机科学和人工智能领域的关键组成部分,它们用于从数据中学习模式并作出预测或做出决策。本文将为大家介绍十大经典机器学习算法,其中包括了线性回归、逻辑回归、支持向量机、朴素贝叶斯、决策树等算法,每种算法都在特定的领域发挥着巨大的价值。 https://blog.csdn.net/lsb2002/article/details/131966792
4.机器学习的常见算法有哪些?百度试题 结果1 题目机器学习的常见算法有哪些?相关知识点: 试题来源: 解析 答:机器学习的常见算法包括逻辑回归、支持向量机、神经网络、决策树、随机森林等。反馈 收藏 https://easylearn.baidu.com/edu-page/tiangong/questiondetail?id=1791333817575455449&fr=search
5.机器学习常见算法类型都有哪些算法是程序员在学习软件编程开发技术的时候需要重点掌握的一个编程开发技术知识,而今天我们就通过案例分析来了解一下,机器学习常见算法类型都有哪些。 1.分类算法 这是一种监督学习方法。有很多算法帮助我们解决分类问题,比如K近邻、决策树、朴素贝叶斯、贝叶斯网络、逻辑回归、SVM等算法。人工神经网络和深度学习也往往用https://www.douban.com/note/782408490/
6.数据分析中常用的机器学习算法有哪些?数据分析中常用的机器学习算法有哪些? 在数据分析领域,机器学习算法是一种重要的工具,可以帮助我们从数据中挖掘模式、进行预测和做出决策。下面将介绍几种常用的机器学习算法。 线性回归(Linear Regression):线性回归是一种用于建立变量之间线性关系的监督学习算法。它通过拟合一个线性方程来预测输出变量的值。线性回归https://www.cda.cn/view/204542.html
7.TensorFlow机器学习常用算法解析和入门上图为基于ICA的人脸识别模型。实际上这些机器学习算法并不是全都像想象中一样复杂,有些还和高中数学紧密相关。 后面讲给大家一一详细单独讲解这些常用算法。 强化学习 13)Q-Learning算法 Q-learning要解决的是这样的问题:一个能感知环境的自治agent,怎样通过学习选择能达到其目标的最优动作。 https://www.w3cschool.cn/tensorflow/tensorflow-s8uq24ti.html
8.5种常见的机器学习算法51CTO博客在本章中,我们将介绍5种常见的机器学习算法。它们不但本身非常有效,也常用于构建更复杂的算法。 1 线性回归 线性回归(linear regression)是一种流行的回归算法,从样本特征的线性组合(linear combination)中学习模型。 1.1 问题陈述 给定一个有标签的样本集 https://blog.51cto.com/u_13127751/5267787
9.机器学习主要的算法有哪些,分别适用什么应用嘲?机器学习主要的算法有哪些,分别适用什么应用场景? 决策树 逻辑回归(LR) 支持向量机(SVM)https://www.jianshu.com/p/d60990b643f4
10.科学网—[转载]联邦学习算法综述尽管联邦学习和分布式机器学习有部分相似的地方,但是在应用领域、系统设计、优化算法方面,联邦学习有自己的特征。在数据量庞大、所需计算资源较高时,分布式机器学习(如参数服务器)有明显的优势,它将独立同分布(independently identically distribution,IID)的数据或模型参数存储在各个分布式节点上,中心服务器调动数据和计算https://blog.sciencenet.cn/blog-3472670-1280769.html
11.《常用算法之智能计算(三)》:机器学习计算在给出机器学习计算各种算法之前,最好是先研究一下什么是机器学习和如何对机器学习进行分类,才能更好的理解和掌握一些具体的机器学习算法并将其用于实际问题的计算和处理。 学习是人类具有的一种重要智能行为,但究竟什么是学习,长期以来却众说纷纭。社会学家、逻辑学家和心理学家都各有自己不同的看法和说法。比如,http://www.kepu.net/blog/zhangjianzhong/201903/t20190327_475625.html