首页 > 编程语言 >常见的机器学习算法,包含监督学习、无监督学习、半监督学习和强化学习

常见的机器学习算法,包含监督学习、无监督学习、半监督学习和强化学习

时间:2024-12-24 16:32:10浏览次数:7  
标签:例如 模型 分类 算法 学习 监督 数据

一、监督学习算法(约70个)

  1. 线性回归(Linear Regression)
    • 简单线性回归:用于建立一个自变量和一个因变量之间的线性关系,例如根据房屋面积预测房价,其模型表达式为\(y = \beta_0+\beta_1x+\epsilon\),其中\(y\)是因变量(房价),\(x\)是自变量(房屋面积),\(\beta_0\)和\(\beta_1\)是模型参数,\(\epsilon\)是误差项。
    • 多元线性回归:涉及多个自变量来预测因变量,如根据房屋面积、房间数量、房龄等多个因素预测房价。
  2. 逻辑回归(Logistic Regression)
    • 用于二分类问题,例如判断一封邮件是否为垃圾邮件。它通过Sigmoid函数将线性组合的结果映射到\(0 - 1\)之间,得到类别概率。其函数形式为\(P(y = 1|x)=\frac{1}{1 + e^{-(\beta_0+\beta_1x)}}\),其中\(y\)是类别标签(0或1),\(x\)是特征向量。
  3. 决策树(Decision Tree)
    • ID3算法:以信息增益为准则选择划分属性,构建决策树。例如在一个动物分类问题中,根据是否有毛发、是否会飞等特征来判断是哺乳动物、鸟类还是其他动物。
    • C4.5算法:改进了ID3算法,使用信息增益比来选择属性,能够处理连续属性和缺失值。
    • CART(Classification and Regression Tree):既可以用于分类也可以用于回归。分类时采用基尼指数选择划分属性,回归时采用平方误差最小化原则。
  4. 随机森林(Random Forest)
    • 它是由多个决策树组成的集成学习算法。通过对训练集进行有放回的抽样,构建多个决策树,然后综合这些决策树的结果进行预测。例如在预测股票价格走势时,随机森林可以综合考虑多种技术指标和宏观经济因素。
  5. 梯度提升树(Gradient Boosting Tree, GBT)
    • AdaBoost:自适应提升算法,通过不断调整训练样本的权重,重点关注之前被错误分类的样本,将多个弱分类器组合成一个强分类器。
    • GBDT(Gradient Boosting Decision Tree):以决策树为基学习器的梯度提升算法,在每一轮迭代中,拟合损失函数的负梯度,逐步减少损失。用于各种回归和分类任务,如电力负荷预测等。
    • XGBoost(eXtreme Gradient Boosting):高效的梯度提升库,在GBDT的基础上进行了优化,如采用二阶泰勒展开来近似损失函数,支持并行化训练等,在数据挖掘竞赛中广泛应用。
    • LightGBM:微软开发的快速、高效的梯度提升框架,采用了直方图算法等优化技术,减少了数据存储和计算开销,在大规模数据集上表现出色。
  6. 支持向量机(Support Vector Machine, SVM)
    • 线性SVM:用于线性可分数据的分类,通过寻找一个最优的超平面将不同类别的数据分开,最大化间隔。例如在文本分类中,将正面情感和负面情感的文本分开。
    • 非线性SVM:对于非线性数据,通过核函数(如高斯核、多项式核等)将数据映射到高维空间,使其在高维空间中线性可分。例如在图像识别中,识别不同形状的物体。
  7. 朴素贝叶斯(Naive Bayes)
    • 高斯朴素贝叶斯:假设特征服从高斯分布,适用于连续特征的分类问题,如根据学生的成绩等特征判断学生是否会通过考试。
    • 多项式朴素贝叶斯:用于文本分类等问题,假设特征的概率分布是多项式分布,它可以处理文本中单词出现的频率等特征。
    • 伯努利朴素贝叶斯:假设特征是布尔变量,适用于文本分类中判断单词是否出现的情况,如判断一封邮件是否包含特定关键词来确定是否为垃圾邮件。
  8. K - 近邻(K - Nearest Neighbors, KNN)
    • 分类KNN:对于一个新的数据点,找到训练集中与其最接近的\((k\))个邻居,根据这\((k\))个邻居的类别标签进行投票,确定新数据点的类别。例如在手写数字识别中,根据与新数字最相似的\((k\))个已知数字的类别来判断新数字的类别。
    • 回归KNN:找到最近的\((k\))个邻居后,以这\((k\))个邻居的目标值的平均值或加权平均值作为新数据点的预测值,如预测一个地点的房价,参考附近房屋的价格。
  9. 神经网络(Neural Network)
    • 多层感知机(Multilayer Perceptron, MLP):由输入层、隐藏层和输出层组成的神经网络,用于分类和回归任务。例如在语音识别中,将语音信号特征作为输入,通过隐藏层的计算,输出语音对应的文字。
    • 反向传播算法(Back - Propagation):用于训练神经网络的算法,通过计算损失函数对各层参数的梯度,调整参数,使损失最小化。
    • 卷积神经网络(Convolutional Neural Network, CNN)
      • LeNet - 5:早期用于手写数字识别的卷积神经网络,包括卷积层、池化层和全连接层,展示了CNN在图像识别领域的潜力。
      • AlexNet:在2012年ImageNet竞赛中大放异彩,它有更深的网络结构,采用了ReLU激活函数等创新技术,推动了深度学习在图像领域的发展。
      • VGG - Net:具有更深的网络结构,通过使用小卷积核堆叠的方式构建网络,在图像分类等任务中取得很好的效果。
      • ResNet(Residual Network):通过残差连接解决了深层神经网络的梯度消失和退化问题,能够训练非常深的网络,在各种图像任务中表现优异。
    • 循环神经网络(Recurrent Neural Network, RNN)
      • 简单RNN:具有循环连接的神经网络,能够处理序列数据,如时间序列预测或自然语言处理中的文本生成。但存在梯度消失和爆炸问题。
      • 长短期记忆网络(Long - Short - Term Memory, LSTM):通过门控机制解决了RNN的梯度问题,能够更好地处理长序列数据。例如在机器翻译中,处理句子中单词的顺序信息。
      • 门控循环单元(Gated Recurrent Unit, GRU):是LSTM的一种简化变体,具有更少的参数,在一些序列任务中也能取得很好的效果。

二、无监督学习算法(约60个)

  1. 聚类算法(Clustering)
    • K - 均值聚类(K - Means Clustering):将数据划分为\((k\))个簇,通过不断更新簇中心和重新分配数据点,使簇内数据点的平方和最小。例如在客户细分中,根据客户的消费行为等特征将客户分为不同的群体。
    • 层次聚类(Hierarchical Clustering)
      • 凝聚式层次聚类:从每个数据点作为一个单独的簇开始,逐步合并相似的簇,直到满足停止条件。例如在生物学中,对物种进行分类。
      • 分裂式层次聚类:从所有数据点在一个簇开始,逐步分裂簇,形成层次结构。
    • DBSCAN(Density - Based Spatial Clustering of Applications with Noise):基于密度的聚类算法,能够发现任意形状的簇,并且可以识别数据中的噪声点。例如在地理信息系统中,对城市中的建筑物分布进行聚类。
    • 高斯混合模型(Gaussian Mixture Model, GMM):假设数据是由多个高斯分布混合而成,通过估计每个高斯分布的参数(均值、协方差等)来进行聚类。例如在语音信号处理中,对不同语音源进行聚类。
  2. 降维算法(Dimensionality Reduction)
    • 主成分分析(Principal Component Analysis, PCA):通过线性变换将原始数据投影到低维空间,保留数据的最大方差方向。例如在人脸识别中,将高维的人脸图像数据投影到低维空间,用于特征提取和数据可视化。
    • 奇异值分解(Singular Value Decomposition, SVD):将一个矩阵分解为三个矩阵的乘积,可用于数据压缩和降维。在推荐系统中,通过SVD对用户 - 物品评分矩阵进行分解,提取用户和物品的潜在特征。
    • 因子分析(Factor Analysis):试图寻找潜在变量来解释观察变量之间的相关性,用于数据降维和特征提取。例如在心理学测试中,通过因子分析找出影响心理指标的潜在因素。
    • t - SNE(t - Distributed Stochastic Neighbor Embedding):用于高维数据的可视化,将高维数据映射到低维空间,同时保持数据点之间的相似性结构。在生物信息学中,对基因表达数据进行可视化。
  3. 关联规则挖掘(Association Rule Mining)
    • Apriori算法:用于挖掘频繁项集和关联规则,例如在超市购物篮分析中,发现哪些商品经常一起被购买,如“购买牛奶的顾客也经常购买面包”。
    • FP - Growth算法:比Apriori算法更高效的关联规则挖掘算法,通过构建频繁模式树来挖掘频繁项集。

三、半监督学习算法(约30个)

  1. 自训练(Self - Training)
    • 首先使用少量有标记数据训练一个模型,然后用这个模型对无标记数据进行预测,将预测置信度高的无标记数据及其预测标签加入到有标记数据集中,重新训练模型。例如在图像分类中,先利用少量已标注的图像训练模型,再利用模型对未标注图像进行标注,扩充训练集。
  2. 半监督支持向量机(Semi - supervised Support Vector Machine)
    • 在支持向量机的基础上,利用无标记数据来调整决策边界,通过假设标记数据和无标记数据的分布情况,构建新的目标函数。例如在文本分类中,结合少量已分类的文本和大量未分类的文本进行分类模型训练。
  3. 图半监督学习(Graph - based Semi - supervised Learning)
    • 基于图的方法,将数据点看作图的节点,数据点之间的相似性看作边的权重。通过在图上传播标签信息,利用有标记节点的标签来推断无标记节点的标签。例如在社交网络分析中,根据已知用户的兴趣标签来推断其他用户的兴趣标签。

四、强化学习算法(约40个)

  1. 基于价值的强化学习算法(Value - based Reinforcement Learning)
    • Q - 学习(Q - Learning):是一种无模型的强化学习算法,通过学习动作 - 价值函数\((Q(s,a)\))来选择最优动作。例如在机器人导航中,机器人通过学习不同状态下采取不同动作的价值,来找到从起点到目标点的最优路径。
    • 深度Q - 网络(Deep Q - Network, DQN):将Q - 学习与神经网络相结合,用于处理高维状态空间的问题。在玩Atari游戏中,通过训练神经网络来估计Q值,使智能体能够学习到游戏的最优策略。
    • 双深度Q - 网络(Double Deep Q - Network, DDQN):解决了DQN算法中高估动作价值的问题,通过使用两个神经网络分别进行动作选择和价值评估,提高了算法的性能。
  2. 基于策略的强化学习算法(Policy - based Reinforcement Learning)
    • A2C(Advantage Actor - Critic):将策略网络(Actor)和价值网络(Critic)结合起来,策略网络用于生成动作,价值网络用于评估状态价值,通过优化策略网络来最大化累计奖励。例如在自动驾驶中,策略网络控制车辆的驾驶动作,价值网络评估驾驶状态的安全性等价值。
    • A3C(Asynchronous Advantage Actor - Critic):是A2C的异步版本,通过多个线程同时训练智能体,加快了训练速度。在机器人控制等任务中能够更快地学习到有效策略。
    • PPO(Proximal Policy Optimization):一种改进的策略梯度算法,通过限制新策略和旧策略之间的差异,提高了训练的稳定性和效率。在连续控制任务和复杂的游戏环境中表现出色。
  3. 基于模型的强化学习算法(Model - based Reinforcement Learning)
    • 模型预测控制(Model Predictive Control, MPC):利用系统的动力学模型来预测未来状态和奖励,通过在预测的轨迹中选择最优动作来控制智能体。例如在工业过程控制中,根据设备的动态模型来优化生产过程中的控制策略。
    • 世界模型(World Models):智能体通过学习环境的模型,利用这个模型来进行规划和决策。在模拟赛车游戏等环境中,智能体可以通过学习游戏世界的模型来提高自己的驾驶策略。

标签:例如,模型,分类,算法,学习,监督,数据
From: https://www.cnblogs.com/java-note/p/18628014

相关文章

  • 机器学习全解析:基础概念、任务类型、算法模型、应用及未来挑战与走向
    一、引言机器学习作为人工智能领域的核心分支,旨在让计算机系统从数据中自动学习模式和规律,以实现对未知数据的预测和决策。在当今数字化时代,机器学习已经广泛应用于各个领域,从图像识别、语音识别到金融预测、医疗诊断等,为解决复杂问题提供了强大的工具和方法。二、机器学习基础......
  • 免费学习基于SpringBoot的高考志愿智能推荐系统
    免费学习基于SpringBoot的高考志愿智能推荐系统摘要科学技术日新月异,人们的生活都发生了翻天覆地的变化,高考志愿智能推荐系统管理当然也不例外。过去的信息管理都使用传统的方式实行,既花费了时间,又浪费了精力。在信息如此发达的今天,我们可以通过网络这个媒介,快速的查找自己想要......
  • 代码随想录算法训练营第二十九天|134加油站、135分发糖果、860柠檬水找零、406根据身
    day29贪心算法part031.134加油站解题思路:(1)总体条件判断:如果gas数组的总和小于cost数组的总和,则无论从哪个加油站出发,汽油都不足以完成一圈,返回-1。(2)寻找起点:设定两个变量:total_tank:总剩余汽油量,表示从头到尾累计整个数组的油量差,目的是判断总的油量......
  • 隐马尔科夫模型|前向算法|Viterbi 算法
    隐马尔可夫模型(HiddenMarkovModel,HMM)HMM是一种统计模型,用于表示由一个隐藏的马尔可夫链生成的观测序列。它假设每个观测值依赖于当前的隐藏状态,并且隐藏状态之间的转换遵循马尔可夫性质(即未来的状态仅依赖于当前状态,而不受过去状态的影响)。HMM通常包含以下三个基......
  • 学习Spring,@Autowired的这几个易错点你一定要知道
    前言1.你是否懂得@Autowired注解在使用上的细节?2.你是否在解决因@Autowired产生的异常而无处下手?3.你是否了解@Autowired的基本原理?我们在做项目的过程中,随着项目规模的增大、第三方服务的引入,项目中类与类之间的依赖关系错综复杂,而@Autowired作为在依赖注入中最常使用......
  • C# Channel学习
    Channel是C#新推出的一个容器类型,具有异步、高性能、线程安全等特点,相当于一个封装好的队列容器,可以一边向里面放数据,一边从里面拿数据,用来做消息队列非常的方便Channel有2个静态方法可以创建有限和无限2种通道创建的时候,可以设置Options(BoundedChannelOptions或者UnboundedCha......
  • 二分算法
    @目录二分算法基本介绍应用场景例题进击的奶牛小红打怪总结二分算法基本介绍二分查找算法(BinarySearch)是一种高效的查找算法,特别适用于在有序数组或列表中快速定位目标元素。它利用了分治法的思想,每次查找都将搜索范围缩小一半,因此时间复杂度为O(logn),效率非常高。应用场景......
  • 算法网关视频分析网关小知识:监控系统频繁掉线,如何排查网络问题?
    在现代监控系统中,网络稳定性对于确保视频流的连续性和图像质量至关重要。然而,监控系统频繁掉线是一个常见的问题,它可能由多种因素引起,包括硬件故障、网络配置错误、供电不稳定等。为了有效排查和解决这些问题,以下是一些系统性的步骤,可以帮助我们定位并解决监控系统掉线的问题。1......
  • 区块链技术学习笔记
    密码学基础哈希算法哈希算法是指把任意输入值通过特定方式(hash函数)处理后生成一个结果值。有时会发生输入值不同,但是处理后结果值相同的情况,这就叫哈希冲突。但一般来说,只要哈希函数设计得当,并且样本足够大,那么发生哈希冲突的概率可以忽略不计。因此,可以认为任意值通经过哈希函......
  • 为什么我要轻学习python?
    人已中年,因为没有从事程序开发类职业,所以从来也没想过学习新的开发工具。偶尔用来编写小软件的一直是delphi7,小巧实用快捷,是我一直收藏的古董级工具。这两年因为数据处理还是什么原因,了解到python,不知不觉也算是学的有点模样了,嗯,我很满足:)我发现它真是个宝。现在有啥需求,delphi界......