class 1 introduction to data mining

Introduction to data mining The process of knowledge discovery in databases can be shown in the picture below. The purpose of preprocessing is to transform the raw input data into an appropriate format for subsequent analysis. The steps involved in data preprocessing include fusing data from multiple sources, cleaning data to remove noise and duplicate observations, and selecting records and features that are relevant to the data mining task at hand. ...

2026年8月13日 · 6 分钟

ThreadLocal 原理与线程上下文传递

ThreadLocal 是什么 ThreadLocal 用于保存线程私有变量。 同一个 ThreadLocal 可以被多个线程访问,但每个线程读取和修改的都是自己保存的值,线程之间默认互不影响。 常见用途包括: 保存当前用户信息; 保存 TraceId; 保存租户或请求上下文; 在线程内部隐式传递参数。 private static final ThreadLocal<String> USER_CONTEXT = new ThreadLocal<>(); 调用 set() 时,数据并不是直接存入 ThreadLocal 对象,而是存入当前线程内部的 ThreadLocalMap: Thread └── ThreadLocalMap ├── ThreadLocal A → Value A └── ThreadLocal B → Value B 一个线程可以使用多个 ThreadLocal,但这些数据都保存在当前线程自己的 ThreadLocalMap 中。 ThreadLocal 为什么会内存泄漏 ThreadLocalMap 中的 Entry 可以简化为: static class Entry extends WeakReference<ThreadLocal<?>> { Object value; } 其中: Key,也就是 ThreadLocal,是弱引用; Value 是强引用。 如果外部不再引用某个 ThreadLocal,GC 可以回收 Key,此时 Map 中可能留下: ...

2026年8月2日 · 3 分钟

我怎样搭了一套本地 AI 换声流水线

这套东西的起点不是“做一个 AI 换声 Demo”,而是我手里真的有三种素材要处理:只有我说话的讲解视频、麦克风和游戏声分轨录制的游戏视频,还有一首单人独唱;我希望它们都能在自己的笔记本上离线跑,也希望以后换一个输入文件、输出目录或目标音色时,不用再手工拼一遍 FFmpeg 命令。 我最早想的是 FFmpeg → UVR5 → RVC → 混音 → FFmpeg,这个方向没有错,不过跑完第一条讲解视频后我就把它拆掉了,因为纯讲解里只有我的声音,先做一次人声分离没有意义,还会让辅音和尾音多损失一遍。后面我搭出来的不是一条固定直线,而是一个入口、三种模式。 我搭出来的整体结构 我把项目放在 D:\codex_bookmarks\ai-voice-pipeline,外面只留两个 PowerShell 入口: setup.ps1 负责安装环境和模型依赖; run.ps1 负责接收模式、输入、输出和目标音色,再调用 Python 流水线。 真正干活的组件有四个,FFprobe 先看输入文件里有几条流,FFmpeg 负责提取、混音和封装,Audio Separator + BS-RoFormer 只在游戏漏音和歌曲分轨时使用,Seed-VC 负责把我的声音换成目标参考音色;另外我接了 Kokoro,用它生成中文参考 WAV,也可以直接把文字读成旁白。 为了不让几个项目的依赖互相打架,我给 Seed-VC、Audio Separator、Kokoro 和 RVC 分别建了虚拟环境,完整安装用的是: cd D:\codex_bookmarks\ai-voice-pipeline .\setup.ps1 -WithTTS -WithSeparator 模型会在第一次推理时下载,8GB 显存下我把分离器的 batch size 固定为 1,并启用了半精度;我的机器是 i9-13980HX、64GB 内存和 RTX 4060 Laptop 8GB,讲解、游戏双轨和单人独唱都已经在本机跑通过。 一份文件进来以后发生了什么 我在 run.ps1 后面接了 diagnose、tts、convert 和 run 四个子命令,其中 convert 是纯讲解的快捷入口,完整的三模式入口则是 run。 每次执行时,程序会先检查输入文件和目标参考 WAV 是否存在,也会阻止输入与输出指向同一个文件;通过检查以后,它会建立临时工作目录,把指定音轨提取为 48 kHz PCM,再根据模式决定要不要做分离。 ...

2026年7月27日 · 2 分钟

《Java 8 函数式编程》读书笔记

梳理 Java 8 Stream、Lambda、Collectors、Map 增强与并行流的核心机制和使用边界。

2026年7月18日 · 1 分钟

《从程序员到架构师:核心场景实战》读书笔记

围绕数据冷热分离、缓存、高并发、微服务韧性、分布式事务和多团队协作整理架构实战要点。

2026年7月18日 · 2 分钟

《高效能人士的七个习惯》读书笔记

围绕产出与产能平衡、从依赖到独立、公众领域成功与持续更新,整理七个习惯的核心原则和行动清单。

2026年7月18日 · 2 分钟

《纳瓦尔宝典》读书笔记

围绕财富、杠杆、判断力、幸福与长期主义,整理纳瓦尔关于个人成长和职业选择的核心观点。

2026年7月18日 · 3 分钟

《深入理解分布式事务》读书笔记

从本地事务日志与 MySQL XA 出发,对比 2PC、3PC、TCC、可靠消息和最大努力通知等分布式事务方案。

2026年7月18日 · 4 分钟