2023年你应该知道的所有机器学习算法

我爱Python数据挖掘 我爱Python数据挖掘     2023-02-28     357

关键词:

在过去的几年里,根据自己的工作经验,整理了我认为最重要的机器学习算法。

通过这个,我希望提供一个工具和技术的存储库,以便您可以解决各种数据科学问题!

让我们深入研究六种最重要的机器学习算法:

  1. 解释性算法
  2. 模式挖掘算法
  3. 集成学习算法
  4. 聚类算法
  5. 时间序列算法
  6. 相似度算法

1.解释算法

机器学习中最大的问题之一是了解各种模型如何得出最终预测。我们常常知道“是什么”,但很难解释“为什么”。

解释性算法帮助我们识别对我们感兴趣的结果有有意义影响的变量。这些算法使我们能够理解模型中变量之间的关系,而不是仅仅使用模型来预测结果。

您可以使用多种算法更好地理解给定模型的自变量和因变量之间的关系。

算法

  • 线性/逻辑回归:一种对因变量与一个或多个自变量之间的线性关系建模的统计方法——可用于根据 t 检验和系数了解变量之间的关系。
  • 决策树:一种机器学习算法,它创建决策及其可能后果的树状模型。通过查看拆分分支的规则,它们对于理解变量之间的关系很有用。
  • 主成分分析 (PCA):一种降维技术,可将数据投射到低维空间,同时保留尽可能多的方差。PCA 可用于简化数据或确定特征重要性。
  • Local Interpretable Model-Agnostic Explanations (LIME):一种算法,通过使用线性回归或决策树等技术构建更简单的模型,在预测周围近似模型来解释任何机器学习模型的预测。
  • Shapley Additive explanations (SHAPLEY):一种算法,通过使用基于“边际贡献”概念的方法计算每个特征对预测的贡献来解释任何机器学习模型的预测。在某些情况下,它可能比 SHAP 更准确。
  • Shapley Approximation (SHAP):一种通过估计每个特征在预测中的重要性来解释任何机器学习模型的预测的方法。SHAP 使用一种称为“联合博弈”的方法来近似 Shapley 值,并且通常比 SHAPLEY 更快。

2.模式挖掘算法

模式挖掘算法是一种数据挖掘技术,用于识别数据集中的模式和关系。这些算法可用于多种目的,例如识别零售环境中的客户购买模式、了解网站/应用程序的常见用户行为序列,或在科学研究中寻找不同变量之间的关系。

模式挖掘算法通常通过分析大型数据集并寻找重复模式或变量之间的关联来工作。一旦确定了这些模式,就可以使用它们来预测未来趋势或结果,或者了解数据中的潜在关系。

算法

  • Apriori 算法:一种用于在事务数据库中查找频繁项集的算法 - 它高效且广泛用于关联规则挖掘任务。
  • 递归神经网络 (RNN):一种神经网络,旨在处理顺序数据,因为它们能够捕获数据中的时间依赖性。
  • 长短期记忆 (LSTM):一种循环神经网络,旨在更长时间地记住信息。LSTM 能够捕获数据中的长期依赖关系,通常用于语言翻译和语言生成等任务。
  • 使用等价类 (SPADE) 的顺序模式发现:一种通过将在某种意义上等价的项目组合在一起来查找顺序数据中频繁模式的方法。这种方法能够处理大型数据集并且相对高效,但可能不适用于稀疏数据。
  • PrefixSpan:一种通过构建前缀树和修剪不频繁项目来查找顺序数据中频繁模式的算法。PrefixScan 能够处理大型数据集并且相对高效,但可能不适用于稀疏数据。

3.集成学习

集成算法是一种机器学习技术,它结合了多个模型的预测,以便做出比任何单个模型都更准确的预测。集成算法优于传统机器学习算法的原因有以下几个:

  1. 多样性:通过组合多个模型的预测,集成算法可以捕获数据中更广泛的模式。
  2. 鲁棒性:集成算法通常对数据中的噪声和异常值不太敏感,这可以导致更稳定和可靠的预测。
  3. 减少过度拟合:通过对多个模型的预测进行平均,集成算法可以减少单个模型过度拟合训练数据的趋势,从而提高对新数据的泛化能力。
  4. 提高准确性:集成算法已被证明在各种情况下始终优于传统的机器学习算法。

算法

  • 随机森林:一种机器学习算法,它创建决策树的集合并根据树的多数票进行预测。
  • XGBoost:一种梯度提升算法,它使用决策树作为其基础模型,被认为是最强的 ML 预测算法之一。
  • LightGBM:另一种梯度提升算法,旨在比其他提升算法更快、更高效。
  • CatBoost:一种梯度提升算法,专门设计用于很好地处理分类变量。

4.聚类

聚类算法是一种无监督学习任务,用于将数据分组为“集群”。与目标变量已知的监督学习相反,聚类中没有目标变量。

这种技术对于发现数据的自然模式和趋势很有用,并且经常在探索性数据分析阶段使用,以进一步了解数据。此外,聚类可用于根据各种变量将数据集划分为不同的部分。这方面的一个常见应用是对客户或用户进行细分。

算法

  • K模式聚类:一种专门为分类数据设计的聚类算法。它能够很好地处理高维分类数据并且实现起来相对简单。
  • DBSCAN:一种基于密度的聚类算法,能够识别任意形状的聚类。它对噪声相对稳健,可以识别数据中的异常值。
  • 谱聚类:一种聚类算法,它使用相似矩阵的特征向量将数据点分组到聚类中。它能够处理非线性可分数据并且相对高效。

5.时间序列算法

时间序列算法是用于分析时间相关数据的技术。这些算法考虑了一系列数据点之间的时间依赖性,这在尝试预测未来值时尤为重要。

时间序列算法用于各种业务应用程序,例如预测产品需求、预测销售或分析客户随时间变化的行为。它们还可用于检测数据中的异常或趋势变化。

算法

  • Prophet 时间序列建模:Facebook 开发的一种时间序列预测算法,旨在直观且易于使用。它的一些主要优势包括处理缺失数据和趋势变化、对异常值具有鲁棒性以及快速适应。
  • 自回归积分移动平均 (ARIMA):一种用于预测时间序列数据的统计方法,它对数据与其滞后值之间的相关性进行建模。ARIMA 可以处理范围广泛的时间序列数据,但可能比其他一些方法更难实现。
  • 指数平滑:一种预测时间序列数据的方法,它使用过去数据的加权平均值来进行预测。指数平滑实现起来相对简单,可用于范围广泛的数据,但性能可能不如更复杂的方法。

6.相似度算法

相似度算法用于衡量成对的记录、节点、数据点或文本之间的相似度。这些算法可以基于两个数据点之间的距离(例如欧氏距离)或基于文本的相似性(例如 Levenshtein 算法)。

这些算法具有广泛的应用,但在推荐方面特别有用。它们可用于识别相似的项目或向用户推荐相关内容。

算法

  • 欧氏距离:欧氏空间中两点之间直线距离的度量。欧氏距离计算简单,广泛应用于机器学习,但在数据分布不均匀的情况下可能不是最佳选择。
  • 余弦相似度:基于两个向量之间的角度来衡量两个向量之间的相似度。
  • Levenshtein 算法:一种用于测量两个字符串之间距离的算法,基于将一个字符串转换为另一个字符串所需的最小单字符编辑(插入、删除或替换)次数。Levenshtein 算法通常用于拼写检查和字符串匹配任务。
  • Jaro-Winkler 算法:一种基于匹配字符数和换位数来衡量两个字符串之间相似性的算法。它类似于 Levenshtein 算法,通常用于记录链接和实体解析任务。
  • 奇异值分解 (SVD):一种矩阵分解方法,可将一个矩阵分解为三个矩阵的乘积——它是最先进的推荐系统不可或缺的组成部分。

值得收藏!2023年,你应该知道的所有机器学习算法~

【CSDN编者按】经过数十年的演进,人工智能走出了从推理,到知识,再到学习的发展路径。尤其近十年由深度学习开启神经网络的黄金新时代,机器学习成为解决人工智能面临诸多难题的重要途径。然而,这... 查看详情

值得收藏!2023年,你应该知道的所有机器学习算法~(代码片段)

【CSDN编者按】经过数十年的演进,人工智能走出了从推理,到知识,再到学习的发展路径。尤其近十年由深度学习开启神经网络的黄金新时代,机器学习成为解决人工智能面临诸多难题的重要途径。然而,这... 查看详情

值得收藏!2023年,你应该知道的所有机器学习算法~

【CSDN编者按】经过数十年的演进,人工智能走出了从推理,到知识,再到学习的发展路径。尤其近十年由深度学习开启神经网络的黄金新时代,机器学习成为解决人工智能面临诸多难题的重要途径。然而,这... 查看详情

值得收藏!2023年,你应该知道的所有机器学习算法~(代码片段)

【CSDN编者按】经过数十年的演进,人工智能走出了从推理,到知识,再到学习的发展路径。尤其近十年由深度学习开启神经网络的黄金新时代,机器学习成为解决人工智能面临诸多难题的重要途径。然而,这... 查看详情

2022年你应该知道的十大python库

导读:给大家介绍一下,数据分析中最常用的10个Python库。作者:TerenceShin编译:Mika来源:CDA数据分析师(ID:cdacdacda)学习数据分析绝非易事,有无数种工具和资源可供使用。因此,有时会... 查看详情

数据挖掘2022年2023届秋招宏瓴科技公司机器学习算法工程师笔试题

...也没有信心,题目中说要用公式去表示,我都不知道如何去写。2题目请在题目下方作答。1.什么是贝叶斯误差?什么是贝叶斯最优分类器?&# 查看详情

数据挖掘2022年2023届秋招知能科技公司机器学习算法工程师笔试题(代码片段)

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

数据挖掘2022年2023届秋招奇虎360机器学习算法工程师笔试题(代码片段)

公司:奇虎360岗位:机器学习算法工程师笔试时间:2022年10月9号1选择题1、E(X2)E(X^2)E(X2)的计算PX=1=2/3,PX=0=1/6,PX=-1=1/6解析:E(X2)=12∗2/3+02∗1/6+(−1)2∗1/6=2/3+1/6& 查看详情

机器学习实战之k-means算法

...选成功,那么我们的k-means算法还真用不上。但是,我们应该知道2004年的总统大选中 查看详情

探索五大机器学习技术及其应用(代码片段)

...法,我将介绍以下内容:基本原理。示例代码。应该什么时候使用。优点和缺点。文章目录一、线性回归1.1基本原理1.2示例代码1.3应该什么时候使用1.4优缺点二、逻辑回归2.1基本原理2.2示例代码2.3应该什么时候使用2.4优... 查看详情

在应用我的机器学习算法之前,我是不是必须进行特征选择?

...器学习算法是否负责在我的数据中选择最佳特征?或者我应该在我的机器学习算法之前进行特征选择和缩放。我知道 查看详情

李宏毅2023春季机器学习课程

...直链其他优质课程2021&2022课程CSDNGithub重磅须知为方便所有网课资料与优质电子书籍的实时更新维护,创建一个在线实时网盘文件夹; 网盘获取方式:公众号【啥都会一点的研究生】->回复【05】->阅读原文... 查看详情

机器学习一般线性回归(代码片段)

...型,这里总结一下"线性回归"模型。 0.概述线性回归应该是我们听过次数最多的机器学习算法了。在一般的统计学教科书中,最后都会提到这种方法。因此该算法也算是架起了数理统计与机器学习之间的桥梁。线性回归虽然... 查看详情

机器挖掘之经典算法

...很多因素在起作用,例如数据集的大小和结构。因此,你应该针对具体问题尝试多种不同算法,并留出一个数据「测试集」来评估性能、选出优胜者。当然,你尝试的算法必须适合你的问题,也就是选择正确的机器学习任务。打... 查看详情

机器学习算法:决策树算法简介以及分类原理(代码片段)

学习目标知道什么是决策树知道如何求解信息熵知道信息增益的求解过程知道信息增益率的求解过程知道基尼系数的求解过程知道信息增益、信息增益率和基尼系数三者之间的区别、联系决策树思想的来源非常朴素,程序设... 查看详情

机器学习算法应用和学习_1fp-growth算法

...为什么会学习FP-growth算法?起因是在工作中有两个场景想知道哪些组合比较频繁,分析频繁出现的原因,并以此分类给用户贴上标签或根据频繁组合场景发现是否有必要增改场景。以往一般是直接SQL跑出不同组合的频次分布,但... 查看详情

机器学习(05)——主要概念理解(代码片段)

...标签)。比如说,我们自己的相片集,里面每个人我们都知道是谁并可以标识出来,给机器学习时,我们将每个单人照和对应的名字提交给机器学习模型,机器学习模型完成学习以后,我们继续提交新的相片(单人或多人的),... 查看详情

3.2机器学习基本算法

...法,即算法。3.2.1  机器学习的算法流程首先需要知道的是,对于机器学习来说,一个机器学习的过程是一个完整的项目周期,其中包括数据的采集、数据的特征 查看详情