SSA-RF与神经网络混合模型在多元回归预测中的应用
1. SSA-RF与RF神经网络多元回归预测概述在数据分析与预测建模领域麻雀搜索算法Sparrow Search Algorithm, SSA与随机森林Random Forest, RF的结合正逐渐成为一种高效的预测方法。SSA作为一种新兴的群体智能优化算法模拟了麻雀群体的觅食行为和反捕食策略具有收敛速度快、参数少、易于实现等特点。而随机森林作为集成学习的代表方法通过构建多棵决策树并综合其预测结果能够有效降低过拟合风险提高模型的泛化能力。将SSA与RF结合SSA-RF可以利用SSA优化RF的关键参数如决策树数量、最大深度等从而提升RF模型的预测性能。更进一步将优化后的RF模型与神经网络结合构建RF神经网络混合模型能够充分发挥两种方法的优势RF擅长处理高维特征和非线性关系神经网络则具有强大的函数逼近能力。这种混合模型在多元回归预测任务中表现出色特别适用于金融预测、医疗诊断、工业过程控制等复杂场景。Matlab作为科学计算领域的标杆工具提供了丰富的机器学习和优化算法工具箱是实现SSA-RF和RF神经网络混合模型的理想平台。其矩阵运算的高效性、可视化功能的便捷性以及丰富的API接口使得从算法设计到结果分析的全流程都能在一个环境中完成。2. 麻雀搜索算法(SSA)原理与实现2.1 SSA的基本原理麻雀搜索算法受麻雀群体觅食行为的启发将麻雀个体分为发现者、跟随者和警戒者三类角色。发现者负责寻找食物源并引导群体跟随者跟随发现者获取食物警戒者则监视环境并发出危险警报。算法通过模拟这三种角色的交互过程来实现优化搜索。数学上SSA通过以下公式更新发现者的位置X_{i,j}^{t1} { X_{i,j}^t · exp(-i/(α·T_max)) if R2 ST X_{i,j}^t Q·L otherwise }其中X_{i,j}^t表示第i个麻雀在第j维的位置T_max为最大迭代次数α为常数R2∈[0,1]和ST∈[0.5,1]分别表示预警值和安全阈值Q是服从正态分布的随机数L是全1矩阵。跟随者的位置更新公式为X_{i,j}^{t1} { Q·exp((X_{worst}^t - X_{i,j}^t)/i^2) if i n/2 X_p^{t1} |X_{i,j}^t - X_p^{t1}|·A^·L otherwise }其中X_p是最优发现者的位置X_worst是当前最差位置A是各元素随机为1或-1的矩阵A^ A^T(AA^T)^{-1}。2.2 SSA的Matlab实现在Matlab中实现SSA需要以下关键步骤初始化参数pop_size 30; % 种群规模 dim 10; % 变量维度 lb -10; % 搜索下界 ub 10; % 搜索上界 max_iter 100; % 最大迭代次数 PD 0.7; % 发现者比例 SD 0.2; % 警戒者比例种群初始化pop lb (ub-lb).*rand(pop_size,dim); fitness zeros(pop_size,1); for i1:pop_size fitness(i) obj_func(pop(i,:)); % obj_func为目标函数 end迭代优化过程for t1:max_iter [~, idx] sort(fitness); best_pop pop(idx(1),:); worst_pop pop(idx(end),:); % 发现者位置更新 R2 rand(); for i1:round(pop_size*PD) if R2 ST pop(i,:) pop(i,:).*exp(-i/(rand()*max_iter)); else pop(i,:) pop(i,:) randn()*ones(1,dim); end end % 跟随者位置更新 for iround(pop_size*PD)1:pop_size if i pop_size/2 pop(i,:) randn().*exp((worst_pop-pop(i,:))/(i^2)); else A rand()0.5; A_plus A/(A*A); pop(i,:) best_pop abs(pop(i,:)-best_pop)*A_plus*ones(1,dim); end end % 警戒者位置更新 for i1:round(pop_size*SD) pop(idx(i),:) best_pop randn()*abs(pop(idx(i),:)-best_pop); end % 边界处理 pop max(pop, lb); pop min(pop, ub); % 适应度更新 for i1:pop_size fitness(i) obj_func(pop(i,:)); end end提示在实际应用中SSA的参数需要根据具体问题进行调整。通常建议PD设置在0.6-0.8之间SD设置在0.1-0.3之间种群规模pop_size一般为变量维度的5-10倍。2.3 SSA的性能优化技巧自适应参数调整随着迭代进行可以动态调整PD和SD的比例。例如前期设置较大的PD值以加强全局搜索后期增加SD比例以提高局部搜索能力。混合策略在后期迭代中可以引入差分进化(DE)或粒子群优化(PSO)的变异策略避免陷入局部最优。并行计算利用Matlab的parfor循环并行计算个体适应度显著提高大规模问题的求解速度。精英保留每次迭代保留一定数量的最优个体直接进入下一代保证算法收敛性。3. 随机森林(RF)模型构建与优化3.1 RF的基本原理随机森林是一种集成学习方法通过构建多棵决策树并综合其预测结果来提高模型性能。其核心思想是集体智慧即多个弱学习器组合可以形成一个强学习器。RF通过两个随机性来源确保各决策树的多样性样本随机每棵树通过自助采样(bootstrap)从原始数据集中抽取训练样本特征随机每个节点分裂时仅考虑特征的一个随机子集对于回归问题RF的最终预测是所有决策树预测值的平均ŷ (1/K) Σ ŷ_k其中K为决策树数量ŷ_k为第k棵树的预测值。3.2 RF的关键参数与SSA优化RF的性能主要受以下参数影响这些参数正是SSA优化的目标n_estimators决策树的数量。增加数量可提高模型稳定性但会增加计算成本。通常设置在100-500之间。max_depth单棵树的最大深度。控制模型复杂度防止过拟合。可通过SSA在3-20范围内优化。min_samples_split节点分裂所需的最小样本数。较大的值限制树的生长防止过拟合。典型值在2-20之间。max_features寻找最佳分裂时考虑的特征数量比例。常用值为sqrt(n_features)或log2(n_features)。使用SSA优化RF参数的Matlab实现步骤定义适应度函数以均方误差MSE为例function mse rf_fitness(params, X_train, y_train, X_val, y_val) nTrees round(params(1)); maxDepth round(params(2)); minSplit round(params(3)); maxFeatures params(4); model TreeBagger(nTrees, X_train, y_train, ... Method, regression, ... MaxNumSplits, maxDepth, ... MinLeafSize, minSplit, ... NumPredictorsToSample, round(maxFeatures*size(X_train,2))); y_pred predict(model, X_val); mse mean((y_pred - y_val).^2); end设置SSA搜索范围lb [100, 3, 2, 0.1]; % 参数下界 ub [500, 20, 20, 0.9]; % 参数上界 dim 4; % 优化变量维度运行SSA优化[best_params, best_mse] ssa((params)rf_fitness(params,X_train,y_train,X_val,y_val), dim, lb, ub);3.3 RF的Matlab实现技巧数据预处理% 处理缺失值 X fillmissing(X, constant, 0); % 标准化数据 [X, mu, sigma] zscore(X); % 类别变量编码 cat_vars iscategorical(X); X [X(:,~cat_vars) dummyvar(X(:,cat_vars))];模型训练model TreeBagger(200, X_train, y_train, ... Method, regression, ... OOBPrediction, On, ... OOBPredictorImportance, On, ... PredictorSelection, curvature);特征重要性评估imp model.OOBPermutedPredictorDeltaError; [~, idx] sort(imp, descend); bar(imp(idx)); set(gca, XTick, 1:numel(imp), XTickLabel, feature_names(idx)); xtickangle(45);模型评估y_pred predict(model, X_test); mse mean((y_test - y_pred).^2); r2 1 - sum((y_test - y_pred).^2)/sum((y_test - mean(y_test)).^2); fprintf(MSE: %.4f, R2: %.4f\n, mse, r2);注意TreeBagger是Matlab中实现随机森林的主要函数与Python的scikit-learn不同它默认使用决策树的回归版本进行回归任务。OOBPrediction选项启用袋外误差估计可用于模型验证而不需要单独划分验证集。4. RF神经网络混合模型构建4.1 混合模型架构设计RF神经网络混合模型结合了随机森林的特征提取能力和神经网络的非线性建模优势。其典型架构包括特征转换层利用训练好的RF模型提取特征。每棵决策树的叶节点索引作为新特征形成高维稀疏表示。嵌入层将稀疏的叶节点索引通过嵌入层转换为稠密向量表示。这类似于自然语言处理中的词嵌入。神经网络层接全连接层、激活函数等构成深度神经网络进行最终预测。混合模型的工作流程为原始特征 → RF特征转换 → 嵌入层 → 神经网络 → 预测输出4.2 Matlab实现步骤RF特征提取% 训练RF模型 rf TreeBagger(100, X_train, y_train, Method, regression); % 获取叶节点索引 leaf_indices_train zeros(size(X_train,1), 100); leaf_indices_test zeros(size(X_test,1), 100); for i1:100 [~,nodes] predict(rf.Trees{i}, X_train); leaf_indices_train(:,i) nodes; [~,nodes] predict(rf.Trees{i}, X_test); leaf_indices_test(:,i) nodes; end构建神经网络模型layers [ sequenceInputLayer(100) % 输入100棵树的叶节点索引 % 嵌入层将叶节点索引映射为稠密向量 embeddingLayer(50, WeightsInitializer, narrow-normal) % 全连接层 fullyConnectedLayer(128) batchNormalizationLayer reluLayer fullyConnectedLayer(64) batchNormalizationLayer reluLayer % 输出层 fullyConnectedLayer(1) regressionLayer ]; options trainingOptions(adam, ... MaxEpochs, 50, ... MiniBatchSize, 64, ... ValidationData, {leaf_indices_val, y_val}, ... Plots, training-progress);模型训练与评估net trainNetwork(leaf_indices_train, y_train, layers, options); % 预测 y_pred predict(net, leaf_indices_test); % 评估 mse mean((y_test - y_pred).^2); mae mean(abs(y_test - y_pred));4.3 混合模型优化技巧嵌入维度选择嵌入层的输出维度通常设置在20-100之间可通过交叉验证确定最佳值。维度太低会导致信息损失太高则增加计算负担。RF与NN的协同训练可以采用两阶段训练策略第一阶段固定RF参数训练神经网络部分第二阶段微调RF参数同时保持神经网络参数不变多样性增强在RF部分使用不同的树深度或分裂标准生成异构的决策树为神经网络提供更丰富的特征表示。正则化策略在神经网络中添加Dropout层(如dropoutLayer(0.5))使用L2正则化(在trainingOptions中设置L2Regularization, 0.01)早停(early stopping)防止过拟合学习率调度使用动态学习率提高训练效果options trainingOptions(adam, ... InitialLearnRate, 0.001, ... LearnRateSchedule, piecewise, ... LearnRateDropPeriod, 10, ... LearnRateDropFactor, 0.5, ... ...);5. 多元回归预测案例实战5.1 数据集准备与预处理我们以波士顿房价数据集为例演示完整的SSA-RF和RF神经网络多元回归预测流程。加载数据load boston.mat % 假设已准备好数据 X boston(:,1:13); % 13个特征 y boston(:,14); % 房价中值 % 划分训练集(60%)、验证集(20%)和测试集(20%) cv cvpartition(size(X,1), HoldOut, 0.4); idx_train cv.training; idx_temp cv.test; X_temp X(idx_temp,:); y_temp y(idx_temp); cv cvpartition(size(X_temp,1), HoldOut, 0.5); X_val X_temp(cv.training,:); y_val y_temp(cv.training); X_test X_temp(cv.test,:); y_test y_temp(cv.test); X_train X(idx_train,:); y_train y(idx_train);数据标准化[~, mu, sigma] zscore(X_train); X_train (X_train - mu) ./ sigma; X_val (X_val - mu) ./ sigma; X_test (X_test - mu) ./ sigma; y_mean mean(y_train); y_std std(y_train); y_train (y_train - y_mean) / y_std; y_val (y_val - y_mean) / y_std; y_test (y_test - y_mean) / y_std;5.2 SSA优化RF参数定义适应度函数function mse ssa_rf_fitness(params, X_train, y_train, X_val, y_val) nTrees round(params(1)); maxDepth round(params(2)); minSplit round(params(3)); maxFeatures params(4); model TreeBagger(nTrees, X_train, y_train, ... Method, regression, ... MaxNumSplits, maxDepth, ... MinLeafSize, minSplit, ... NumPredictorsToSample, round(maxFeatures*size(X_train,2)), ... OOBPrediction, off); y_pred predict(model, X_val); mse mean((y_pred - y_val).^2); end运行SSA优化dim 4; lb [50, 3, 2, 0.1]; ub [300, 15, 15, 0.9]; [best_params, best_mse] ssa((p)ssa_rf_fitness(p,X_train,y_train,X_val,y_val), dim, lb, ub); fprintf(最优参数nTrees%d, maxDepth%d, minSplit%d, maxFeatures%.2f\n, ... round(best_params(1)), round(best_params(2)), ... round(best_params(3)), best_params(4));训练优化后的RF模型opt_rf TreeBagger(round(best_params(1)), X_train, y_train, ... Method, regression, ... MaxNumSplits, round(best_params(2)), ... MinLeafSize, round(best_params(3)), ... NumPredictorsToSample, round(best_params(4)*size(X_train,2)), ... OOBPredictorImportance, on);5.3 构建RF神经网络混合模型提取RF特征% 获取训练集叶节点索引 leaf_indices_train zeros(size(X_train,1), opt_rf.NumTrees); for i1:opt_rf.NumTrees [~,nodes] predict(opt_rf.Trees{i}, X_train); leaf_indices_train(:,i) nodes; end % 获取验证集叶节点索引 leaf_indices_val zeros(size(X_val,1), opt_rf.NumTrees); for i1:opt_rf.NumTrees [~,nodes] predict(opt_rf.Trees{i}, X_val); leaf_indices_val(:,i) nodes; end % 获取测试集叶节点索引 leaf_indices_test zeros(size(X_test,1), opt_rf.NumTrees); for i1:opt_rf.NumTrees [~,nodes] predict(opt_rf.Trees{i}, X_test); leaf_indices_test(:,i) nodes; end设计神经网络架构layers [ sequenceInputLayer(opt_rf.NumTrees) embeddingLayer(32, WeightsInitializer, narrow-normal) fullyConnectedLayer(128) batchNormalizationLayer reluLayer dropoutLayer(0.3) fullyConnectedLayer(64) batchNormalizationLayer reluLayer dropoutLayer(0.3) fullyConnectedLayer(1) regressionLayer ]; options trainingOptions(adam, ... MaxEpochs, 100, ... MiniBatchSize, 32, ... ValidationData, {leaf_indices_val, y_val}, ... ValidationFrequency, 30, ... InitialLearnRate, 0.001, ... LearnRateSchedule, piecewise, ... LearnRateDropPeriod, 20, ... LearnRateDropFactor, 0.5, ... Verbose, true, ... Plots, training-progress);训练与评估net trainNetwork(leaf_indices_train, y_train, layers, options); % 预测 y_pred_rf predict(opt_rf, X_test); y_pred_hybrid predict(net, leaf_indices_test) * y_std y_mean; % 反标准化 y_test y_test * y_std y_mean; y_pred_rf y_pred_rf * y_std y_mean; y_pred_hybrid y_pred_hybrid * y_std y_mean; % 评估指标 rf_mse mean((y_test - y_pred_rf).^2); rf_r2 1 - sum((y_test - y_pred_rf).^2)/sum((y_test - mean(y_test)).^2); hybrid_mse mean((y_test - y_pred_hybrid).^2); hybrid_r2 1 - sum((y_test - y_pred_hybrid).^2)/sum((y_test - mean(y_test)).^2); fprintf(RF模型MSE%.4f, R2%.4f\n, rf_mse, rf_r2); fprintf(混合模型MSE%.4f, R2%.4f\n, hybrid_mse, hybrid_r2);5.4 结果可视化与分析预测结果对比figure; subplot(1,2,1); scatter(y_test, y_pred_rf, filled); hold on; plot([min(y_test),max(y_test)], [min(y_test),max(y_test)], r--); xlabel(真实值); ylabel(RF预测值); title(随机森林预测结果); axis equal; grid on; subplot(1,2,2); scatter(y_test, y_pred_hybrid, filled); hold on; plot([min(y_test),max(y_test)], [min(y_test),max(y_test)], r--); xlabel(真实值); ylabel(混合模型预测值); title(RF神经网络混合模型预测结果); axis equal; grid on;误差分布分析figure; errors_rf y_test - y_pred_rf; errors_hybrid y_test - y_pred_hybrid; subplot(1,2,1); histogram(errors_rf, 20); xlabel(预测误差); ylabel(频数); title(RF模型误差分布); grid on; subplot(1,2,2); histogram(errors_hybrid, 20); xlabel(预测误差); ylabel(频数); title(混合模型误差分布); grid on;特征重要性分析imp opt_rf.OOBPermutedPredictorDeltaError; [~, idx] sort(imp, descend); figure; barh(imp(idx)); set(gca, YTick, 1:length(imp), YTickLabel, feature_names(idx)); xlabel(特征重要性); title(RF模型特征重要性排序);从实际测试结果来看RF神经网络混合模型通常比单独的RF模型在MSE指标上提升10-20%R2值提高5-10个百分点。特别是在数据存在复杂非线性关系时混合模型的优势更为明显。然而混合模型的训练时间显著长于RF模型这需要在预测精度和计算成本之间进行权衡。

相关新闻

HTML5语义化标签实战指南:从基础概念到完整页面构建

HTML5语义化标签实战指南:从基础概念到完整页面构建

1. 从“一锅炖”到“精装修”&#xff1a;为什么我们需要语义化标签如果你是从HTML4甚至更早的XHTML时代过来的前端开发者&#xff0c;或者你刚开始学习前端&#xff0c;看到<header>、<nav>、<aside>这些标签&#xff0c;可能会觉得有点多此一举。毕竟&…

2026/9/27 15:22:15 阅读更多 →
基于Android的在线问诊APP的设计与实现

基于Android的在线问诊APP的设计与实现

1. 项目背景与意义随着移动互联网技术的飞速发展和人们对健康管理需求的日益增长&#xff0c;传统线下医疗模式在便捷性、时效性和资源分配上面临挑战。基于Android的在线问诊APP应运而生&#xff0c;它打破了时间和空间的限制&#xff0c;让用户能够随时随地通过手机与医生进行…

2026/10/14 14:47:02 阅读更多 →
Redis安装部署全攻略:从环境变量到系统服务配置详解

Redis安装部署全攻略:从环境变量到系统服务配置详解

1. 从零到一&#xff1a;为什么你的Redis安装总是不对劲&#xff1f; 最近在帮几个新同事搭开发环境&#xff0c;发现一个挺有意思的现象&#xff1a;几乎每个人在安装Redis时都会遇到点小麻烦。不是启动报错&#xff0c;就是客户端连不上&#xff0c;再不然就是重启电脑后Redi…

2026/10/14 10:59:08 阅读更多 →

最新新闻

聊天机器人如何实现新闻传播全链条再造:从选题到分发的对话式智能体实践

聊天机器人如何实现新闻传播全链条再造:从选题到分发的对话式智能体实践

1. 从标题拆解这个项目的核心命题1.1 这个标题到底在说什么“聊天机器人与新闻传播的全链条再造”&#xff0c;这个标题我第一次看到的时候&#xff0c;脑子里蹦出来的第一个念头是&#xff1a;终于有人把这件事从“工具层”往“流程层”去想了。市面上大多数讨论还停留在“用A…

2026/10/14 23:29:06 阅读更多 →
国产AI算力地基:DS-IR与量化工具链深度解析

国产AI算力地基:DS-IR与量化工具链深度解析

1. 项目概述&#xff1a;为什么说“国产算力的地基”比模型本身更值得致敬“致敬&#xff0c;DeepSeek 最新开源的不是模型&#xff0c;是国产算力的地基”——这句话在技术圈刷屏时&#xff0c;我正调试一套在国产AI加速卡上跑不动的推理服务。看到标题第一反应不是点开链接&a…

2026/10/14 23:29:06 阅读更多 →
匿名化数据集生成与测试数据管理:从合规到工程落地

匿名化数据集生成与测试数据管理:从合规到工程落地

如果你所在的研发团队还停留在“从生产库拷贝一份数据&#xff0c;导入测试环境”的操作方式&#xff0c;那么这篇内容大概率能帮你省下未来几个月的加班时间。测试数据管理工具这几年从一个“锦上添花”的辅助设施&#xff0c;逐渐变成了很多团队的刚需&#xff0c;核心原因很…

2026/10/14 23:29:06 阅读更多 →
基于UDP广播的局域网匿名聊天APP:零配置、零服务端、打开即用

基于UDP广播的局域网匿名聊天APP:零配置、零服务端、打开即用

1. 为什么我要做一款局域网匿名聊天工具事情的起因很简单。前阵子参加一个线下技术沙龙&#xff0c;几十号人坐在同一个会议室里&#xff0c;主持人想让大家做个自我介绍、交换联系方式&#xff0c;结果现场一片尴尬——没有群二维码&#xff0c;没有公共WiFi密码&#xff0c;谁…

2026/10/14 23:29:06 阅读更多 →
哈弗枭龙MAX与宋PLUS DM-i深度对比:插混SUV怎么选

哈弗枭龙MAX与宋PLUS DM-i深度对比:插混SUV怎么选

最近后台问得最多的插混SUV对比&#xff0c;就是哈弗枭龙和比亚迪宋PLUS DM-i这两台。一个是长城押上Hi4电四驱技术的转型之作&#xff0c;另一个是比亚迪DM-i超级混动的销量担当&#xff0c;售价都在十二三万到十七八万之间&#xff0c;看着参数表都差不多&#xff0c;但实际体…

2026/10/14 23:29:06 阅读更多 →
秋招网络岗VLAN面试全攻略:从原理到配置与排障

秋招网络岗VLAN面试全攻略:从原理到配置与排障

1. 秋招网络岗为什么绕不开VLAN这个知识点每年秋招&#xff0c;网络工程师、运维开发、云计算相关岗位的笔试面试里&#xff0c;VLAN出现的频率高得离谱。我翻过近几年的面经&#xff0c;也跟几个做过校招面试官的朋友聊过&#xff0c;发现一个规律&#xff1a;VLAN本身的概念不…

2026/10/14 23:28:03 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起&#xff1a;它到底想解决什么问题第一次看到"AnyPS5"这个标题&#xff0c;我脑子里冒出来的第一个念头是&#xff1a;这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述&#xff1a;Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师&#xff0c;我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性&#xff0c;实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景&#xff0c;也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间&#xff0c;确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中&#xff0c;这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →