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

简介: 十大常用机器学习算法总结(持续完善)

前言

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

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

一、线性回归

29.png

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


优点:

     1.模型简单,容易实现

     2.许多非线性模型的基础

     3.机器学习的基石


缺点:

     1.对于非线性数据或者数据特征间具有相关性多项式回归难以建模

     2.难以很好地表达高度复杂的数据


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

二、K近邻算法(KNN)

image.jpeg

思路:对于待判断的点,找到离他最近的几个数据点,根据他们的类型决定待判断点的类型。


特点:完全跟着数据走,没有什么数学模型。


优点:

     1.理论成熟,思想简单;

     2.可用于非线性;

     3.准确度高;

     4.对异常值不敏感。


缺点:

     1.计算量大;

     2.样本不均衡的问题;

     3.需要大量的内存。


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

三、朴素贝叶斯(NB)

2.jpg

image.png

优点:

     1.朴素贝叶斯起源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率;

     2.对小规模的数据表现很好,能进行多分类;

     3.对缺失值不敏感,算法简单。


缺点:

     1.需要计算先验概率;

     2.对特征间强相关的模型分类效果不好。


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

四、逻辑回归(LR)

2.jpeg

image.png

优点:

     1.实现简单,广泛应用于工业上;

     2.分类时计算量非常小,速度很快,存储资源少;

     3.可观测样本的概率分数。


缺点:

     1.特征空间很大时,性能不是很好;

     2.容易前拟合,一般准确度不高;

     3.只能处理二分类线性可分问题。


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

五、支持向量机(SVM)

3.jpeg

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


优点:

     1.可以解决高维问题,即大型特征空间;

     2.能够处理非线性特征的相互作用;

     3.无需依赖整个数据。


缺点:

     1.当观测样本很多的时候,效率不是很高;

     2.对非线性问题没有通用的解决方案,很难找到一个合适的核函数;

     3.对缺失数据敏感。


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

六、决策树(DT)

30.png

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


优点:

     1.计算简单,易于理解,可解释行强;

     2.比较适合有缺失属性的样本;

     3.能够处理不相关的特征;

     4.在短时间内可以对大型数据做出好的结果。


缺点:

     1.容易发生过拟合;

     2.易被攻击;

     3.忽略了数据之间的相关性;

     4.各个类别样本数量不一致的数据,信息增益偏向具有更多数值的特征。


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

七、随机森林(RF)

image.jpeg

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


优点:

     1.可以解决分类和回归问题;

     2.抗过拟合能力强;

     3.稳定性强。


缺点:

     1.模型复杂;

     2.计算成本高;

     3.计算时间长。


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

八、GBDT

31.png

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


优点:

     1.预测精度高;

     2.适合低维数据;

     3.能处理非线性数据;

     4.可以灵活处理各种类型的数据,包括连续值和离散值;

     5.在相对少的调参时间情况下,预测的准备率也可以比较高。


缺点:

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

     2.如果数据维度较高时会加大算法的计算复杂度。


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

九、XGBoost

32.png

原理:通过计算伪残差,计算加和(同GBDT)。


对比GBDT的改进(优点继承):

    1.传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑回归(分类问题)或者线性回归(回归问题)。

    2.传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数(能自定义损失函数)。

    3.gboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。正则项降低了模型的复杂度,使学习出来的模型更加简单,防止过拟合,这也是xgboost优于传统GBDT的一个特性。


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

十、K-Means

4.jpeg

原理:物以类聚,人以群分


优点:

     1. 原理简单,容易实现  

     2. 内存占用小


缺点:

     1. K值需要预先给定,属于预先知识,很多情况下K值的估计是非常困难的,对于像计算全部微信用 户的交往圈这样的场景就完全的没办法用K-Means进行。

     2. K-Means算法对初始选取的聚类中心点是敏感的,不同的随机种子点得到的聚类结果完全不同(K-Means++)。

     3. K均值算法并不适合所有的数据类型。

     4. 对离群点的数据进行聚类时,K均值也有问题,这种情况下,离群点检测和删除有很大的帮助。


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




相关文章
|
16天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
53 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
2月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
2月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
63 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
2月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
2月前
|
机器学习/深度学习 算法 Python
探索机器学习中的决策树算法:从理论到实践
【10月更文挑战第5天】本文旨在通过浅显易懂的语言,带领读者了解并实现一个基础的决策树模型。我们将从决策树的基本概念出发,逐步深入其构建过程,包括特征选择、树的生成与剪枝等关键技术点,并以一个简单的例子演示如何用Python代码实现一个决策树分类器。文章不仅注重理论阐述,更侧重于实际操作,以期帮助初学者快速入门并在真实数据上应用这一算法。
|
26天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的决策树算法
【10月更文挑战第29天】本文将深入浅出地介绍决策树算法,一种在机器学习中广泛使用的分类和回归方法。我们将从基础概念出发,逐步深入到算法的实际应用,最后通过一个代码示例来直观展示如何利用决策树解决实际问题。无论你是机器学习的初学者还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和指导。
|
2月前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
2月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
2月前
|
机器学习/深度学习 算法 数据处理
EM算法对人脸数据降维(机器学习作业06)
本文介绍了使用EM算法对人脸数据进行降维的机器学习作业。首先通过加载ORL人脸数据库,然后分别应用SVD_PCA、MLE_PCA及EM_PCA三种方法实现数据降维,并输出降维后的数据形状。此作业展示了不同PCA变种在人脸数据处理中的应用效果。
35 0

热门文章

最新文章