Python社区  »  机器学习算法

精通机器学习必须掌握的20大算法

小白学视觉 • 2 周前 • 25 次点击  
点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达


机器学习是当今计算机科学中最令人兴奋和最受欢迎的领域之一。这不仅关乎技术,还关乎应用先进算法来解决现实世界的问题。本文将介绍人工智能 (AI) 和机器学习,使用该领域中使用的一些最常见的算法。


逻辑回归

逻辑回归是一种有监督的机器学习算法,用于分类和回归问题。它可用于预测事件发生的概率,例如患者是否会在给定时间段内发病。

逻辑回归使用逻辑函数来模拟自变量和因变量之间的关系。这意味着我们使用一组参数来确定每个自变量对因变量的影响程度。然后,根据这些值和其他输入数据(例如该患者患有哪种疾病),我们可以预测他/她在接受药物 X 治疗后不仅存活而且完全康复的可能性有多大。

逻辑回归算法是一种用于分类的判别分析。它可用于预测事件发生的概率,例如患者是否会在给定时间段内死亡。逻辑回归使用 logit 函数来模拟自变量和因变量之间的关系。这意味着我们使用一组参数来确定每个自变量对因变量的影响程度。然后,根据这些值和其他输入数据(例如该患者患有哪种疾病),我们可以预测他/她在接受药物 X 治疗后不仅存活而且完全康复的可能性有多大。


决策树和随机森林

决策树和随机森林算法是决策树的下一步。这两种算法都使用一系列决策来预测事件的结果,例如预测用户是否会根据他们对某物的兴趣购买某物。

决策树最适合可以拆分为小的子集(也称为集群)的大型数据集。当根据以前的经验预测结果涉及许多变量时,随机森林特别擅长进行高精度的预测。


梯度提升机

梯度提升机(GBM)是最流行的机器学习算法之一。它是一种有监督的机器学习算法,这意味着我们必须先在一些标记数据上对其进行训练,然后才能将其用于预测或分类问题。GBM 背后的想法是,当我们的问题涉及许多变量时,使用梯度提升作为提高模型性能的一种方式。

对于具有许多变量并且难以在数据中找到任何有用结构的问题,GBM 是一个很好的选择。它也非常擅长处理高度相关的变量,这对于更简单的模型来说可能是个问题。


K-均值

K-Means 是一种用于聚类数据的无监督学习算法。它是一种迭代算法,这意味着它从一组初始化的集群开始,然后通过移动到新的中心迭代地扩展这些集群,直到无法再移动。

K-Means 可以在不同的情况下使用,但它的主要用途之一是降维或降维算法 (DR)。在这种情况下,DR 算法根据每个组的成员与整个数据集之间的某种相似性度量将我们的数据集分成组。然后使用 K-means 确定哪些组最适合我们的原始数据集;这将使我们更容易在这些组中找到模式


奇异值分解 (SVD)

奇异值分解 (SVD) 是矩阵的特征值分解。它可用于计算矩阵的主成分,也可用于计算矩阵的奇异值分解 (SVD)。

了解 PCA 是处理数据的重要部分。它被用于无数的应用程序,从金融和统计到机器学习。在本文中,我们将讨论 PCA 是什么、它是如何工作的,以及它如何用于降维。


主成分分析 (PCA)

主成分分析 (PCA) 是一种降维技术,可以找到数据中最大方差的方向。它用于减少数据集中的特征数量,并通过查找投影方向来查找数据中的底层结构。

另一方面,全连接层由许多神经元组成,这些神经元从卷积层获取输出并将它们与权重组合。这些权重用于确定哪些特征对分类任务最重要。


卷积神经网络 (CNN)

卷积神经网络是一种人工神经网络,可用于图像识别、语音识别等。它们由卷积层和全连接层组成。卷积层由许多小型过滤器组成,这些过滤器在将输入层中的数据传递到另一层之前对其进行处理。每个过滤器的大小取决于我们想从机器学习模型中学习多少(例如,我们查看的是文本还是图像)。然后通过称为“池化”的加权求和操作将每个过滤器的输出与前一层的其他输出组合在一起。这有助于减少训练期间的噪音,以便我们稍后在尝试将图像分类为“猫”、“狗”等类别时可以看到更好的结果!


递归神经网络 (RNN)

循环神经网络 (RNN) 是一种可以记住先前事件的神经网络。RNN 用于自然语言处理、语音识别和机器翻译。它们也是一种深度学习模型:LSTM 网络是一种 RNN,它也可以记住以前的事件!

LSTM 的应用:自然语言处理、语音识别和机器翻译

这是一种更高级的算法,可用于计算矩阵的奇异值分解 (SVD)。该算法通过执行多次 QR 分解迭代,然后对结果矩阵进行特征值分解。LSTM 是最流行的 RNN 类型之一。它们用于许多应用程序,从 Google 翻译到 Siri 和 Alexa。LSTM 网络用于机器翻译等任务,因为它们可以学会记住之前发生的事情(并预测接下来发生的事情)。


长短期记忆网络 (LSTM)

LSTM 是一种循环神经网络 (RNN),可以从过去学习并预测未来。它们对于语音识别、机器翻译和文本分类等序列学习任务非常有用。LSTM 网络是一种可以从过去学习并预测未来的循环神经网络 (RNN)。它们对于语音识别、机器翻译和文本分类等序列学习任务非常有用。


马尔可夫链蒙特卡罗方法

马尔可夫链蒙特卡罗方法是一类用于近似随机系统中事件概率的算法。该名称来自这样一个事实,即这些方法通过模拟难以分析建模的复杂系统的行为来工作。

Markov Chain Monte Carlo (MCMC) 是一种基于样本数据和有关这些参数的先验知识计算后验分布的方法。它已广泛用于贝叶斯统计、机器学习和计算金融(例如,利率建模)。


期望最大化算法 (EM)

期望最大化 (EM) 是一种寻找一组参数的最大似然估计的概率方法。EM 用于分类和回归问题,可以看作是最小二乘回归的推广。换句话说,期望最大化 (EM) 模型使用迭代方法为每个参数找到最可能的值,以便准确地拟合数据点。

重要的是要注意 EM 不仅限于线性模型;它还成功地应用于神经网络等非线性问题和核函数和决策树等非参数方法。

随机梯度下降 (SGD) 和交替最小二乘 (ALS) 算法

随机梯度下降 (SGD) 和交替最小二乘法 (ALS) 是用于最小化损失函数、最大化似然函数和在迭代过程中找到局部最小值的简单但有效的算法。

这两种算法密切相关,因为它们都使用梯度下降来解决这些问题。在 SGD 中,我们最小化损失函数,而在 ALS 中,我们最大化似然函数。在这两种情况下,我们都使用梯度下降来做到这一点;但是,这两种方法之间也存在一些技术差异。


朴素贝叶斯分类器算法

朴素贝叶斯分类器是一种简单有效的分类算法。它基于贝叶斯定理,这是概率论中的一个定理。该算法依靠归纳推理而不是演绎推理来进行预测。

朴素贝叶斯分类器算法在从文本数据或图像等新实例学习之前使用关于类的先验信息(例如,项目属于 A 组还是 B 组)。

该算法用于分类,这是一项预测实例标签或类别的任务。分类问题有两种类型:1)二元分类和 2)多分类。在二元分类问题中,我们需要从两个类别中预测一个标签(例如,预测是否有人会购买我们的产品)。

在多分类问题中,我们需要从多个类中预测多个标签。例如,预测某人是否是客户(二元)或预测某人是否会购买我们的产品,以及他们是否有可能将其推荐给他们的朋友(多分类)。

朴素贝叶斯分类器算法是最流行和最简单的机器学习算法之一。它用于各种应用,例如垃圾邮件过滤、文档分类和文本挖掘等。


Q-Learning 强化学习算法

Q-learning 是一种强化学习算法。这是一种非策略学习方法,这意味着我们不是从一个模型开始然后尝试优化它,而是从一个初始策略(描述模型应该做什么的规则)开始,然后将其作为我们的起点随着时间的推移而改善。

Q 学习也称为时间差异学习,因为它使用观察之间的时间差异来更新其对动作值的估计。这可以被认为是在魔兽世界或 Pokemon Go 等游戏中使用经验值,在这些游戏中,玩家通过与怪物战斗或完成任务等事情来训练他们的角色后变得更强大。


k-最近邻算法(KNN)和协同过滤算法

K-Nearest Neighbors (KNN) 是一种用于分类和回归的算法。它使用 k 最近邻对新的数据点进行分类,然后形成监督学习的基础。KNN也称为基于频繁模式匹配或线性判别分析的分类方法。

该算法背后的前提是,我们的世界中可能有许多不同类型的对象,我们需要在决定其类别成员资格之前找出最适合我们训练集的对象。这包括根据两个对象在其所有个体特征(如颜色、形状等)中的相对距离来找出它们的相似度,然后使用一些数学公式(如它们之间的欧几里得距离)来计算它们的相似度。一旦从每个类中的各种样本/样本中收集到此信息(稍后将使用),就可以使用这些值以及一些其他参数(例如用于决定是否应将实例分配到其中的阈值)创建 LDA 模型。对应的类标签与否

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇




下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/147536
 
25 次点击  
分享到微博