十大常用机器学习算法总结(持续完善)
前言
之前二哥连载了各类常用的机器学习算法的原理与具体推倒过程,本文我们对常用的十大机器学习算法进行总结。
记得收藏+点赞+评论呦!
目录
前言
一、线性回归
二、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均值也有问题,这种情况下,离群点检测和删除有很大的帮助。
- 适用场景:没有明确标签的情况下,我们经常用聚类模型来进行操作。
十大常用机器学习算法总结(持续完善)相关推荐
- python常用代码入门-入门十大Python机器学习算法(附代码)
入门十大Python机器学习算法(附代码) 今天,给大家推荐最常用的10种机器学习算法,它们几乎可以用在所有的数据问题上: 1.线性回归 线性回归通常用于根据连续变量估计实际数值(房价.呼叫次数.总销 ...
- 图解十大经典机器学习算法入门
弱人工智能近几年取得了重大突破,悄然间,已经成为每个人生活中必不可少的一部分.以我们的智能手机为例,看看到底温藏着多少人工智能的神奇魔术. 下图是一部典型的智能手机上安装的一些常见应用程序,可能很多人 ...
- 想要挑战高薪,不懂算法怎么能行??10 大常用机器学习算法
点击上方"java大数据修炼之道",选择"设为星标" 优质文章和精品资源, 第一时间送达 来源:机器之心 作者:garvitanand2 参与:Geek ...
- 入门十大Python机器学习算法(附代码)
今天,给大家推荐最常用的10种机器学习算法,它们几乎可以用在所有的数据问题上: 1.线性回归 线性回归通常用于根据连续变量估计实际数值(房价.呼叫次数.总销售额等).我们通过拟合最佳直线来建立自变量和 ...
- 排序算法——(2)Python实现十大常用排序算法
上期为大家讲解了排序算法常见的几个概念: 相关性:排序时是否需要比较元素 稳定性:相同元素排序后是否可能打乱 时间空间复杂度:随着元素增加时间和空间随之变化的函数 如果有遗忘的同学可以看排序算法--( ...
- 【建议收藏】图解十大经典机器学习算法——带你入门机器学习
目录 机器学习 机器学习的步骤 01 线性回归 02 逻辑回归 03 线性判别分析 04 分类和回归树 05 朴素贝叶斯 06 K近邻 07 学习矢量量化 08 支持向量机 09 bagging和随 ...
- 排序算法—Python实现十大常用排序算法
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天将为大家介绍常用的十大排序算法中最简单的五种(冒泡.选择.插入 ...
- 【数据结构与算法】之深入解析十大常用排序算法的原理分析和算法实现
一.十大排序算法的对比 排序算法 平均时间复杂度 最好情况 最坏情况 空间复杂度 排序方式 稳定性 冒泡排序 O(n2) O(n) O(n2) O(1) In-place 稳定 选择排序 O(n2) ...
- 简述与机器学习相关的十大常用Python库,极简化算法编程
原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重. 前言 初学Python的时候,我一直不太理解Python的魅力到底在哪,相比Java,它除了换一种简洁的语法,好像没什么场景是不可替代的. ...
- 我所知道的十大常用算法之普里姆算法(最小生成树)
前言需求 今天我们学习的是普里姆算法,我们还是从一个场景里引入看看 有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通 1.各个村庄的距离用边线表示(权) ,比如 A ...
最新文章
- python如何保存列表_Python 基础知识全篇-列表(Lists)
- mysql数据库开启慢查询日志
- Java FAQ(slhynju 0.3版)
- CCNA实验之---单臂路由实现VLAN间路由
- 推荐系统中的Bias/Debias大全
- 工业机器人电路图讲解话术_6张经典电路图分析助你进阶高级电工,你都会了吗?...
- 仿VS窗体效果+outlookbar效果
- 微软想让你跟机器人说句话就把事办了
- JavaFX UI控件教程(二十五)之Color Picker
- 美团酒旅起源数据治理平台的建设与实践
- 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型
- selenium中的driver各类方法介绍
- WPS论文公式,对齐制表符
- 某微型计算机指令格式如图,计算机组成原理期末复习试题2套不含答案
- Drcom校园网自动登录
- (附源码)计算机毕业设计SSM疫情下小区网格化管理系统
- stm32f103VCT6全新机器 做stm32开发板 原理图以及主要器件规格书
- SAP MM 事务代码VL10B对于有多个Delivery Schedule的STO item的处理
- 图神经网络(三):节点分类
- C#,.net使用特性类,将json转为实体时验证字段
热门文章
- 如何导出久其报表所有数据_久其报表制作与分发统一服务平台解决方案
- 【金融科技前沿】【长文】金融监管、监管科技以及银行业监管报送概述
- 越狱苹果抹掉数据怎么恢复cydia红字黄字闪退(淘宝30块买的)
- 周立功CAN通讯(txt格式) 报文解析
- 听韩顺平聊PHP初学者如何变身大牛(一)?
- Reflector使用详解,把DLL文件转换为.cs文件
- javashop源码百度云,java电商系统源码分享,Javashop多用户商城源码
- java程序员中英文简历_2017java程序员英文简历范文
- 如何使用微软官方工具MediaCreationTool来制作Windows10启动盘
- 英语数字听力学习软件操作