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

一、监督学习算法

  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的一种简化变体,具有更少的参数,在一些序列任务中也能取得很好的效果。

二、无监督学习算法

  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算法更高效的关联规则挖掘算法,通过构建频繁模式树来挖掘频繁项集。

三、半监督学习算法

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

四、强化学习算法

  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):智能体通过学习环境的模型,利用这个模型来进行规划和决策。在模拟赛车游戏等环境中,智能体可以通过学习游戏世界的模型来提高自己的驾驶策略。
posted @ 2024-12-24 16:21  软件职业规划  阅读(43)  评论(0编辑  收藏  举报