前言

之前二哥连载了各类常用的机器学习算法的原理与具体推倒过程,本文我们对常用的十大机器学习算法进行总结。

记得收藏+点赞+评论呦!

目录

前言

一、线性回归

二、K近邻算法(KNN)

三、朴素贝叶斯(NB)

四、逻辑回归(LR)

五、支持向量机(SVM)

六、决策树(DT)

七、随机森林(RF)

八、GBDT

九、XGBoost

十、K-Means


一、线性回归

  • 思路:线性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w和b。
  • 优点:

1.模型简单,容易实现
      2.许多非线性模型的基础
      3.机器学习的基石

  • 缺点:

1.对于非线性数据或者数据特征间具有相关性多项式回归难以建模
      2.难以很好地表达高度复杂的数据

  • 适用场景:线性回归作为最基础的模型,一般需要一个简单的回归模型的时候,通常使用线性回归,同时线性回归也是很多模型的基石。

二、K近邻算法(KNN)

  • 思路:对于待判断的点,找到离他最近的几个数据点,根据他们的类型决定待判断点的类型。
  • 特点:完全跟着数据走,没有什么数学模型。
  • 优点:

1.理论成熟,思想简单;
      2.可用于非线性;
      3.准确度高;
      4.对异常值不敏感。

  • 缺点:

1.计算量大;
      2.样本不均衡的问题;
      3.需要大量的内存。

  • 适用场景:需要一个好解释的模型的时候。

三、朴素贝叶斯(NB)

  • 条件概率:

  • 全概率:

  • 贝叶斯公式:

  • 优点:

1.朴素贝叶斯起源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率;
      2.对小规模的数据表现很好,能进行多分类;
      3.对缺失值不敏感,算法简单。

  • 缺点:

1.需要计算先验概率;
      2.对特征间强相关的模型分类效果不好。

  • 适用场景:容易解释,不同维度之间相关性小的模型,不计后果的前提下可以处理高维数据。

四、逻辑回归(LR)

  • 核心:

  • 优点:

1.实现简单,广泛应用于工业上;
      2.分类时计算量非常小,速度很快,存储资源少;
      3.可观测样本的概率分数。

  • 缺点:

1.特征空间很大时,性能不是很好;
      2.容易前拟合,一般准确度不高;
      3.只能处理二分类线性可分问题。

  • 适用场景:很多分类算法的基础组件;用于分析单一因素对某一事件发生的影响因素;用于预测事件发生的概率。

五、支持向量机(SVM)

  • 核心:找到不同类别之间的分类面,使得两类样本尽量落在面的两边,且离分类面尽量远。
  • 优点:

1.可以解决高维问题,即大型特征空间;
      2.能够处理非线性特征的相互作用;
      3.无需依赖整个数据。

  • 缺点:

1.当观测样本很多的时候,效率不是很高;
      2.对非线性问题没有通用的解决方案,很难找到一个合适的核函数;
      3.对缺失数据敏感。

  • 适用场景:在很多数据集上都有优秀的表现,拿到数据就可以尝试一下SVM(高维数据注意核函数的选择)。

六、决策树(DT)

  • 核心:信息增益;信息增益比;Gini系数。
  • 优点:

1.计算简单,易于理解,可解释行强;
      2.比较适合有缺失属性的样本;
      3.能够处理不相关的特征;
      4.在短时间内可以对大型数据做出好的结果。

  • 缺点:

1.容易发生过拟合;
      2.易被攻击;
      3.忽略了数据之间的相关性;
      4.各个类别样本数量不一致的数据,信息增益偏向具有更多数值的特征。

  • 适用场景:常作为一些算法的基石;它能够生成清晰的基于特征(feature)选择不同预测结果的树状结构,数据分析师希望更好的理解手上的数据的时候往往可以使用决策树。

七、随机森林(RF)

  • 核心:两个随机(随机选取训练样本,随机选取特征),由决策树形成。
  • 优点:

1.可以解决分类和回归问题;
      2.抗过拟合能力强;
      3.稳定性强。

  • 缺点:

1.模型复杂;
      2.计算成本高;
      3.计算时间长。

  • 适用场景:数据维度相对低(几十维),同时对准确性有较高的要求;使用随机森林时,不需要调节很多的参数就可以达到很好的效果,所以不知道用什么方法时可以尝试一下。

八、GBDT

  • 原理:计算树的伪残差,通过前一棵树的残差拟合下一棵树,最终进行残差的加和。
  • 优点:

1.预测精度高;
      2.适合低维数据;
      3.能处理非线性数据;
      4.可以灵活处理各种类型的数据,包括连续值和离散值;
      5.在相对少的调参时间情况下,预测的准备率也可以比较高。

  • 缺点:

1.由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行;
      2.如果数据维度较高时会加大算法的计算复杂度。

  • 适用场景:不知道用什么模型时候可以使用的回归/分类模型

九、XGBoost

  • 原理:通过计算伪残差,计算加和(同GBDT)。
  • 对比GBDT的改进(优点继承):

1.传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑回归(分类问题)或者线性回归(回归问题)。
     2.传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数(能自定义损失函数)。
     3.gboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。正则项降低了模型的复杂度,使学习出来的模型更加简单,防止过拟合,这也是xgboost优于传统GBDT的一个特性。

  • 适用场景:各种比赛的大杀器,不知道用什么模型时候可以使用的回归/分类模型

十、K-Means

  • 原理:物以类聚,人以群分
  • 优点:

1. 原理简单,容易实现 
      2. 内存占用小

  • 缺点:

1. K值需要预先给定,属于预先知识,很多情况下K值的估计是非常困难的,对于像计算全部微信用 户的交往圈这样的场景就完全的没办法用K-Means进行。
      2. K-Means算法对初始选取的聚类中心点是敏感的,不同的随机种子点得到的聚类结果完全不同(K-Means++)。
      3. K均值算法并不适合所有的数据类型。
      4. 对离群点的数据进行聚类时,K均值也有问题,这种情况下,离群点检测和删除有很大的帮助。

  • 适用场景:没有明确标签的情况下,我们经常用聚类模型来进行操作。

十大常用机器学习算法总结(持续完善)相关推荐

  1. python常用代码入门-入门十大Python机器学习算法(附代码)

    入门十大Python机器学习算法(附代码) 今天,给大家推荐最常用的10种机器学习算法,它们几乎可以用在所有的数据问题上: 1.线性回归 线性回归通常用于根据连续变量估计实际数值(房价.呼叫次数.总销 ...

  2. 图解十大经典机器学习算法入门

    弱人工智能近几年取得了重大突破,悄然间,已经成为每个人生活中必不可少的一部分.以我们的智能手机为例,看看到底温藏着多少人工智能的神奇魔术. 下图是一部典型的智能手机上安装的一些常见应用程序,可能很多人 ...

  3. 想要挑战高薪,不懂算法怎么能行??10 大常用机器学习算法

    点击上方"java大数据修炼之道",选择"设为星标" 优质文章和精品资源, 第一时间送达 来源:机器之心     作者:garvitanand2 参与:Geek ...

  4. 入门十大Python机器学习算法(附代码)

    今天,给大家推荐最常用的10种机器学习算法,它们几乎可以用在所有的数据问题上: 1.线性回归 线性回归通常用于根据连续变量估计实际数值(房价.呼叫次数.总销售额等).我们通过拟合最佳直线来建立自变量和 ...

  5. 排序算法——(2)Python实现十大常用排序算法

    上期为大家讲解了排序算法常见的几个概念: 相关性:排序时是否需要比较元素 稳定性:相同元素排序后是否可能打乱 时间空间复杂度:随着元素增加时间和空间随之变化的函数 如果有遗忘的同学可以看排序算法--( ...

  6. 【建议收藏】图解十大经典机器学习算法——带你入门机器学习

    目录 机器学习 机器学习的步骤 01  线性回归 02 逻辑回归 03 线性判别分析 04 分类和回归树 05 朴素贝叶斯 06 K近邻 07 学习矢量量化 08 支持向量机 09 bagging和随 ...

  7. 排序算法—Python实现十大常用排序算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天将为大家介绍常用的十大排序算法中最简单的五种(冒泡.选择.插入 ...

  8. 【数据结构与算法】之深入解析十大常用排序算法的原理分析和算法实现

    一.十大排序算法的对比 排序算法 平均时间复杂度 最好情况 最坏情况 空间复杂度 排序方式 稳定性 冒泡排序 O(n2) O(n) O(n2) O(1) In-place 稳定 选择排序 O(n2) ...

  9. 简述与机器学习相关的十大常用Python库,极简化算法编程

    原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重. 前言 初学Python的时候,我一直不太理解Python的魅力到底在哪,相比Java,它除了换一种简洁的语法,好像没什么场景是不可替代的. ...

  10. 我所知道的十大常用算法之普里姆算法(最小生成树)

    前言需求 今天我们学习的是普里姆算法,我们还是从一个场景里引入看看 有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通 1.各个村庄的距离用边线表示(权) ,比如 A ...

最新文章

  1. python如何保存列表_Python 基础知识全篇-列表(Lists)
  2. mysql数据库开启慢查询日志
  3. Java FAQ(slhynju 0.3版)
  4. CCNA实验之---单臂路由实现VLAN间路由
  5. 推荐系统中的Bias/Debias大全
  6. 工业机器人电路图讲解话术_6张经典电路图分析助你进阶高级电工,你都会了吗?...
  7. 仿VS窗体效果+outlookbar效果
  8. 微软想让你跟机器人说句话就把事办了
  9. JavaFX UI控件教程(二十五)之Color Picker
  10. 美团酒旅起源数据治理平台的建设与实践
  11. 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型
  12. selenium中的driver各类方法介绍
  13. WPS论文公式,对齐制表符
  14. 某微型计算机指令格式如图,计算机组成原理期末复习试题2套不含答案
  15. Drcom校园网自动登录
  16. (附源码)计算机毕业设计SSM疫情下小区网格化管理系统
  17. stm32f103VCT6全新机器 做stm32开发板 原理图以及主要器件规格书
  18. SAP MM 事务代码VL10B对于有多个Delivery Schedule的STO item的处理
  19. 图神经网络(三):节点分类
  20. C#,.net使用特性类,将json转为实体时验证字段

热门文章

  1. 如何导出久其报表所有数据_久其报表制作与分发统一服务平台解决方案
  2. 【金融科技前沿】【长文】金融监管、监管科技以及银行业监管报送概述
  3. 越狱苹果抹掉数据怎么恢复cydia红字黄字闪退(淘宝30块买的)
  4. 周立功CAN通讯(txt格式) 报文解析
  5. 听韩顺平聊PHP初学者如何变身大牛(一)?
  6. Reflector使用详解,把DLL文件转换为.cs文件
  7. javashop源码百度云,java电商系统源码分享,Javashop多用户商城源码
  8. java程序员中英文简历_2017java程序员英文简历范文
  9. 如何使用微软官方工具MediaCreationTool来制作Windows10启动盘
  10. 英语数字听力学习软件操作