二元分类可行性拆解:泛化误差、VC维与工程前提
你在训练一个二分类模型判断一封邮件是不是垃圾、一笔交易有没有风险、一张图片里有没有猫。训练集里可能只有几千甚至几万个样本可上线后模型面对的是完全不同、成千上万倍的新输入。一个很反直觉的事实是模型从没见过训练集之外的任何数据它却信誓旦旦地给这些没见过的输入下判断。凭什么这就是二元分类为什么可行这个问题的本质。要回答它不能光靠神经网络很强大这种口号得从概率论、统计学习和工程实践三条线一点点拆。这篇文章我会讲清楚泛化误差从哪来、假设空间无限时怎么算账、为什么深度学习这种理论上该翻车的模型反而能用最后落到工程上那些让可行变成真的行的前提条件。无论是想补理论基础的学生还是被线上效果折磨的工程师这篇都能给你一套完整的判断框架。1. 从见过到没见过分类器凭什么能跨出训练集1.1 罐子模型泛化问题的最简化版本先把复杂问题剥到只剩骨架。假设你面前有一个看不见内部的大罐子里面装满了红球和绿球比例完全未知。你能做的只有一件事伸手随机抓出N个球看看其中红球占了多少由此猜罐子里红球的总比例。这个场景和机器学习分类几乎是同构的太阳底下没什么新鲜事。抓出来的N个球就是训练样本红球比例就是某个假设在训练集上的错误率罐子里的真实红球比例就是这个假设在所有数据上的真实错误率。你永远不可能把罐子倒空——就像你永远拿不到全量数据——但你希望手里这N个球能告诉你一点关于整体的靠谱信息。直觉上这当然行得通不然民调、质检、药效试验全都没法做了。但直觉上行得通和数学上可证明之间那条路才是机器学习可行性的第一块基石。1.2 二元分类如何映射成罐子里的比例问题假设输入空间是X输出标签只有两种不妨叫1和-1。你有一个候选的分类函数h它的判断不可能永远正确真实世界里总有一个理想的未知目标函数f负责给所有样本打标签。那么h在某个具体样本x上犯错当且仅当h(x)≠f(x)。现在做一个简化假设样本服从某个固定的数据分布P。对每个样本点x定义一个指示变量当h(x)≠f(x)时记作1否则记作0。这不是一个普通变量而是一个服从伯努利分布的随机变量它的期望值就等于h在分布P下的真实错误率。于是我们从分布P中独立抽N个样本形成训练集h在这个训练集上的错误率就是N次抽样中的红球比例。看起来不过是把游戏规则换了个说法。但关键在于这个映射让分类器泛化从一句哲学口号变成了一个可以用概率不等式严格处理的统计问题。你不再需要纠结机器到底理解了什么只需要计算抽样估计值和总体真实值之间的偏差有多大。1.3 抽样一旦完成剩下的是概率问题训练集是随机抽来的这本身就包含了不确定性你抽到的恰好是一批运气差的样本让红球比例虚高或虚低。机器学习理论的基本态度是——承认这种坏运气但把它的概率压住。只要抽样方式是独立同分布的、样本量N足够大我们就可以写出一个非常具体的概率声明训练错误率与真实错误率偏离某个容忍度ε的概率会以指数速度衰减。换句话说泛化能力不是模型的玄学属性而是样本规模的数学结果。这个思想贯穿整个机器学习理论。接下来我把这条逻辑链补完为什么单个假设能被样本量兜住而一堆假设会让情况变复杂最终又怎么用VC维处理无限假设空间。2. 大数定律与Hoeffding不等式误差上界的定量估计2.1 大数定律只说会接近没说接近多快大数定律大家都熟抽样次数越多样本均值越接近总体均值。但干工程的人光知道这个没用。你问一万个样本够不够大数定律只会回答够只要N趋于无穷这是一句正确的废话。我们需要的是偏差的概率界。Hoeffding不等式就是干这个的。它的标准形式是P(|ν - μ| ε) ≤ 2exp(-2ε²N)其中ν是抽样得到的均值训练错误率μ是总体真实均值真实错误率N是样本量。这个不等式说的是偏差超过ε这件事概率随N增大呈指数级下降。注意这个界和总体分布的具体形态无关只依赖样本量、容忍度ε和置信度这正是它厉害的地方。打个生活中的比方。你想知道一家店的菜品平均分随机问100个顾客得到4.2分。Hoeffding不等式告诉你如果这家店真实平均分和4.2分的差距超过0.5那你能碰上这样一群口味明显偏离平均水平的顾客概率不超过一个很小的值。问的人越多这个值的上限越小。2.2 具体算一下才有感觉代入几个数感受一下。假设N500ε0.05那么偏差超过5个百分点的概率上界是2exp(-2×0.0025×500)2exp(-2.5)≈0.164。不算低五次实验就有一次可能出现超过5个点的偏差。把样本提到N2000同样ε0.05概率上界变成2exp(-10)≈0.00009。这一下就踏实多了。误差界对样本量的依赖是平方级的样本量翻四倍置信度往往能提升好几个数量级这个特性在估算数据量时非常有用。实践中我经常用这个公式反向推目标是在95%置信度下训练误差和真实误差差距不超过5%那至少需要多少样本后面会给出具体计算方法和一段可复用的代码。2.3 从单个假设到一堆假设联合界上面所有讨论都对齐一个前提h是固定的、事先确定的。可机器学习的实际操作不是这样——你是在训练过程中从假设空间H里挑一个h。假设空间里有M个候选函数每个都可以用Hoeffding不等式单独约束但你需要的是同时约束所有候选因为哪怕只有一个小概率出问题你都可能恰好选中那个出问题的h。这就需要用联合界也叫并集界。坏事件定义为存在至少一个h其训练误差和真实误差偏离超过ε。这件事的概率上界是M倍的单个概率界P(存在h使得|E_in(h) - E_out(h)| ε) ≤ 2Mexp(-2ε²N)注意这里多了一个M。它解释了什么是模型复杂度不仅样本量影响泛化假设空间的大小同样影响泛化。M越大要在同样置信度下得到一个好的误差界需要的N就越大。反过来如果假设空间小到只有一个h那问题退化成单纯的抽样估计最干净也最安全。2.4 一个可以直接抄的样本量估算小工具把上面的不等式稍作变形可以在给定置信度δ、容忍度ε和假设空间大小M时解出所需的最小样本量N ≥ (1 / (2ε²)) × ln(2M / δ)假设M100ε0.05δ0.05也就是希望以95%的把握保证训练误差和真实误差偏差不超过5个百分点代入计算N≥(1/0.005)×ln(4000)≈200×8.29≈1658。也就是说大约1700个样本能撑起一个大小100的假设空间。如果M1000其他不变N≈(200)×ln(40000)≈200×10.6≈2120。可以看到把假设空间扩大十倍样本量只需要增加约三分之一。这说明“小假设空间中等数据”这条路比“大假设空间小数据”稳得多。这段逻辑可以用一小段代码兜住方便实际估数时直接套import math def min_samples(eps0.05, delta0.05, M100): # 基于Hoeffding union bound的保守估算 return math.ceil((1 / (2 * eps**2)) * math.log(2 * M / delta)) print(min_samples()) # 1658 print(min_samples(M1000)) # 2121 print(min_samples(eps0.03, delta0.05, M100)) # 4602这个估法很保守因为它不依赖数据分布的任何性质。真实场景下模型往往比这个界好用得多但它能给你一个绝对不至于翻车的下限感。见到那种几千样本就要训几千万参数模型的项目跑一下这段代码心里就该有数了。3. 假设空间无穷大时怎么办VC维把无限数成行为3.1 连续参数让M变成无穷大联合界失效上一节的结论有一个明显的软肋M必须是有限的。但实际模型里没有几个假设空间是有限的。一个最简单的线性分类器权重是连续实数候选函数就是无穷多个。M变成无穷大之后2Mexp(-2ε²N)这个界直接发散什么都不剩了。所以要让理论继续有效需要一个更精细的工具来刻画假设空间的复杂度。它不能数参数的个数因为实参数有无穷多个它需要数的是假设空间在有限个样本上能表现出多少种不同的行为。这个工具就是VC维。3.2 打碎是什么意思用二维直线划3个点和4个点的故事先看概念。一个大小为N的数据集合D如果假设空间H能实现D上全部2^N种标签分配就叫H能打碎D。VC维就是H能打碎的最大集合的大小。举个例子。考虑二维平面上的直线分类器。取3个不共线的点它们组成一个三角形。无论给这三个点分配什么样的标签组合全同、一对一异、全异共8种你总能找到一条直线把两类分开。无论哪个角上的点被单独标成A、另外两个标成B都可以做到。所以三个点能被直线分类器打碎。再取4个点假设它们构成一个凸四边形。考虑一种特殊的标签分配把对角线方向的两个点标成A另外两个对角点标成B。尝试用一条直线去分开这两种标签。同色的两个点位于对角从几何上很容易看出任何一条直线都无法在不打穿四边形的情况下把两个对角点归到同一边。换句话说这4个点的某一种二分法无法被直线实现所以4个点的集合不能被直线分类器打碎。结论是二维空间里线性分类器的VC维等于3。不是因为它有3个参数——从参数个数推VC维是一个常见的误区——而是因为它能打碎的最大点集是3。这个例子值得反复咀嚼VC维不是数有多少个可调旋钮而是数假设空间在有限样本上的行为种类上限。3.3 生长函数与VC维的泛化界把行为种类这个概念正式化就是生长函数m_H(N)表示假设空间H在任意N个点上最多能产生多少种二分法。前面已经铺垫了线性分类器的行为种类不是指数级的全部2^N而是另一个量级。VC维有限时生长函数会被一个多项式上界压住m_H(N)的量级大致是N的d次方这里d就是VC维。把生长函数代入类似Hoeffding的推导会得到一个带VC维的泛化误差界这里是简化形式E_out(h) ≤ E_in(h) O(sqrt((d * ln(N) ln(1/δ)) / N))这个式子透露出两个重要信息。第一泛化差距随样本量N的增长而缩小但缩小的速度是平方根量级不是线性的。第二模型复杂度d出现在分子上d越大要达到同样的泛化差距样本量就要相应变大。这就是样本量要远大于模型有效复杂度这句话的数学出处。3.4 常见二元分类器的VC维直觉看完上面的推导应该能记住几个典型数字。d维空间里的线性分类器VC维是d1。所以在一维数轴上线性分界的VC维是2在二维平面是3在100维特征空间里就是101。复杂一点决策树的有效复杂度更像叶子节点数在起主导作用树越深行为种类越多。K近邻分类器在样本有限时行为种类有限但它对距离函数极其敏感实际复杂度不能只看K。把这些数字放在一张表里能建立基本的直觉模型类型VC维量级需要的样本量经验一维阈值分类器2几十到几百二维线性分类器3几百d维线性分类器d1数倍于特征数到几十倍特征数深度决策树随叶子数指数增长需要正则化或剪枝配合深度神经网络极高百万级或更高实践中远低于理论值见下节这张表最反直觉的地方在最后一行。深度神经网络的VC维理论值高得吓人按上一节的公式需要的样本量应该是天文数字可实际工程里几百万参数的模型用几十万样本往往就能工作得很好。这种理论和实践的脱节不是理论错了而是理论给的是最坏情况下的上界现实世界有太多结构让模型不必走到那个最坏情形。4. 理论预告的翻车为什么没有发生深度模型的未被解释之谜4.1 VC维极高的模型应该过拟合但它没有仔细想想上一节末尾的矛盾。假设一个二分类卷积网络有几百万参数如果它的行为种类真有那么多种想在训练集上做到低错误率但同时保持小泛化差距需要的样本量恐怕要远超现实。可我们自己都见过图像分类模型在几十万样本上训练测试效果相当好。为什么核心原因是理论上的VC维计算通常默认模型可以自由地在整个假设空间里游荡。但实际的训练过程被优化算法、初始化方式、数据分布和有限精度共同锁死在了一个非常窄的子空间里。真正起作用的不是理论VC维而是这个被锁定的有效复杂度。4.2 隐式正则化SGD偏好的简单解随机梯度下降SGD不只是找最小化训练误差的参数它在参数空间中走的路径是有强烈偏好的。实验反复观察到用SGD训练出来的解往往落在一些平滑的、低有效复杂度的区域而这些区域对应着更好的泛化性。一个很直接的证据是同样一个模型用不同的随机种子初始化训练出的模型在训练集上的表现几乎一样好但在测试集上却存在真实的差距改变学习率、批次大小这些训练细节也能显著影响测试误差。这说明训练过程本身就是一个复杂度的过滤器。虽然理论上模型能表达一个极其曲折的决策边界SGD的实际偏好让它在刚好够分和复杂到不可泛化之间选择了前者。这也是为什么一个参数量很大的模型配合适当的early stopping和权重衰减泛化性能通常优于一个刚好够用的浅层模型——只要你有手段压制它的有效复杂度。4.3 数据的结构帮了大忙不是均匀噪声另一个常被忽视的点是真实数据不是均匀撒在空间里的随机点。以图片分类为例所有猫的图片落在高维像素空间的一个极窄流形附近垃圾邮件的特征向量分布在一些特征组合占据的主导区域。类别不是随机混杂的而是天然具有聚类和结构。这对打碎能力是一个致命限制。VC维计算假设任意布点、任意标签都要能实现但真实数据里绝大多数标签分配根本不会出现。一个模型在结构化的数据上想实现的行为种类远远小于理论上限。这就像说一个人能背下一整本字典但实际生活中只需要几百个常用词——能力上限和实际使用量之间隔着巨大的距离。4.4 对调参的实际启发别被理论悲观值吓到也别完全无视它。实践中的正确姿态是用VGG、ResNet这类大模型时不要一上来就裸跑先用小模型验证数据是否可分如果小模型验证误差降不下去再上大模型大模型配合数据增强、weight decay、early stopping一起用观察验证误差和训练误差的剪刀差是否被控制住。我自己的经验是当训练误差降得很好、验证误差却不降时不要急着换模型先用更强的正则化把训练误差压回去一点往往验证误差反而会掉下来。这个操作的理论源头就是本章讲的有效复杂度控制。一个VC维极高的模型做过度自信的拟合远不如一个被正则化稳住的模型好用。5. 可行是有条件的工程中容易被忽略的四个前提5.1 IID假设与分布漂移以上所有理论推导都建立在训练样本独立同分布地来自某个固定分布这一前提上。可一旦模型上线面对的真实数据分布几乎必然和训练分布不完全一致。典型的场景用户行为习惯随季节变化、传感器的布置方式变化、业务策略调整导致标签定义变化。分布漂移会让理论上可行瞬间落空。数学保证说的是在同一个分布下抽样而不是在一个相似分布下抽样。对付漂移工程上的常规动作是持续监控输入特征的分布和预测结果的分布设定阈值来感知漂移。漂移检测到之后通常要靠增量训练或定期重训来把模型拉回正轨。任何宣称模型已经稳定的话都要先问一句你是拿过去的分布证明未来的稳定5.2 类别不平衡时的评价陷阱二元分类里最容易骗到人的指标是准确率。假设99%的样本是负类一个永远预测负类的废柴模型也能拿到99%的准确率。这时候模型可行的证明就不成立了——它什么都没学到只是踩对了先验概率。工程上处理不平衡问题常见做法有三板斧。第一换指标在精确率、召回率、F1分数、AUC之间选一个能反映业务真实诉求的组合。第二重采样对少数类过采样或对多数类欠采样也可以给两类样本配不同的loss权重。第三评估时使用分层交叉验证保证每一折都保持和整体一致的类别比例。指标关注点适用场景准确率全体预测正确的比例类别均衡时可用精确率预测为正的样本中有多少属实误判代价高的场景召回率真实为正的样本有多少被找到漏检代价高的场景F1精确率和召回率的调和平均两者都重要的场景AUC排序能力排序不依赖阈值阈值未定的场景这几种指标背后对应着完全不同的业务取舍。做反欺诈时漏掉一笔坏账的代价远高于误伤一笔好交易所以召回率得优先做精准推荐时用户讨厌垃圾广告精确率更重要。模型好坏从来不是一个数学问题而是一个业务权衡问题。5.3 评估本身也有噪声交叉验证的正确姿势用一次固定的训练集/测试集划分来评估模型方差非常大尤其是数据量不大时。你今天换一个随机种子划分数据AUC可能上下浮动好几个点。就这一点浮动足以让两个模型排名的先后关系颠倒。可靠的做法是K折交叉验证。把数据分成K份轮流拿一份当验证集其余当训练集重复K次得到K个测试指标。报告它们的均值和标准差。更进一步可以重复整个K折过程多次取更稳定的分布估计。样本量小于几千时我推荐用分层K折而不是随机划分避免某一折里恰好没有少数类样本。这样评估出来的指标才值得写进汇报里因为你自己知道这个数字的可信区间在哪里。5.4 上线之后监控、重训与一把压箱底的holdout集最后一个工程心得是从一次次的线上事故里换来的。把一部分数据锁起来只在模型发布前测一次。这个holdout集不能参与任何训练过程中的选择否则它实际上变成了另一个验证集指标会被乐观偏差污染。上线后要做的是持续记录预测分布、特征分布和关键业务指标。某天发现输入特征里某个字段的取值分布突然变了或者模型输出的正类比例从5%跳到了20%即使准确率指标还没崩也要立刻警觉。出现这种情况通常先回看数据管道是不是出了问题再考虑业务规则是否变化最后才轮到要不要重新训练模型。我自己有一个习惯训练时把样本里的特征缺失情况、类别比例、关键特征的均值方差都存档上线后定期拿来和线上特征做对比。差异超过一定阈值就发出告警。这是从看训练集表现到看生产环境表现的关键一步也是所有理论论证在工程上真正落地的最后防线。说起来我见过太多团队把精力全花在模型结构、学习率、Batch Size这些细节上最后翻车的点都在数据分布和样本代表性上。理解了整套可行性论证之后我看模型的角度彻底变了先确认训练集和未来数据来自同一分布再算清楚样本量撑不撑得起模型复杂度最后才轮到算法层面的调参。这个顺序几乎从不出错。

相关新闻

中文RAG检索优化:用jieba构建通用分词方案,提升召回率

中文RAG检索优化:用jieba构建通用分词方案,提升召回率

当年我接手第一个RAG项目时,满脑子都是嵌入模型选型和向量库调参,完全没把分词当一回事。结果上线后被检索质量按在地上摩擦:用户问“账号被锁定怎么办”,库里文档写的是“登录异常导致账户无法使用”,我调了一周向量相…

2026/10/17 11:16:21 阅读更多 →
Prompt工程与Pandas结合:用自然语言驱动数据分析

Prompt工程与Pandas结合:用自然语言驱动数据分析

1. 先搞明白Prompt和Pandas是怎么配合的1.1 Prompt不只是"问问题"我最早接触到"提示词"这个概念的时候,和大多数人一样,觉得它就是跟AI聊天时输入的那句话。后来做得多了才发现,Prompt的准确说法应该是"提示工程&qu…

2026/10/17 11:16:21 阅读更多 →
RIS-PiDiNet替换YOLOv11主干:遥感小目标检测实战

RIS-PiDiNet替换YOLOv11主干:遥感小目标检测实战

刚把一个换上了RIS-PiDiNet主干的YOLOv11在遥感小目标数据集上完整跑完,先给结论:这套改动没有让我失望。标题里写着“CVPR 2026”“全网首发创新”,我不太想去纠结这些标签的真假,单看把像素差分卷积(Pixel Differenc…

2026/10/17 11:15:20 阅读更多 →

最新新闻

三相电信号采集电路设计:从互感器选型到ADC同步采样与相位校准

三相电信号采集电路设计:从互感器选型到ADC同步采样与相位校准

简介:《三相电信号采集电路设计》是一份面向电能质量监测、电力电子装置应用及供电系统运维等场景的技术资料,适合从事电网信号采集、嵌入式硬件设计的工程师与相关专业学生阅读。资源围绕三相电压电流信号的精密采集展开,涵盖互感器选型、频…

2026/10/17 19:27:40 阅读更多 →
SCAS与REPNE/REPE前缀全解:汇编字符串扫描的核心机制

SCAS与REPNE/REPE前缀全解:汇编字符串扫描的核心机制

写汇编的人都知道,字符串处理是这门语言最带劲的领域之一。而SCASB/SCASW这两条指令,配合REPNE/REPE重复前缀,能让你只用一条指令就把“在内存里找个字符 / 找个值 / 找到某个不匹配的位置”这种循环给干完。说实话,当年我第一次在…

2026/10/17 19:27:40 阅读更多 →
用友NC65安装全流程:Oracle表空间与数据源配置实战

用友NC65安装全流程:Oracle表空间与数据源配置实战

简介:这是一份面向用友NC65及NCC高版本实施顾问的完整安装操作手册,专为自学搭建测试环境的新手设计,能解决官网资料零散、上手门槛高的问题。资源为单个doc文档,压缩包仅933KB,便于携带和查阅,内容覆盖从O…

2026/10/17 19:27:40 阅读更多 →
SQL Server 2008误删恢复:简单模式下无备份数据抢救方案

SQL Server 2008误删恢复:简单模式下无备份数据抢救方案

简介:本资源是一份面向SQL Server数据库管理员与运维工程师的实战型数据恢复指南,聚焦SQL Server 2008环境下误删除数据的紧急抢救方案。内容系统梳理了基于事务日志恢复的三大典型场景:当具备完整备份且恢复模式为“完全(Full&am…

2026/10/17 19:27:40 阅读更多 →
DeepSeek Harness插件机制详解:从安装配置到开发实战

DeepSeek Harness插件机制详解:从安装配置到开发实战

1. 插件机制到底解决了什么问题1.1 从“一个能跑的壳”到“一个能干活的工具”DeepSeek Harness(后面我统一叫 dsh)刚装好的时候,它本质上就是一个能加载模型、能对话、能读本地文件的命令行壳子。你问它问题它能答,你让它读个文件…

2026/10/17 19:27:40 阅读更多 →
2026年最新全球AI大模型深度研究报告:用TaoToken统一Key实测主流模型能力边界

2026年最新全球AI大模型深度研究报告:用TaoToken统一Key实测主流模型能力边界

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 19:26:40 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →