基于SVDD算法的数据分类MATLAB仿真:原理、代码与避坑指南
简介本资源为基于SVDD算法的数据分类MATLAB仿真程序包面向机器学习初学者、模式识别课程学习者及需要复现单类分类实验的科研人员帮助理解支持向量数据描述在异常检测与数据分类中的建模流程。包内共16个文件以12个m脚本为核心涵盖核矩阵计算、参数优化、半径缩减、SVDD训练与测试等模块另附3张jpg效果图与1段avi仿真操作录像压缩包约639KB体积轻便便于本地运行。已有374人学习下载说明该仿真在同类算法实践中具有一定参考价值。读者可获得可直接运行的MATLAB2022A工程、逐行中文注释的算法实现、H矩阵与f向量构造等关键步骤的代码细节以及配套录屏演示的完整操作流程便于快速上手并在此基础上修改参数、替换数据集开展自己的分类实验。1. 从一次轴承故障误判说起SVDD 到底在什么场景下比 SVM 好用去年帮一个做旋转机械状态监测的团队排查问题他们用 SVM 做轴承故障二分类训练集里正常样本几千条、故障样本只有几十条交叉验证准确率能到 96%但上线后误报率飙到 30% 以上。翻车的原因不复杂故障样本太少SVM 学出来的分界面严重偏向多数类换个工况、换台设备正常样本的分布稍微一漂移就被划到故障那边去了。这类「单类样本充足、异常样本稀缺甚至没有」的场景正是 SVDDSupport Vector Data Description支持向量数据描述的主场。它不学「正常 vs 异常」的分界而是学一个能把正常样本包住的超球面球外的就判为异常。这篇笔记就围绕「基于 SVDD 算法的数据分类 MATLAB 仿真」这条线把原理、代码、参数、避坑一次讲透适合手上只有正常数据、想做异常检测或单类分类的工程师照着复现。2. SVDD 超球面怎么求从原始问题到对偶求解的完整推导2.1 超球面模型与松弛变量SVDD 的核心目标很直白找一个球心 $a$ 和半径 $R$让尽可能多的正常样本落在球内同时球越小越好。理想情况下约束是 $|x_i - a|^2 \leq R^2$对所有正常样本成立。但真实数据总有噪声和离群点硬约束会导致球被个别野点撑得巨大所以引入松弛变量 $\xi_i \geq 0$ 允许少量样本越界目标函数变成$$\min_{R,a,\xi} \ R^2 C\sum_{i1}^{n}\xi_i$$约束为 $|x_i - a|^2 \leq R^2 \xi_i$$\xi_i \geq 0$。这里的 $C$ 就是那个「必调参数」控制球面光滑程度和允许越界样本数之间的权衡。$C$ 越大越不允许样本越界球越紧容易过拟合$C$ 越小球越松泛化好但可能漏检。2.2 拉格朗日对偶与核函数引入直接解带约束的优化不现实标准做法是构造拉格朗日函数对 $R$、$a$、$\xi_i$ 求偏导并令其为零回代后得到对偶问题$$\max_{\alpha} \sum_i \alpha_i K(x_i,x_i) - \sum_{i,j}\alpha_i\alpha_j K(x_i,x_j)$$约束为 $\sum_i \alpha_i 1$$0 \leq \alpha_i \leq C$。其中 $K$ 是核函数把低维不可分的数据映射到高维让超球面在高维空间里能把数据包住。这一步是 SVDD 能处理非线性分布的关键也是它和普通球形聚类最大的区别。求解后只有 $\alpha_i 0$ 的样本参与球面定义这些就是支持向量$\alpha_i C$ 的是落在球外的边界支持向量。2.3 判定函数与半径计算对任意新样本 $z$判定它是否异常看它到球心的距离是否超过半径$$f(z) |z - a|^2 K(z,z) - 2\sum_i \alpha_i K(z,x_i) \sum_{i,j}\alpha_i\alpha_j K(x_i,x_j)$$半径 $R$ 由任意一个满足 $0 \alpha_i C$ 的支持向量自由支持向量代入求得。实际写代码时不用手推这些MATLAB 里可以用二次规划求解器quadprog直接解对偶问题也可以用现成的工具箱。下面进入实操。3. MATLAB 仿真环境搭建与最小可跑通脚本3.1 环境准备与数据生成先确认 MATLAB 版本R2018b 及以上都支持本文用到的函数。不需要额外工具箱quadprog属于 Optimization Toolbox如果没装可以用fmincon替代或者自己写 SMO 求解。数据我用高斯分布生成两类正常样本集中在原点附近异常样本偏离一段距离模拟真实场景里正常数据多、异常数据少的情况。% gen_data.m 生成SVDD仿真数据 rng(42); % 固定随机种子保证结果可复现 n_normal 300; % 正常样本数量 n_outlier 30; % 异常样本数量仅用于测试不参与训练 % 正常样本二维高斯均值[0,0]协方差0.5 mu_normal [0, 0]; sigma_normal 0.5 * eye(2); X_normal mvnrnd(mu_normal, sigma_normal, n_normal); % 异常样本偏离正常分布均值[3,3] mu_outlier [3, 3]; sigma_outlier 0.3 * eye(2); X_outlier mvnrnd(mu_outlier, sigma_outlier, n_outlier); % 可视化 figure; scatter(X_normal(:,1), X_normal(:,2), 20, b, filled); hold on; scatter(X_outlier(:,1), X_outlier(:,2), 20, r, filled); legend(正常样本, 异常样本); title(SVDD仿真数据分布); xlabel(特征1); ylabel(特征2); grid on;这段代码做了三件事固定随机种子保证每次跑结果一致生成 300 个正常样本和 30 个异常样本画图确认两类数据在空间上确实分得开。参数说明sigma_normal控制正常样本的离散程度值越大球越难包紧mu_outlier决定异常样本偏离多远太近的话 SVDD 也难区分这是数据本身的问题不是算法问题。3.2 高斯核矩阵计算SVDD 用核函数把数据映射到高维最常用的是高斯核RBF 核。核矩阵的每个元素 $K_{ij} \exp(-|x_i - x_j|^2 / (2\sigma^2))$其中 $\sigma$ 是核宽度参数直接决定超球面的形状。% kernel_matrix.m 计算高斯核矩阵 function K kernel_matrix(X, sigma) % X: n x d 样本矩阵n为样本数d为特征维度 % sigma: 高斯核宽度参数 n size(X, 1); % 用欧氏距离平方的向量化计算避免双重循环 sq_dist pdist2(X, X, squaredeuclidean); K exp(-sq_dist / (2 * sigma^2)); end逻辑说明pdist2是 MATLAB 自带的成对距离计算函数squaredeuclidean指定用平方欧氏距离比手写双重循环快一个数量级。参数sigma是 SVDD 里最玄学的参数之一后面避坑章节会专门讲怎么调。核矩阵算完后对角线元素 $K_{ii} 1$这是高斯核的性质对偶问题里的 $\sum_i \alpha_i K(x_i,x_i)$ 就简化成了 $\sum_i \alpha_i$而约束里 $\sum_i \alpha_i 1$所以这一项其实是常数 1优化时可以省掉。3.3 用 quadprog 求解对偶问题对偶问题是一个标准的二次规划最小化 $\frac{1}{2}\alpha^T H \alpha - f^T\alpha$约束 $\sum\alpha_i 1$$0 \leq \alpha_i \leq C$。MATLAB 的quadprog正好能解。% svdd_train.m SVDD训练主函数 function [alpha, R, sv_idx] svdd_train(X, sigma, C) n size(X, 1); K kernel_matrix(X, sigma); % 构造二次规划标准形式: min 0.5*alpha*H*alpha - f*alpha H K; % 对偶问题的二次项就是核矩阵 f diag(K); % 高斯核下f全为1这里保留通用写法 % 约束: sum(alpha) 1 Aeq ones(1, n); beq 1; % 边界: 0 alpha C lb zeros(n, 1); ub C * ones(n, 1); % 求解 options optimoptions(quadprog, Display, off, ... Algorithm, interior-point-convex); alpha quadprog(H, -f, [], [], Aeq, beq, lb, ub, [], options); % 找出支持向量alpha 阈值 tol 1e-6; sv_idx find(alpha tol); % 计算半径R用自由支持向量0 alpha C free_sv find(alpha tol alpha C - tol); if isempty(free_sv) free_sv sv_idx; % 没有自由支持向量时退化为用所有支持向量 end % R^2 K(x_sv,x_sv) - 2*sum(alpha_i*K(x_sv,x_i)) sum(alpha_i*alpha_j*K(x_i,x_j)) R2_list zeros(length(free_sv), 1); for k 1:length(free_sv) idx free_sv(k); R2_list(k) K(idx, idx) - 2 * alpha * K(idx, :); R2_list(k) R2_list(k) alpha * K * alpha; end R sqrt(mean(R2_list)); end逻辑说明H K是因为对偶问题的二次项系数矩阵就是核矩阵f diag(K)在高斯核下恒为 1。quadprog默认求最小值所以目标函数写成0.5*alpha*H*alpha - f*alpha对应最大化f*alpha - 0.5*alpha*H*alpha。参数说明C是惩罚系数典型取值范围在 0.01 到 1 之间样本越多、噪声越大C应该越小sigma是核宽度典型取值是样本间平均距离的 0.5 到 2 倍。free_sv是自由支持向量用它们算出来的 R 更稳定如果为空说明 C 设得太小或数据分布太集中需要调整。3.4 测试与可视化训练完要验证效果用判定函数算每个样本到球心的距离平方和 $R^2$ 比较。% svdd_test.m 测试与可视化 function score svdd_test(X_test, X_train, alpha, sigma, R) K_test kernel_matrix(X_test, sigma); % 测试样本自身核矩阵 K_cross zeros(size(X_test,1), size(X_train,1)); % 计算测试样本与训练样本的核矩阵 for i 1:size(X_test,1) for j 1:size(X_train,1) diff X_test(i,:) - X_train(j,:); K_cross(i,j) exp(-sum(diff.^2) / (2*sigma^2)); end end % 距离平方 K(z,z) - 2*sum(alpha_i*K(z,x_i)) sum(alpha_i*alpha_j*K(x_i,x_j)) K_train kernel_matrix(X_train, sigma); const_term alpha * K_train * alpha; dist2 diag(K_test) - 2 * K_cross * alpha const_term; score dist2 - R^2; % 大于0判为异常 end % 主脚本 sigma 1.0; C 0.1; [alpha, R, sv_idx] svdd_train(X_normal, sigma, C); score_normal svdd_test(X_normal, X_normal, alpha, sigma, R); score_outlier svdd_test(X_outlier, X_normal, alpha, sigma, R); fprintf(正常样本误判为异常的比例: %.2f%%\n, sum(score_normal 0)/length(score_normal)*100); fprintf(异常样本被正确检出的比例: %.2f%%\n, sum(score_outlier 0)/length(score_outlier)*100);逻辑说明score 0表示样本在球外判为异常。正常样本的误判率应该控制在 5% 以内异常样本的检出率越高越好。参数说明sigma 1.0和C 0.1是这组数据的经验值换数据要重新调。跑完这两个指标基本能判断模型是否可用。4. 参数调优与仿真操作录像的录制要点4.1 sigma 和 C 的网格搜索SVDD 的效果对sigma和C极其敏感手动试错效率太低标准做法是网格搜索。评价指标用正常样本误判率FPR和异常样本检出率TPR的平衡或者用 F1 分数。% grid_search.m 参数网格搜索 sigma_list [0.3, 0.5, 0.8, 1.0, 1.5, 2.0]; C_list [0.01, 0.05, 0.1, 0.2, 0.5]; best_f1 0; best_sigma 0; best_C 0; for s sigma_list for c C_list [alpha, R, ~] svdd_train(X_normal, s, c); sc_n svdd_test(X_normal, X_normal, alpha, s, R); sc_o svdd_test(X_outlier, X_normal, alpha, s, R); tp sum(sc_o 0); fn sum(sc_o 0); fp sum(sc_n 0); tn sum(sc_n 0); precision tp / (tp fp eps); recall tp / (tp fn eps); f1 2 * precision * recall / (precision recall eps); if f1 best_f1 best_f1 f1; best_sigma s; best_C c; end end end fprintf(最优参数: sigma%.2f, C%.2f, F1%.4f\n, best_sigma, best_C, best_f1);逻辑说明双重循环遍历参数组合每组训练一次 SVDD 并计算 F1记录最优。参数说明sigma_list的范围根据数据尺度定样本间平均距离在 1 左右时sigma 取 0.3 到 2 比较合理C_list从 0.01 到 0.5样本噪声大就往小取。这个搜索过程计算量不小300 个样本、30 组参数大概跑几十秒样本上万的话建议用并行或者随机搜索。4.2 仿真操作录像的录制流程标题里提到「包含仿真操作录像」这是给需要复现的人看的录制时有几个要点。第一录之前把脚本按功能拆成独立文件gen_data.m、kernel_matrix.m、svdd_train.m、svdd_test.m、main.m每个文件开头写清楚输入输出和参数含义。第二录制时先跑一遍完整流程让观众看到从数据生成到结果输出的全过程再分段讲解每个函数的逻辑。第三中文注释要覆盖关键行尤其是核矩阵计算、二次规划构造、半径求解这三处这是 SVDD 最容易看懵的地方。第四录像里把参数调优的过程也录进去展示 sigma 和 C 变化时超球面怎么变比只讲结论直观得多。常见做法是用 MATLAB 自带的屏幕录制或者 OBS分辨率 1080p 足够重点是把命令行窗口和代码编辑器同时框进去。5. 避坑与排查SVDD 仿真里最容易翻车的 5 个地方5.1 现象所有样本都被判为正常异常检出率为 0原因C设得太大或者sigma设得太小超球面被撑得极大把所有样本都包进去了。这是新手最常踩的坑因为默认参数往往不适合当前数据尺度。解决先把C降到 0.01 到 0.05 之间再把sigma调到样本间平均距离的 1 倍左右。用网格搜索确认不要凭感觉。另外检查数据是否做了归一化不同特征量纲差太多会导致核矩阵计算失真。5.2 现象正常样本误判率超过 20%模型过于敏感原因C太小或者sigma太大超球面收得太紧正常样本的噪声点被推到球外。数据本身如果方差大这个问题更明显。解决适当增大C到 0.1 到 0.3或者减小sigma。如果数据噪声确实大考虑先做降噪或者特征选择把无关特征去掉再训练。SVDD 对特征质量很敏感喂进去一堆噪声特征调参也救不回来。5.3 现象quadprog 报错「目标函数非凸」或求解失败原因核矩阵不是严格正定的数值误差导致H出现负特征值。样本量很大或者有重复样本时容易出现。解决给核矩阵对角线加一个很小的正则项H K 1e-8 * eye(n)保证正定。或者换用fmincon配合 SQP 算法鲁棒性更好但慢一些。样本重复的话先去重。5.4 现象训练集表现好换一批测试数据效果暴跌原因sigma和C是在训练集上调的过拟合了。SVDD 虽然比 SVM 抗过拟合但参数调过头一样会翻车。解决留出一部分正常样本做验证集参数在验证集上选。如果数据分布会随时间漂移考虑增量更新或者滑动窗口重新训练。别指望一组参数打天下。5.5 现象支持向量数量接近样本总数训练极慢原因C设得太大几乎所有样本都成了支持向量对偶问题规模没降下来。SVDD 的优势之一就是稀疏性支持向量通常只占样本的 5% 到 20%。解决减小C让更多样本的alpha落到 0。如果减小C后效果变差说明数据本身边界模糊考虑换核函数或者先做特征工程。支持向量比例超过 50% 基本说明参数没调好。6. 从仿真到落地用 ROC 曲线选阈值和增量更新技巧仿真跑通只是第一步真正落地时判定阈值不一定用 $R$因为 $R$ 对支持向量的选择敏感换一组自由支持向量算出来的 $R$ 可能有波动。更稳的做法是算所有训练样本的score画 ROC 曲线根据业务能接受的误报率反推阈值。比如设备监测场景误报一次要派人去现场成本高那就把阈值往保守了调宁可漏检也别误报如果是安全相关的场景那就反过来。MATLAB 里用perfcurve函数几行就能画出来% 用训练样本的score和真实标签画ROC labels [ones(length(score_normal),1); zeros(length(score_outlier),1)]; scores [score_normal; score_outlier]; [X, Y, T, AUC] perfcurve(labels, scores, 1); fprintf(AUC %.4f\n, AUC); % 根据业务需求选阈值找FPR5%对应的阈值 idx find(X 0.05, 1, last); threshold T(idx);这段代码把正常样本标为 1、异常样本标为 0perfcurve返回的X是假正率、Y是真正率、T是对应阈值。AUC低于 0.85 说明模型区分度不够得回去查数据或调参。选阈值时不要只看 AUC 最大点要看业务能承受的误报率idx那行就是找 FPR 不超过 5% 时对应的阈值。另一个实战技巧是增量更新。设备运行数据是持续产生的不可能每次重新训练。做法是保留支持向量和对应的alpha新数据来了先算score如果在球内就跳过如果在球外就加入训练集重新求解。这样计算量只和支持向量数量相关比全量重训快得多。我一般会设一个缓冲区攒够 50 个新样本或者每周触发一次更新避免频繁重训拖垮系统。最后说个血泪教训SVDD 的仿真代码网上一搜一大把但很多没做数据归一化、没固定随机种子、没留验证集跑出来的结果看着漂亮换数据就废。我现在的习惯是任何 SVDD 项目先写三行——归一化、固定种子、划分验证集这三步不做后面调参全是白费功夫。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

【厦门大学主办、IEEE出版】第六届人工智能、机器人和通信国际会议(ICAIRC 2026)

【厦门大学主办、IEEE出版】第六届人工智能、机器人和通信国际会议(ICAIRC 2026)

第六届人工智能、机器人与通信国际会议(ICAIRC 2026)将于2026年11月13日至15日在中国厦门举办。本次会议旨在搭建一个高水平学术交流平台,汇聚全球人工智能、机器人及通信领域的专家学者、工程技术人员与研发人员,分享前沿研究成果…

2026/10/12 0:45:23 阅读更多 →
塔吊下方站人检测数据集:VOC标注与YOLOv8实战指南

塔吊下方站人检测数据集:VOC标注与YOLOv8实战指南

简介:这份资源面向从事工地安全监控、目标检测算法开发的研究者与工程师,提供塔吊下方站人检测任务的图像数据集,用于训练和验证识别塔吊作业区域人员的视觉模型,降低误入危险区域引发事故的风险。压缩包共2000个文件,…

2026/10/12 0:45:23 阅读更多 →
如何把“无可挑剔”变成可执行的工作清单?标准定义与流程复盘实战

如何把“无可挑剔”变成可执行的工作清单?标准定义与流程复盘实战

“impeccable”这个词,我盯着看了很久。它不像是那种一眼就能猜出功能的标题,恰恰是这种“不直白”,让我当时决定把这个项目做下去。一年多时间,从零开始摸索到产出稳定,今天想把这个过程中关于“如何把一件事做到无可…

2026/10/12 0:45:23 阅读更多 →

最新新闻

一条命令让 AI Agent 具备逆向工程能力:REA 快速上手

一条命令让 AI Agent 具备逆向工程能力:REA 快速上手

一条命令让 AI Agent 具备逆向工程能力:REA 快速上手 【免费下载链接】rea Reverse engineer anything with agents, from app behavior down to native binaries. 项目地址: https://gitcode.com/GitHub_Trending/rea2/rea REA(Reverse Engineer…

2026/10/12 1:36:52 阅读更多 →
InterviewGuide 刷题笔记:LeetCode 225 用队列实现栈——双队列与单队列解法详解

InterviewGuide 刷题笔记:LeetCode 225 用队列实现栈——双队列与单队列解法详解

文档教程知识库 【免费下载链接】InterviewGuide 🔥🔥「InterviewGuide」是阿秀从校园->职场多年计算机自学过程的记录以及学弟学妹们计算机校招&秋招经验总结文章的汇总,包括但不限于C/C 、Golang、JavaScript、Vue、操作系统、数据结…

2026/10/12 1:36:52 阅读更多 →
Koharu 运行时同步技能解析:用编码 Agent SKILL 维护 llama.cpp 与 stable-diffusion.cpp 绑定

Koharu 运行时同步技能解析:用编码 Agent SKILL 维护 llama.cpp 与 stable-diffusion.cpp 绑定

【免费下载链接】koharu ML-powered manga translator, written in Rust. 项目地址: https://gitcode.com/gh_mirrors/ko/koharu 点击查看 免费下载 本文围绕 Koharu 仓库中面向编码 Agent 的 runtime 技能(.agents/skills/runtime/SKILL.md&#xff09…

2026/10/12 1:36:52 阅读更多 →
蓝鲸配置平台(bk-cmdb)批量创建项目接口 batch_create_project 实战指南

蓝鲸配置平台(bk-cmdb)批量创建项目接口 batch_create_project 实战指南

后端企业应用运维 【免费下载链接】bk-cmdb 蓝鲸智云配置平台(BlueKing CMDB) 项目地址: https://gitcode.com/gh_mirrors/bk/bk-cmdb 点击查看 免费下载 本篇以 docs/apidoc/apigw/open/en/batch_create_project.md 为核心,结合 bk-cmdb 源码&#xff…

2026/10/12 1:36:52 阅读更多 →
浏览器里剪视频成真了:FilmCraft Web 版架构全拆解(WebCodecs + OPFS)

浏览器里剪视频成真了:FilmCraft Web 版架构全拆解(WebCodecs + OPFS)

浏览器里剪视频成真了:FilmCraft Web 版架构全拆解(WebCodecs OPFS) 【免费下载链接】filmcraft An open-source, clean-room reimplementation of Adobe Premiere Pro built in pure Rust. 项目地址: https://gitcode.com/gh_mirrors/fi/…

2026/10/12 1:36:52 阅读更多 →
指针模块总结

指针模块总结

1.指针的认识和应用int val 0 char* a &val; char* *b &a; //指针就是取地址,分指针等级 char* pa,pb; //pa是char* pb是char char* pa,*pb; //pa pb都是char* typedef; 是对变量进行重命名 // typedef char* PChar PChar pa,pb char* pa,*pb 变量名升…

2026/10/12 1:35:51 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →