专栏:前沿进展】本文介绍了 5 大常用机器学习模型类型:集合学习算法,解释型算法,聚类算法,降维算法,相似性算法并简要介绍了每种类型中最广泛使用的算法模型。我们希望本文可以做到以下三点:

1.应用性。涉及到应用问题时,知识的普适性显然非常重要。所以我们希望通过给出模型的一般类别,让你更好地了解这些模型应当如何应用。

2.相关性。本文并不包括所有的机器学习模型,比如Naïve Bayes(朴素贝叶斯)和SVM这种传统算法,在本文中将会被更好的算法所取代。

3.可消化性。对于数学基础较薄弱的读者而言,过多地解释算法会让这篇文章的可读性变差,更何况,你可以在网上找到无数教我们实现这些模型的资源。因此,为了避免本文变得无聊,我们将会把目光放在不同类型的模型的应用上。

来源:towardsdatascience

编译:牛梦琳

校对:李梦佳

01

集合学习算法

(随机森林XGBoost, LightGBM, CatBoost)

  • 什么是集合学习算法?

为了理解什么是集合学习算法,首先,你需要知道什么是集合学习。集合学习是一种同时使用多个模型,以达到比使用单一模型更好的性能的方法。

从概念上讲,可以参考下面这个比喻:

我们向一个班里的学生提出一个数学问题。他们有两种解答方式:合作解答和单人解答。生活经验告诉我们,如果全班同学一起合作,那么学生之间可以互相检查,协作解决问题,并最终给出一个唯一的答案。然而单人作答就没有这种检查的福利了——即使他/她的答案错了,也没有人能帮他/她检验。

这里的全班协作就类似于一个集合学习算法,即由几个较小的算法同时工作,并形成最终的答案。

  • 应用

集合学习算法主要应用于回归和分类问题或监督学习问题。由于其固有的性质,集合学习算法优于所有传统的机器学习算法,包括Naïve Bayes、SVM和决策树。

  • 算法

随机森林:随机森林由许多相互独立的决策树构成。

XGBoost:类似于梯度提升(GradientBoost)算法,但添加了剪枝,Newton Boosting,随机化参数等功能,因而比梯度提升更强大。

LightGBM:利用基于梯度的单边采样(GOSS)技术过滤数据的一种提升算法,目前实验已经证实比XGBoost更快,且有时更准确。

CatBoost:一种基于梯度下降的算法。

02

解释型算法

(线性回归、逻辑回归、SHAP、LIME)

  • 什么是解释型算法?

解释型算法使我们能够识别和理解结果有统计学意义的变量。因此,与其创建模型来预测响应变量的值,不如创建解释性模型来帮助我们理解模型中变量之间的关系。

而从回归的角度来看,人们往往强调统计学上显著的变量,这是因为对于从一个整体中提取出的样本数据,如果想对样本做出结论,首先必须确保变量拥有足够的显著性,并由此做出有把握的假设。

  • 应用

解释性模型通常用于需要作出解释的场景。比如展示 「为什么 」做出某个决定,或者解释两个或多个变量之间「如何」相互关联。

在实践中,你的机器学习模型的可解释性与机器学习模型本身的性能一样重要。如果你不能解释一个模型是如何工作的,那么这个模型就很难取信于人,自然也就不会被人们应用。

  • 算法

基于假设检验的传统解释模型:

线性回归:如果 2 个或者多个变量之间存在“线性关系”,就可以通过历史数据,建立变量之间的有效“模型”,来预测未来的变量结果。例如,y = B0 + B1 * x。

Logistic回归:逻辑回归主要解决二分类问题,用来表示某件事情发生的可能性。

  • 解释机器学习模型的算法:

SHAP:即来自博弈论的沙普利加和解释,实际是将输出值归因到每一个特征的shapely值上,依此来衡量特征对最终输出值的影响。

LIME:LIME算法是Marco Tulio Ribeiro2016年发表的论文《"Why Should I Trust You?" Explaining the Predictions of Any Classifier》中介绍的局部可解释性模型算法。该算法主要用于文本类与图像类的模型中。

03

聚类算法

(k-Means,分层聚类法)

  • 什么是聚类算法?

聚类算法是用来进行聚类分析的一项无监督学习任务,通常需要将数据分组到聚类中。与监督学习的已知目标变量不同,聚类分析中通常没有目标变量。

  • 应用

聚类算法可以用于发现数据的自然模式和趋势。聚类分析在EDA阶段非常常见,因为可以得到更多的数据信息。

同样,聚类算法能帮你识别一组数据中的不同部分。一个常见的聚类细分是对用户/客户的细分。

  • 算法

K-means聚类:K均值聚类算法是先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。

层次聚类:通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。

04

降维算法

(PCA, LDA)

  • 什么是降维算法?

降维算法是指减少数据集输入变量(或特征变量)数量的技术。本质上来说降维是用来解决“维度诅咒”的。(维度诅咒:随着维度(输入变量的数量)的增加,空间的体积呈指数级增长,最终导致数据稀疏。)

  • 应用

降维技术适用于很多情况,比如:当数据集中的特征很多而实际需要的输入变量很少时,或者当ML模型过度拟合数据时,都可以使用降维技术。

  • 算法

主成分分析(PCA):一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是在原有n维特征的基础上重新构造出来的,全新的正交特征。

线性判别分析(LDA):用于在有两个以上的类时进行线性分类。

05

相似性算法

(KNN、欧几里得距离、余弦、列文斯坦、Jaro-Winkler、SVD等...)

  • 什么是相似性算法?

相似性算法是指那些计算记录/节点/数据点/文本对的相似性的算法。所以相似性算法包含许多种类,例如有比较两个数据点之间距离的相似性算法,如欧氏距离;也有计算文本相似性的相似性算法,如列文斯坦算法。

  • 应用

相似性算法也可以用于各种场景,但在与“推荐”相关的应用上表现尤为出彩,比如用来决定:

l   根据你之前的阅读情况,Medium应该向你推荐哪些文章?

l   你可以用什么原料来替代蓝莓?

l   网易云应该根据你已经喜欢过的歌曲来推荐什么歌曲?

l   亚马逊应该根据你的订单历史推荐什么产品?

l   ……

  • 算法

K邻近:通过在整个训练集上搜索与该数据点最相似的 K 个实例(近邻)并且总结这 K 个实例的输出变量,从而得出预测结果。

欧几里德距离:一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。

余弦相似度:利用向量空间中两个向量夹角间的余弦值衡量两个个体之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。

列文施泰因算法:指两个字串之间,由一个转成另一个所需的最少编辑操作次数。

Jaro-Winkler算法:Jaro–Winkler distance 适合于较短的字符之间计算相似度。0分表示没有任何相似度,1分则代表完全匹配。

奇异值分解(SVD)(不完全属于相似性算法,但与相似性有间接关系):定义一个m×n的矩阵A的SVD为:A=UΣVT ,其中U是一个m×m的矩阵,Σ是一个m×n的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值,V是一个n×n的矩阵。U和V都是酉矩阵,即满足UTU=I,VTV=I。

以上就是对当前主流的机器学习算法的总结,希望本文能帮助你更好地了解各种ML模型以及它们的应用场景。当然,纸上得来终觉浅,如果本文使你有所收获,那就请开始你的应用之路吧,看看你能用ML解决什么问题!

参考链接:

https://towardsdatascience.com/all-machine-learning-algorithms-you-should-know-in-2022-db5b4ccdf32f

2022年你应该知道的机器学习算法相关推荐

  1. 佐治亚理工学院硕士建议:2022年你应该掌握这些机器学习算法

    来源:机器之心本文约1700字,建议阅读8分钟 2022年你应该知道的所有机器学习算法. 想要成为一名合格的 AI 工程师,并不是一件简单的事情,需要掌握各种机器学习算法.对于小白来说,入行 AI 还 ...

  2. 【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题

    岗位:高级机器学习算法工程师 笔试时间:2022-9-28 1 简答题 1.神经网络中防止过拟合的方法 (1)降低模型复杂度 (2)正则化 ,正则化正是通过在损失函数上添加额外的参数稀疏性惩罚项(正则 ...

  3. Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略

    Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代).六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类).安装.使用方法(实际问题中如何选择最合适的机器学 ...

  4. 图解最常用的10个机器学习算法

    作者:james_aka_yale 链接:https://medium.com/ 编辑:王萌(深度学习冲鸭公众号) 著作权归作者所有,本文仅作学术分享,若侵权,请联系后台删文处理 在机器学习领域,有种 ...

  5. 深度学习算法和机器学习算法_是否可以使机器学习算法无需编码

    深度学习算法和机器学习算法 I am a firm believer that the previous step to making your own Machine Learning Algori ...

  6. 杭州校招 | ​阿里钉钉算法技术团队招聘NLP/机器学习算法工程师

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 阿里巴巴 钉钉是阿里巴巴集团打造的全球头部企业级智能移动办公平台,致力于帮 ...

  7. 欺诈检测的机器学习算法及企业级欺诈检测方案!

    各行各业的欺诈者一直存在,尤其是金融服务行业欺诈性事件更是数不胜数.为了阻止欺诈事件的产生,反欺诈者也越来越多.随着人工智能在计算机领域的发展,使用机器学习进行欺诈检测已在许多行业中流行起来. 本文中 ...

  8. 8个常见机器学习算法的计算复杂度总结!

    Datawhale干货 来源:DeepHub IMBA,编辑:数据派THU 计算的复杂度是一个特定算法在运行时所消耗的计算资源(时间和空间)的度量. 计算复杂度又分为两类: 一.时间复杂度 时间复杂度 ...

  9. 《人工智能-机器学习》数据预处理和机器学习算法(以企鹅penguins数据集为例)

    文章目录 一.数据预处理 1 内容和目标: 2 加载和分析数据 2.1 导入基本库和加载数据 2.2 分析数据 3 数据清洗 3.1 重复值处理 3.2 数据脱敏-提取重要特征 3.3 缺失值处理 3 ...

最新文章

  1. 如何高效地遍历 MongoDB 超大集合?
  2. stl map高效遍历删除的方法
  3. 邀您参与 | 阿里巴巴如何扩展 K8s 调度器支持 AI 和大数据任务?
  4. java安全编码指南之:对象构建
  5. Codeup1085: 阶乘的和
  6. 计算机演示文稿教学实例课件,计算机图形学的教学演示文稿ppt课件.ppt
  7. STM32零碎问题记录
  8. Fiddler大解析!抱歉,抓包抓得好真的可以为所欲为
  9. 学会可视化大屏布局技巧,让领导都赞不绝口
  10. 怎样快速开发属于自己的微信小程序?
  11. XBee无线模块的通信方式和结合Arduino的具体实施过程
  12. 京交会将首设“一主多辅”场馆 展览面积较往届倍增
  13. 安卓pdf阅读器_推荐一款手机PDF阅读器、编辑器xodo docs安卓版
  14. pyppeteer 模拟登录淘宝H5,获取cookie
  15. 原生Android设置sim卡锁定,开启SIM卡密码保护
  16. ArcGIS 中的标准分类方法
  17. 美摄云服务方案:专为轻量化视频制作场景打造
  18. oracle with as用法
  19. 【Python3零基础入门笔记】05 Python时间处理——time库的使用
  20. 远程办公系统有哪些 给远程办公的几点建议

热门文章

  1. linux网卡钩子,linux-Netfilter钩子注册与网络子系统
  2. c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战
  3. 网站服务器可以用虚拟主机吗,做网站虚拟主机可以用服务器吗
  4. linux nfs 进程,【Linux】 nfs 故障处理
  5. oracle批量更新数据从另一表_常用SQL系列之(五):多表和禁止插入、批量与特殊更新等...
  6. python多线程的几种方法
  7. 手机 x PC 交叉感染?360 安全研究员演示“混血攻击”
  8. atitit. 文件上传带进度条 atiUP 设计 java c# php
  9. 【一通百通】Bash的单双括号建议:多用[[]], 少用[]
  10. 在启动activity之前,调用application的oncreate