当前位置: 首页 > article >正文

2024.9.15 Python模式识别新国大EE5907,总结PCA,LDA,Clustering,GMMboosting,SVM

1.PCA主成分分析

主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息。
1.标准化处理
2.计算协方差矩阵
3.计算特征值和特征向量。
4.根据特征值的大小排序,选择最大的 k 个特征值所对应的特征向量,构成一个新的特征空间。这些特征向量称为主成分,它们定义了数据投影到的新的低维空间。

2.LDA线性判别分析

PCA:通过最大化数据的总体方差来进行降维,不考虑类别信息,因此是一种无监督降维方法。
LDA:考虑类别信息,通过最大化类间方差和最小化类内方差来进行降维,是一种监督降维方法。
LDA最多将数据降到 k−1 维,k 是类别的数量
LDA 的核心思想是通过找到一个投影方向,使得数据投影到这个方向时,不同类别的样本之间尽可能地远,而同类别样本之间尽可能地近。
LDA 实现这个目标的步骤如下:
计算类内散度矩阵:类内散度矩阵表示同一类别的数据点之间的差异
计算类间散度矩阵:类间散度矩阵反映类别中心之间的差异
求解优化问题:
数据投影:

3.Clustering聚类

步骤:
随机选择
k 个初始质心。
将每个样本分配到离它最近的质心对应的簇中。
更新每个簇的质心为该簇所有样本的平均值。
重复上述步骤,直到质心不再移动或者满足停止条件。
优点:简单易实现,计算效率高。
缺点:需要预先指定簇的数量
k,对初始质心敏感,容易陷入局部最优。

4.高斯混合模型(GMM, Gaussian Mixture Model) 和 Boosting 技术的机器学习算法

高斯混合模型(GMM)
GMM 是一种用于聚类和概率建模的算法,它假设数据来自多个不同的高斯分布。每个高斯分布代表数据集中的一个簇,而整个数据集则可以看作是由这些簇混合而成的。

模型原理:GMM 使用**期望最大化(EM)**算法来估计高斯分布的参数,即每个簇的均值、协方差和权重。EM 算法是迭代式的,分为两个步骤:
E 步骤:根据当前的参数估计每个数据点属于某个簇的概率。
M 步骤:基于 E 步骤中的概率重新估计模型的参数。
GMM 的优势是能够处理具有不同形状和大小的簇,并且允许每个簇具有不同的协方差结构。

Boosting
Boosting 是一种集成学习方法,旨在通过组合多个弱模型来提升整体模型的性能。最常用的 Boosting 方法是 AdaBoost 和 Gradient Boosting。

核心思想:Boosting 通过将多个简单的弱模型(如决策树)按顺序训练,并在每次迭代中关注前一个模型错误分类的数据点。在每次迭代中,模型会更加关注被前一次模型错分的数据点,从而逐步提高整体的预测准确性。
效果:通过反复迭代,Boosting 能够显著提高分类或回归问题的性能。

5.SVM支持向量机(SVM,Support Vector Machine)

是一种用于分类、回归和异常检测的监督学习算法,广泛应用于机器学习和数据挖掘中。SVM 通过构建一个最佳的决策边界(超平面)来将数据分成不同的类别。

SVM 的基本原理
SVM 的主要目标是找到一个能够最大化分类边界的超平面,这个边界能够将不同类别的数据点尽可能分开。SVM 会寻找一个距离两类样本点最近的“支持向量”之间的最大间隔,尽量避免数据点落入边界内。

超平面:在 SVM 中,超平面是用来分割数据空间的决策边界。对于二维数据,超平面是直线;对于三维数据,它是一个平面;在更高维度中,超平面是一个维度更高的几何体。
支持向量:这些是位于决策边界附近的数据点,它们对确定超平面的位置至关重要。只有这些点会影响分类结果,其余的数据点对决策边界没有影响。
间隔(Margin):是指支持向量与超平面之间的距离。SVM 的目标是最大化间隔,从而让数据点尽量远离决策边界,这样能提高模型的泛化能力。

支持向量机是一种强大的监督学习算法,尤其适合于处理高维数据和复杂的分类问题。通过引入核函数,SVM 可以将非线性问题映射到高维空间进行处理,并在多种领域得到广泛应用。尽管有一定的计算复杂性,SVM 在许多分类任务中表现优异,是机器学习中的重要工具之一。


http://www.kler.cn/news/310568.html

相关文章:

  • istio中serviceentry结合egressgateway的使用
  • 求和(2)
  • C# 禁止程序重复启动
  • 科技创新驱动未来发展
  • Qt 内嵌 Python 解释器动态调试
  • canvas和svg的区别是什么?它们的应用场景是什么?
  • github域名与IP变更导致无法推送分支问题的解决
  • QT信号槽原理是什么,如何去使用它?
  • POSIX信号量以及利用POSIX信号量实现基于循环队列的高效生产者消费者模型
  • 【iOS】dismiss多级的方法
  • 《A++ 敏捷开发》- 26 根与翼
  • 如何使用自动化测试工具来提高API测试的效率?
  • html详细知识
  • Android中的单例模式
  • 怎么给儿童掏耳朵比较安全?安全儿童可视挖耳勺推荐
  • 价值、创新、社区与财富效应:Match项目的成功启示
  • 【网络安全】PHP配置注入漏洞
  • php环境搭建教程
  • float字节序和主机序 网络序传输
  • 优化算法(三)—模拟退火算法(附MATLAB程序)
  • Vue学习记录之四(watch侦听器和watchEffect高级侦听器)
  • Window Server 2019+ 安装 Docker
  • 【数据分析】利用Python+AI+工作流实现自动化数据分析-全流程讲解
  • Vue3流程图插件-Vue Flow
  • supermap iclient3d for cesium中的平移,旋转
  • Linux嵌入式相机 — 项目总结
  • ArcGIS Pro SDK (十四)地图探索 4 书签
  • C语言--结构体(学习笔记)
  • 基于python+django+vue的图书管理系统
  • 光模块SFF-8472