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

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.算法怎么入门?线性对数时间O(n \log n):常见于高效的排序算法,如归并排序、快速排序。平方时间O(n^2):嵌套循环https://www.zhihu.com/question/308239149/answer/50877832255
2.算法笔记(三)算法学习技巧从开始学习算法已经有两三个多月的时间了,从简单到深入层次展开,层层优化,对算法的理解也在逐渐加深,不在那么片面,虽然现在还是片面一些,对它的了解也仅仅知道冰山一角,还有很多的内容需要我们去学习去挖掘。 思路 在学习前我们要尽可能快速阅读一遍要学习的书籍,这样不仅仅让我们知道了有哪些内容需要学习,同时也在https://www.code456.com/article/3598351.html
3.如何有效学习算法?算法学习基础知识学习: 数学基础:掌握离散数学、概率论、统计学等基础知识 编程基础:熟练掌握至少一种编程语言,如Python、C++、Java等 数据结构与算法基础: 数据结构:学习数组、链表、栈、队列、树、图等数据结构 基础算法:掌握排序算法(如快速排序、归并排序)、搜索算法(如二分查找)、递归与迭代、哈希等 https://blog.csdn.net/qq_49548132/article/details/140109291
4.快速学习一个算法,VisionTransformer快速学习一个算法,Vision Transformer 为了保留图像块的位置信息,ViT 在嵌入向量中加入位置编码,这是 Transformer 架构中的一个关键组成部分。 Vision Transformer(ViT)是一种基于自注意力机制的神经网络架构,主要用于处理图像数据。 它是由谷歌研究人员在 2020 年提出的,标志着「将自然语言处理(NLP)中广泛使用的 https://www.51cto.com/article/790949.html
5.算法入门:从零开始学习算法的简单教程本文介绍了算法入门的基础知识,包括算法的基本概念、重要性及其应用领域。文章详细解释了如何描述和分析算法,并列举了常见的算法类型及其应用场景,适合希望从零开始学习算法的读者。 算法入门:从零开始学习算法的简单教程 算法基础概念介绍 什么是算法 算法是一组定义明确的指令,用于解决特定问题或完成特定任务。算法可https://www.imooc.com/article/357937
6.神经网络有哪些快速增量学习算法?神经网络的快速增量学习算法是一种可以在不需要重新训练整个网络的情况下对其进行修改和更新的技术。这些算法对于处理实时数据和动态环境非常有用,并且可以大大降低计算成本和时间。以下是几种流行的神经网络快速增量学习算法: 增量学习(Incremental Learning):增量学习是指通过不断添加新的训练样本来扩充神经网络的能力。它https://www.cda.cn/bigdata/201736.html
7.什么是数据结构?什么是算法?怎么学习数据结构与算法?学习算法,我们不需要死记硬背那些冗长复杂的背景知识、底层原理、指令语法……需要做的是领悟算法思想、理解算法对内存空间和性能的影响,以及开动脑筋去寻求解决问题的最佳方案。相比编程领域的其他技术,算法更纯粹,更接近数学,也更具有趣味性。 本文将回顾数据结构与算法的基础知识,学习日常所接触场景中的一些算法和策https://maimai.cn/article/detail?fid=1744039689&efid=u2sSJyH6RePBrCh7o1dCfA
8.小样本学习介绍腾讯云开发者社区在元训练期间,MAML学习初始化参数,这些参数允许模型快速有效地适应新的少样本任务,其中这个任务有着新的、未知的类别。 MAML目前在流行的少样本图像分类基准测试中的效果不如度量学习算法。由于训练分为两个层次,模型的训练难度很大,因此超参数搜索更为复杂。此外,元的反向传播意味着需要计算梯度的梯度,因此你必须使用https://cloud.tencent.com/developer/article/1499499
9.吴师兄学算法五分钟学算法吴师兄学算法(www.cxyxiaowu.com)提供许多数据结构与算法学习的基础知识, 涵盖 LeetCode 题解、剑指 Offer 题解、数据结构等内容。https://www.cxyxiaowu.com/
10.趣学算法(陈小玉著)带目录完整pdf[95MB]电子书下载1.5 算法学习瓶颈 21 1.6 你怕什么 22 第2章 贪心算法 24 2.1 人之初,性本贪 25 2.1.1 贪心本质 25 2.1.2 贪亦有道 26 2.1.3 贪心算法秘籍 26 2.2 加勒比海盗船—最优装载问题 27 2.2.1 问题分析 27 2.2.2 算法设计 28 2.2.3 完美图解 28 https://www.jb51.net/books/635507.html
11.支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习《代码随想录》LeetCode 刷题攻略:200道经典题目刷题顺序,共60w字的详细图解,视频难点剖析,50余张思维导图,支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习不再迷茫! 来看看,你会发现相见恨晚!https://gitee.com/yuandreams/leetcode-master
12.java快速学习排序快排算法一、快速排序是(挖坑法)是挖坑填数 + 分治来实现。 1.快速排序的基本思想: 2.快速排序的图示: 3.快速排序的算法https://www.jianshu.com/p/e4369c66d4a5
13.科学网—[转载]基于深度强化学习的六足机器人运动规划传统的 A*、广度优先搜索等算法能够在状态空间维度较低的情况下为机器人快速规划出可行运动轨迹,但在维度较高的状态动作空间中往往会面临维数灾难问题,因此使用此类算法需要将机器人的状态空间以及动作空间进行充分的离散精简,在降低优化指标的前提下得到次优策略。近年来,随着深度强化学习的发展,越来越多的研究人员开始https://blog.sciencenet.cn/blog-951291-1288193.html
14.《常用算法之智能计算(三)》:机器学习计算因为机器学习计算中涉及了大量的统计学理论,机器学习与统计推断的联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习计算关注可以实现的、行之有效的学习算法,很多推论问题具有无程序可循的难度,所以部分的机器学习研究是开发简单、处理容易的近似算法。http://www.kepu.net/blog/zhangjianzhong/201903/t20190327_475625.html
15.北京邮电大学主页平台管理系统yuheHome3. 基于触觉感知的手势识别机器学习算法研究 招生方向:信息与通信工程 新一代电子信息技术 本实验室欢迎有读研、读博和出国意向的本科生加盟开展科研工作。 实验室地址:北邮出版社(本部校区)明光楼800室 代表性成果: 【1】He Yu, Cong Wang, Fan-Yi Meng, Jun-Ge Liang, Haider Syed Kashan, Kishor Kumar Adhttps://teacher.bupt.edu.cn/yuhe/en/index.htm
16.初学机器学习?推荐从这十大算法入手机器学习算法的研究已经得到了广泛的关注。发表在《哈佛商业评论》上的文章称“数据科学家”是“二十一世纪最性感的职业“。所以,对于那些刚刚踏入机器学习领域的人们,我们决定重写我们非常受欢迎的“金牌”博文《每个工程师都需要知道的十个机器学习算法》。简而言之,这篇文章是面向初学者的。 https://36kr.com/p/1721961660417
17.超详细算法岗的学习路线大总结!机器学习 or 深度学习基础 论文or 项目介绍 其他问题 & 向面试官提问 本文将从以上四点进行展开。 一、数据结构&算法题 随着算法岗越来越卷,Coding几乎成了面试必考的一项,而且在面评中的权重也越来越高,根据个人面试经验,如果这一环节没有很顺利得完成的话,几乎必挂,尤其对于非科班转行的同学,需要特别重视。 https://leetcode.cn/circle/discuss/SX3aa6/
18.深度学习高手笔记卷1:基础算法本书通过扎实、详细的内容和清晰的结构,从算法理论、算法源码、实验结果等方面对深度学习算法进行分析和介绍。本书共三篇,第一篇主要介绍深度学习在计算机视觉方向的一些卷积神经网络,从基础骨干网络、轻量级 CNN、模型架构搜索 3 个方向展开,介绍计算机视觉方向的里程碑算法;第二篇主要介绍深度学习在自然语言处理方向的https://www.epubit.com/bookDetails?id=UB7d8623610d375