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.pswp.cn/web/90715.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣 hot100 Day56

46. 全排列 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 //抄的 class Solution { private:vector<vector<int>>result;vector<int> path; public:void backtracking(vector<int>& nu…

Android 编码规范全指南

在 Android 开发领域&#xff0c;代码不仅是功能实现的载体&#xff0c;更是团队协作与项目迭代的基础。一套完善的编码规范&#xff0c;能让代码从 “可运行” 升级为 “易维护、可扩展、低风险”。本文基于 Google、Square 等顶尖团队的实践经验&#xff0c;结合国内 Android…

[RPA] Excel中的字典处理

案例1一个Excel文件总共有2个Sheet页&#xff0c;分别为总表和对照表通过对照表sheet页&#xff0c;设置价格对照字典对照表循环总表sheet页&#xff0c;根据循环到的商品名称&#xff0c;找到对应字典中的价格&#xff0c;并计算出总价总表将总价写入到Excel表中C列&#xff0…

基于NSGAII优化算法的车间生产调度matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.部分程序 4.算法理论概述 5.参考文献 6.完整程序 1.程序功能描述 车间生产调度是制造业的核心环节&#xff0c;其目标是在满足设备约束、工序优先级等条件下&#xff0c;优化多个相互冲突的生产指标&#xff08;如…

Cmake、VS2019、C++、openGLopenCV环境安装

在 CMake 和 Visual Studio 2019 环境下安装和配置 OpenGL、OpenCV 以及 CUDA 可能会有些复杂&#xff0c;因为涉及的组件多且相互依赖。以下是一个详细的指南&#xff0c;帮助您逐步完成安装和配置。 1. 前提条件 在开始之前&#xff0c;请确保您已安装以下软件&#xff1a; …

视频二维码在产品设备说明书中的应用

在当今数字化的时代&#xff0c;传统的产品设备说明书正面临着一场变革。文字和图片虽然能提供基本信息&#xff0c;但在复杂设备的安装、操作和故障排除方面&#xff0c;往往显得力不从心。而视频二维码的出现&#xff0c;为这一困境提供了完美的解决方案&#xff0c;它将冰冷…

【Pytest 使用教程】

pytest 使用 test_basic.py Pytest 完全实战手册 一、核心概念与基础 1、在pytest框架下运行测试用例&#xff0c;最基础的一共有三点。导入pytest的包写一个方法&#xff0c;或者类。后面运行的时候&#xff0c;相当于运行这个方法&#xff0c;或者类里的方法&#xff0c;无需…

基于OpenOCD 的 STM32CubeIDE 开发烧录调试环境搭建 DAPLINK/STLINK

需要部署一个开发环境,实现h7的板子通过daplink功能给目标板烧写程序(同事要将这个过程用fpga实现),需要通过openocd+gdb+daplink stm32; 总结:单条命令执行太麻烦,参考4写成脚本文件: 独立脚本使用Openocd ​ 在**“在Stm32CubeIDE环境下使用DAP-Link仿真”**一文中…

嵌入式硬件篇---zigbee无线串口通信问题

使用 ZigBee 进行无线串口通信时&#xff0c;接收异常&#xff08;如丢包、乱码、完全无法接收&#xff09;是常见问题&#xff0c;其原因涉及射频通信特性、网络机制、硬件配置、环境干扰等多个层面。以下从具体机制出发&#xff0c;详细分析可能的原因&#xff1a;一、射频层…

【AI周报】2025年7月26日

【AI周报】2025年7月第四周观察&#xff1a;GitHub Spark重塑开发范式&#xff0c;中美AI政策对垒升级 省流版静态页面周报&#xff0c;为方便各位看官快速食用&#xff0c;我准备了摘要版周报&#xff0c;欢迎访问&#xff1a;20250726周报 引言&#xff1a;本周焦点速览 2…

HTML:从 “小白” 到 “标签侠” 的修炼手册

目录 一、HTML&#xff1a;网页的 “骨架” 不是骷髅架 二、文本标签&#xff1a;文字的 “华丽变身” 术 1. 标题标签&#xff1a;文字界的 “领导班子” 2. 段落标签&#xff1a;文字的 “专属保姆” 3. 文本格式化标签&#xff1a;给文字 “穿花衣” 三、链接标签&…

python3GUI--基于YOLO的火焰与烟雾检测系统By:PyQt5(详细图文介绍)

文章目录一&#xff0e;前言1.引言2.正文二&#xff0e;核心内容1.数据集2.模型训练3.界面窗口1.登录注册界面2.核心功能界面3.检测告警提示窗口三&#xff0e;.核心界面模块介绍1.顶部信息区域2.数据输入3.参数配置4.告警设置5.操作台6.关于7.指标变化8.异常速览9.日志输出10.…

基于Transform、ARIMA、LSTM、Prophet的药品销量预测分析

文章目录有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主一、项目背景二、数据准备与预处理三、模型选择与方法设计1. ARIMA 模型&#xff1a;传统统计方法的基线构建2. LSTM 模型&#xff1a;引入记忆机制的深度学习方法3. Transformer 模型&#…

LLM隐藏层与logits数值的简单理解

LLM的“隐藏层数值”和“logits数值” 代表什么,范围是多少 “隐藏层数值”和“logits数值”是两个关键概念——它们分别对应模型“理解信息”和“输出决策”的核心环节。 一、先明确基础:LLM的“思考”流程 LLM本质是“输入文本→处理信息→输出结果”的神经网络。简单说…

Vue》》@ 用法

使用 别名导入 // 导入 src/components/Button.vue import Button from /components/Button.vue// 导入 src/utils/helper.js import { helperFunc } from /utils/helper// 导入 src/store/index.js import store from /store

20250726-1-Kubernetes 网络-Service存在的意义_笔记

一、Service控制器 1. Service存在的意义 1)基本场景  动态IP问题:Pod IP具有短暂性,销毁重建后IP会变化(示例:原IP 169.130重建后变为169.132) 服务发现需求:需要稳定入口访问同一服务的多个Pod,避免因Pod变动导致服务中断 负载均衡需求:多个Pod副本需要统一访…

在一个存在的包里面编写msg消息文件

前言尽管最佳实践是在专门的接口包中声明接口&#xff0c;但有时在同一个包中完成接口的声明、创建和使用会更为便捷。创建文件创建好msg/AddressBook.msg文件&#xff0c;在你的包的目录下package.xml<buildtool_depend>rosidl_default_generators</buildtool_depend…

华为服务器操作系统openEuler介绍与安装

一、openEuler概述 1.1、openEuler介绍 openEuler&#xff08;简称 “欧拉”&#xff09;是华为开源的服务器操作系统&#xff0c;是基于Linux稳定系统内核的、面向企业级的通用服务器架构平台。能够满足客户从传统IT基础设施到云计算服务的需求&#xff0c;打造了完善的从芯…

CUDA杂记--FP16与FP32用途

FP16&#xff08;半精度浮点数&#xff09;和FP32&#xff08;单精度浮点数&#xff09;是计算机中用于表示浮点数的两种常见格式&#xff0c;它们在存储空间、数值范围、精度、计算效率等方面有显著区别。以下从核心差异、适用场景等方面详细说明&#xff1a; 一、核心差异&am…

Android开发中技术选型的落地方案

技术选型不是简单地“哪个库最火就用哪个”&#xff0c;而是一个需要综合考虑业务、团队、技术、维护、未来等多维度因素的系统工程。 核心目标&#xff1a; 选择最适合当前及可预见未来项目需求的技术栈&#xff0c;确保应用高质量、高效率、可维护、可扩展、安全稳定地开发和…