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

Day 22: 复习

机器学习数据处理与降维技术复习总结

前言

经过6天的学习,我们系统地学习了从基础的Numpy数组操作到高级的降维算法,这些内容构成了机器学习数据预处理的重要知识体系。本文将对这一系列学习内容进行全面复习和总结,帮助大家建立完整的知识框架。

Day 16: Numpy数组基础回顾

核心内容总结

Numpy作为Python科学计算的基础库,是我们后续学习的重要基石。通过学习,我们掌握了:

数组创建方法

  • 简单创建:np.array(), np.zeros(), np.ones(), np.arange()
  • 随机创建:np.random.normal(), np.random.seed()用于结果重现

数组索引技术

  • 一维数组:基础索引、切片操作、步长切片
  • 二维数组:行列选择、子矩阵提取
  • 三维数组:多维度操作

重要概念理解
数组和列表的区别不仅在于输出格式(空格分隔vs逗号分隔),更重要的是数组支持向量化运算,这为后续的矩阵运算奠定了基础。

Day 17: 聚类算法深度学习

聚类算法核心原理

聚类是无监督学习的重要分支,其目标是实现高内聚性(簇内相似)和高分离性(簇间差异)。

评估指标体系

我们学习了三个关键评估指标:

轮廓系数(Silhouette Score)

  • 取值范围:[-1, 1]
  • 接近1表示聚类效果好,接近-1表示可能被错误分类
  • 计算公式结合了簇内凝聚度和簇间分离度

CH指数(Calinski-Harabasz Index)

  • 取值范围:[0, +∞)
  • 值越大越好,衡量簇间分散度与簇内分散度之比

DB指数(Davies-Bouldin Index)

  • 取值范围:[0, +∞)
  • 值越小越好,评估簇的紧凑度和分离度

三大聚类算法对比

算法类型优点缺点适用场景
K-Means基于距离简单高效,易解释需预设k值,对异常值敏感球形簇,大规模数据
DBSCAN基于密度自动确定簇数,处理噪声参数敏感,高维效果差任意形状簇,有噪声数据
层次聚类基于层次不需预设簇数,提供层次结构计算复杂度高小规模数据,需要层次信息

Day 18: 聚类结果解释与特征分析

簇含义推断的两种策略

目标驱动方法
事先明确关键特征进行聚类,结果具有明确的业务含义。

探索驱动方法
使用全特征聚类后,通过监督学习模型(如随机森林)+ SHAP值分析来逆向工程出簇的特征重要性,从而为簇赋予实际含义。

SHAP值的应用价值

SHAP值不仅能够量化特征对模型预测的贡献,更重要的是能够帮助我们理解聚类结果的内在逻辑,将无监督学习的结果转化为可解释的业务洞察。

Day 19: 特征筛选技术全览

特征筛选的必要性

在高维数据时代,特征筛选能够:

  • 降低计算复杂度
  • 减少过拟合风险
  • 提高模型可解释性
  • 去除噪声特征

六种筛选方法对比

方差筛选

  • 原理:保留方差大于阈值的特征
  • 优点:计算简单快速
  • 缺点:不考虑与目标变量的关系

皮尔逊相关系数筛选

  • 原理:选择与目标变量相关性高的特征
  • 适用:线性关系明显的场景
  • 注意:分类问题需要使用f_classif

Lasso筛选

  • 原理:L1正则化自动将不重要特征系数压缩为0
  • 优点:同时进行特征选择和模型训练
  • 参数:alpha值需要调优

树模型重要性

  • 原理:基于决策树的特征重要性
  • 优点:能捕捉非线性关系
  • 实现:使用SelectFromModel配合随机森林

SHAP重要性

  • 原理:基于博弈论的特征贡献度量
  • 优点:提供更可靠的特征重要性评估
  • 计算:相对耗时但结果更可信

递归特征消除(RFE)

  • 原理:递归移除最不重要的特征
  • 优点:考虑特征间的相互作用
  • 适用:需要精确控制特征数量的场景

Day 20: SVD分解的理论与实践

SVD分解的数学基础

任意矩阵A可分解为:A = UΣV^T

其中:

  • U:左奇异向量矩阵(正交矩阵)
  • Σ:奇异值矩阵(对角矩阵)
  • V:右奇异向量矩阵(正交矩阵)

SVD的几何意义

SVD描述了线性变换的几何结构:
输入空间 → [V^T] → 标准正交基 → [Σ] → 缩放变换 → [U] → 输出空间

重要性质与应用

数学性质

  • 任意矩阵都存在SVD分解
  • 提供最优的低秩逼近
  • 奇异值反映数据的重要程度

应用领域

  • 数据压缩和降维
  • 推荐系统的矩阵分解
  • 图像处理和信号降噪
  • 主成分分析的数学基础

Day 21: 降维算法的深度对比

降维算法分类框架

无监督降维

  • 输入:仅需要特征矩阵X
  • 目标:保留数据固有结构、最大化方差或保持流形结构
  • 代表:PCA、t-SNE、UMAP等

有监督降维

  • 输入:特征矩阵X + 标签y
  • 目标:最大化不同类别的可分性
  • 代表:LDA

三大降维算法深度解析

PCA(主成分分析)

  • 核心:寻找最大方差方向
  • 与SVD关系:对均值中心化数据的SVD分解
  • 适用场景:线性降维、去噪、数据压缩
  • 限制:仅适用于线性结构

t-SNE(t-分布随机邻域嵌入)

  • 核心:保持高维数据的局部邻域结构
  • 特点:非线性降维,主要用于可视化
  • 超参数:perplexity(困惑度)对结果影响很大
  • 注意:不保留全局距离信息,多次运行结果可能不同

LDA(线性判别分析)

  • 核心:最大化类间散度,最小化类内散度
  • 降维上限:min(n_features, n_classes - 1)
  • 优势:直接优化类别可分性
  • 局限:降维维度受类别数限制

降维算法选择指南

场景推荐算法理由
数据压缩PCA保留主要方差,计算高效
数据可视化t-SNE/UMAP保持局部结构,揭示簇结构
分类预处理LDA直接优化类别可分性
线性关系数据PCA简单有效,可解释性强
非线性流形数据t-SNE/UMAP能够捕捉复杂的非线性结构

知识体系的内在联系

从数据基础到高级应用的学习路径

  1. Numpy基础为所有后续操作提供了数据结构支持
  2. 聚类算法帮助我们理解数据的内在结构
  3. 聚类解释将无监督结果转化为业务洞察
  4. 特征筛选优化数据质量,提升模型效果
  5. SVD分解提供了降维的数学理论基础
  6. 降维算法在不同场景下实现数据的有效压缩

实践中的协同应用

在实际项目中,这些技术往往协同使用:

  • 先用特征筛选去除噪声特征
  • 再用降维算法压缩数据维度
  • 然后进行聚类分析发现数据结构
  • 最后用SHAP等方法解释结果

学习建议与实践要点

理论与实践并重

理论掌握

  • 理解每种算法的数学原理和适用条件
  • 掌握不同方法的优缺点和参数调优
  • 建立算法间的对比认知框架

实践技能

  • 熟练使用sklearn等库的相关API
  • 掌握数据预处理的完整流程
  • 学会根据具体问题选择合适的算法

参数调优的艺术

不同算法都有关键参数需要调优:

  • K-Means的k值选择
  • t-SNE的perplexity参数
  • Lasso的alpha值
  • 特征筛选的阈值设定

评估与验证的重要性

  • 使用多种评估指标综合判断
  • 通过可视化验证降维效果
  • 结合业务场景解释结果合理性

未来学习方向

深入方向

  • 深度学习中的自编码器降维
  • 非线性降维算法(如Isomap、LLE)
  • 大规模数据的分布式聚类
  • 时间序列数据的降维与聚类

应用拓展

  • 推荐系统中的矩阵分解技术
  • 自然语言处理中的词向量降维
  • 计算机视觉中的特征提取
  • 生物信息学中的基因数据分析

总结

通过这6天的系统学习,我们构建了从基础数据操作到高级降维技术的完整知识体系。这些技术不仅是机器学习的重要基础,更是解决实际问题的有力工具。

在数据科学的实践中,没有万能的算法,只有适合的方法。理解每种技术的原理、特点和适用场景,并能够根据具体问题灵活选择和组合使用,这正是数据科学家的核心能力。

希望通过这次复习总结,能够帮助大家更好地掌握这些重要技术,在未来的学习和工作中游刃有余地处理各种数据挑战。


学习是一个持续的过程,理论与实践的结合才能真正掌握这些技术的精髓。继续加油!

@浙大疏锦行

http://www.lryc.cn/news/600255.html

相关文章:

  • Python 面向对象基础
  • 【Android】相对布局应用-登录界面
  • 基于 Claude Code 与 BrowserCat MCP 的浏览器自动化全链路构建实践
  • Android 修改系统时间源码阅读
  • 各种前端框架界面
  • 【GoLang#3】:数据结构(切片 | map 映射)
  • SAP ABAP的数据通过调用泛微Restful API同步数据到OA建模表
  • 《基于雅可比矢量近似的EIT触觉传感灵敏度非均匀校正》论文解读
  • Yocto 项目直播教学|今天晚上 21:30 直播!
  • python---字典(dict)
  • OpenCV图像梯度、边缘检测、轮廓绘制、凸包检测大合集
  • 【Linux手册】操作系统如何管理存储在外设上的文件
  • 2025牛客暑期多校第4场——G
  • MCP协议深度解析:客户端-服务器架构的技术创新
  • CMakeLists.txt 怎么写
  • 电脑开机后网络连接慢?
  • @PathVariable与@RequestParam的区别
  • 【洛谷】单向链表、队列安排、约瑟夫问题(list相关算法题)
  • 刷题日记0725
  • 二开----02
  • 【前端工程化】前端项目开发过程中如何做好通知管理?
  • Model Control Protocol 三层架构设计,三种传输方式,完成MCP项目构建实现工具调试,多维度评价指标检测多工具多资源调用的鲁棒性和稳健性
  • 从零本地部署使用Qwen3-coder进行编程
  • Web开发传参的四种常见方式介绍
  • 太极生两仪,两仪生四象,四象生八卦
  • 智慧电视:开启养老新时代
  • 【图像理解进阶】如何对图像中的小区域进行细粒度的语义分割?
  • [2025CVPR-图象分类方向]CATANet:用于轻量级图像超分辨率的高效内容感知标记聚合
  • Python day24
  • day 35打卡