能源价格风险管理MATLAB复现:跳跃扩散模型与VaR/CVaR实战
先说个场景你拿到一篇Energy Economics或者Journal of Energy Markets上面做电价风险管理的高水平文章模型也读懂了公式也能推导自信满满打开MATLAB准备复现。结果三个小时之后你不仅没跑出论文里的那张风险价值图反而被报错信息淹没了维度对不上似然函数返回NaN优化器说收敛但估计出来回复速度是负的。这个场景我太熟了过去两年里我前前后后复现了十几篇能源价格风险管理方向的论文踩过的坑比代码行数还多。这篇我就以“能源价格风险管理MATLAB源代码按照高水平文章复现保证正确”为线索把一套完整的复现思路、代码骨架和验证方法摊开来讲。文章面向的是金融工程、能源经济方向的研究生以及初入电力市场量化分析岗位的从业者——你们大概率都绕不过要读懂并重写别人的模型这件事。真实世界的电力价格波动性远远大于原油、天然气这些传统能源品种原因不是单点的而是整个电力系统的物理约束和交易机制共同作用的结果。这也直接决定了你若想用标准的几何布朗运动或者单纯的均值回复模型去给电价做风险度量结果一定是灾难性的。所以复现高水平论文的第一件事不是打开MATLAB写代码而是搞清楚这些论文为什么非要给模型加上跳跃项、加上季节项、加上高频波动率过程。理清这个逻辑之后参数估计怎么设计、风险指标怎么算、正确性怎么验证才有一条清晰的线。1. 电力价格风险的独特之处为什么普通金融模型直接失效在写任何代码之前我建议先花半天时间做一件事拉一条电力市场的日度现货价格序列再拉一条同期的原油期货或天然气价格序列分别算一下对数收益率的均值和标准差再画一画直方图和自相关图。做完这个对比你对“电力价格的波动性远远大于其他品种”这句话的感知会从抽象变成具体。1.1 从统计特征看电价的三观崩塌我拿一组典型的日前现货市场数据做过统计结果和论文里报告的现象基本一致。为了不涉及具体市场下表给出的是数量级含义的示意值但足以说明问题品种日收益率标准差年化后峰度出现极端跳跃的频率原油期货20%-30%3-5低天然气期货30%-50%4-6中等电力现货100%-300%10-40高一年365天里原油价格单日跌掉5%已经能上新闻电价在某几个小时里从30元/MWh飙到500元/MWh在电力市场里却是家常便饭。正因为这样普通的金融资产定价模型落到电价上会犯两个方向相反的错一方面低估了尾部风险另一方面又因为非平稳性给出混乱的长期均值。1.2 物理约束和市场机制波动来自骨子里电价波动大的底层原因可以拆成三个层面。第一电不能大规模经济化储存。原油放在库罐里今天卖不掉可以明天卖价格波动被库存缓冲。电力基本是即产即销晚高峰需求上来而发电厂开机需要时间供给跟不上价格只能直接起飞。第二需求的价格弹性极低。普通人不会因为晚上8点电费贵了50%就把全家的空调关掉工业用户更多是按合同用电。需求曲线近乎垂直任何供给侧的突发扰动都会在价格上放大成剧烈波动。第三供给侧的物理约束和网络约束。机组有最小出力限制、爬坡约束电网有传输断面约束跨区电送不过来局部市场很容易被少数机组撬动价格。这三者叠加结果就是价格序列里频繁出现脉冲式跳跃并且跳跃之后往往又快速回归到某个基准水平。这正是高水平论文在建模时几乎不约而同选择“均值回复 跳跃项”框架的根本原因。1.3 对模型的硬性要求四个要素缺一个都危险基于以上数据特征一个能用于风险管理目的的电价模型至少要同时具备四样东西均值回复电价不会永远停在500元/MWh它会向长期均衡水平回归跳跃项极端的短时脉冲必须能够在模型路径中反复生成波动率聚集高波动时段往往扎堆出现这与市场状态相关季节性大多数电力市场有日内、周内、年内季节结构。一篇好的论文本质上就是在模型复杂度和可估计性之间做权衡。你复现的时候不需要把模型做得越复杂越好而是需要读懂作者为什么保留某几项、砍掉某几项。比如有的文章用带跳跃的均值回复模型但把季节项直接做进确定性平均数里有的文章用GARCH族描述波动率跳跃则被吸收到厚尾分布里。不同的道路对应完全不同的参数估计逻辑代码机构自然也完全不同。2. 复现的起点模型设定与符号约定复现论文这件事最大的陷阱其实不在代码而在“你以为你复现的是那个模型实际上你复现的是你脑补之后的那个模型”。为了防止脑补拿到论文之后先做模型梳理把SDE写清楚、把变量量纲统一、把待估参数列成清单。2.1 主流跳扩散模型的SDE长什么样能源价格风险管理的文献里最常用的一类模型是对数价格建模。设 (S_t) 是现货价格(X_t \ln S_t)那么一个典型的带跳跃的均值回复模型可以写成[ dX_t \kappa(\mu - X_t)dt \sigma dW_t J dN_t ](\kappa)均值回复速度单位是“每天回归多少比例”值越大价格越快地拉回长期均值(\mu)对数价格的长期均值水平在带季节性的设定里它可以是时间的函数 (\mu_t)(\sigma)扩散波动率代表正常价格扰动(N_t)泊松过程强度为 (\lambda)平均每 (1/\lambda) 天发生一次跳跃(J)跳跃幅度通常假设服从正态分布 (N(\mu_j, \sigma_j^2))也可以假设为指数分布来表示向上或向下的不对称冲击。这里有一个特别容易在复现时翻车的地方论文里如果写的是 (dS_t \kappa(\theta - \ln S_t)S_t dt \sigma S_t dW_t)它的含义与上面这个对数价格模型完全等价但你在做数值离散化和模拟时收敛性质会有细微差异。我个人的建议是统一转成对数价格模型因为连续复合收益率的加法性质使得离散化误差更小参数也更容易和后面MLE的转移密度匹配。2.2 区分“模拟用模型”和“估计用模型”论文复现里还有一层很隐蔽的坑作者可能在模拟部分用了很细的时间步比如每小时步长但在估计参数时只有日度数据。这时候你是不能把日度参数直接等比例缩放成小时参数的因为跳跃项和扩散项在时间尺度转换下表现完全不同。扩散项的方差随步长线性增长跳跃项的强度也随步长线性增长但跳跃项的每个实现并不会因为步长变小而幅度变小。这说明你必须在参数估计时就明确参数的时点分母比如“每日回复速度”“每日跳跃频率”。2.3 参数清单和代码组织我复现论文时一定会先画一张参数清单表不仅是给自己看也是作为代码的注释基准。举个例子参数符号约束条件经济含义回复速度(\kappa) 0价格冲击消散的速度长期均值(\mu)无稳态对数价格水平扩散波动率(\sigma) 0常态价格扰动幅度跳跃强度(\lambda) 0平均每单位时间的跳跃次数跳跃均值(\mu_j)无跳跃方向的倾向跳跃标准差(\sigma_j) 0跳跃幅度的离散程度代码结构上我推荐用一个结构体存参数然后用三个文件分别完成参数估计、路径模拟、风险计算。这样当你换数据集、换论文模型时只改中间层函数而不用把整个脚本推倒重来。后面每个环节我都给了能直接跑的MATLAB代码片段但这些片段是经过我反复简化后的骨架真正落项目时你还需要把数据清洗和模型诊断嵌入进去。3. 参数估计MLE在MATLAB中的完整落地如果说价格建模是骨架参数估计就是心脏。能源价格风险管理论文里绝大多数采用极大似然估计因为它有大样本最优性质而且对平稳马尔可夫过程实现起来最直接。但难点在于带跳跃的均值回复模型它的转移密度不是一个正态分布而是一个正态分布和跳跃分布混合的无限和直接套用fitdist或者简单的回归方式是不行的。3.1 转移密度的近似与似然函数设计对于时间间隔 (\Delta)模型 (dX_t \kappa(\mu - X_t)dt \sigma dW_t J dN_t) 的解析转移密度无法写成闭环形式但可以做离散化近似。近似的方法不只一种我用的、也是论文里常见做法的是把区间 ([t, t\Delta]) 内的跳跃次数设为 (n)再对每个可能的跳跃次数求在给定 (n) 次跳跃条件下的正态转移密度然后按泊松概率加权求和。换句话说给定前一期价格 (X_t)下一期价格可以写成[ X_{t\Delta} e^{-\kappa\Delta}X_t (1-e^{-\kappa\Delta})\mu \epsilon_t ]其中 (\epsilon_t) 包括扩散部分和一个由泊松混合产生的跳跃部分。为了写似然函数我们需要枚举跳跃次数 (k 0, 1, 2, ...)然后累加。实际计算时由于日度数据间隔下跳跃次数集中在0和1附近一般截断在 (k5) 就够用了再往后概率小到对优化结果没有影响。3.2 对数似然函数的MATLAB实现下面这段代码是核心的负对数似然函数。它不是论文级别的优化成品而是我把大量无关细节剥掉之后留下的主干方便你看清每一步做了什么。实际使用中数据向量、模型参数和数据索引都要更仔细地管理。function nll neg_loglik_jump_diff(theta, X, dt) % 带跳跃的均值回复模型负对数似然 % X: 对数价格列向量 % dt: 采样间隔比如说1代表日度数据 % theta [kappa, mu, sigma, lambda, mu_j, sigma_j] kappa theta(1); mu theta(2); sigma theta(3); lambda theta(4); mu_j theta(5); sigma_j theta(6); n length(X); nll 0; % 预计算均值回复部分 phi exp(-kappa * dt); % 条件均值的基准部分 % X_t1 无条件影响 X_t 的系数是 phi for i 1:n-1 % 给定当前价格跳跃次数0到5 max_jump 5; prob_sum 0; for k 0:max_jump % 泊松分布概率 pois_prob exp(-lambda * dt) * (lambda * dt)^k / factorial(k); % 扩散加跳跃后的总体方差 var_diff sigma^2 * (1 - exp(-2*kappa*dt)) / (2*kappa); % 跳跃次数的方差贡献 var_jump k * sigma_j^2; % 跳跃均值贡献 mean_jump k * mu_j; mu_cond phi * X(i) (1 - phi) * mu mean_jump; var_cond var_diff var_jump; if var_cond 0 prob 0; else prob pois_prob * normpdf(X(i1), mu_cond, sqrt(var_cond)); end prob_sum prob_sum prob; end % 防止概率为0导致的log无穷 if prob_sum 0 || isnan(prob_sum) prob_sum 1e-300; end nll nll - log(prob_sum); end end这个实现有一个明显可优化点循环里每次都在重新计算var_diff其实它与数据无关可以提到循环外。但我故意先写成这个样子因为初学者更容易对应公式看懂。优化版本是把泊松概率、扩散方差等在循环外向量化然后对每个观测点做内积。3.3 参数约束与优化初始值的实战策略MLE优化不是梯度下降就能随便跑的带跳跃的模型尤其敏感。我最开始复现时直接把所有参数扔给fminsearch结果lambda经常被优化成0整个模型退化成纯扩散均值回复跳跃完全消失。后来我的做法是先做一步矩估计或者简单回归得到 (\kappa,\mu,\sigma) 的初值固定跳跃参数一个大概的初始猜想比如 (\lambda0.05,\mu_j0,\sigma_j0.02)先让优化器调整扩散参数再把所有参数放开用fmincon加约束(\kappa, \sigma, \lambda, \sigma_j) 的下界为1e-6或更小但不为零防止退化。下面是实际项目里我常用的优化入口theta0 [0.3, 3.5, 0.02, 0.05, 0, 0.05]; lb [1e-6, -10, 1e-6, 1e-6, -0.5, 1e-6]; ub [5, 10, 1, 5, 0.5, 1]; options optimoptions(fmincon, Display, iter, ... Algorithm, interior-point, MaxFunctionEvaluations, 20000); [theta_hat, nll_val] fmincon((th) neg_loglik_jump_diff(th, X, 1), ... theta0, [], [], [], [], lb, ub, [], options);注意我并没有写非线性约束条件函数因为风险管理的上下文里暂时没有必须拟合的额外约束。但如果你论文里的模型要求跳跃参数满足某种矩条件这里只需要替换nonlcon参数即可。3.4 一个必须做的检验合成数据还原“保证正确”的第一步不是拿真实数据跑而是先模拟一组已知参数的数据再用你的估计程序把参数还原回去。这一步能帮你捉到90%以上的代码低级错误。比如我会设定 (\kappa0.2, \mu3.5, \sigma0.02, \lambda0.05, \mu_j-0.02, \sigma_j0.04)生成2000个日度观测然后用上面代码去估计。如果估计结果和真实值偏离超过百分之几十或者出现参数边界命中就说明代码或初值策略有问题。合成数据模拟本身不复杂我会在下一章讲到风险模拟时给出一个统一的模拟器。因为模拟未来价格路径和模拟历史价格的代码本质上是一样的只是起点和步长不同。正由于这个共性我在项目里把模拟器单独做成了一个函数既服务参数检验又服务风险度量。4. 风险度量VaR/CVaR的蒙特卡洛模拟与代码组织参数一旦估计出来就到了论文复现最有“成果感”的部分计算VaR和CVaR画出未来价格分布图。这一步在代码组织上最容易写成一团浆糊。正确的思路是先实现一个价格路径生成器再在这个生成器上面批量跑上万次模拟最后对损失分布取分位数。4.1 从参数到未来价格路径模拟器设计用欧拉离散化近似SDE的时候核心是决定时间步长。如果你要度量的是未来一天的风险直接用日度步长模拟可以如果要度量一周那么日度步长会低估一周内的路径依赖所以我通常会把一天切成若干小时子步长比如每步0.1天然后聚合收益。下面是一个朴素但可靠的模拟函数function S_final sim_price_paths(theta, S0, n_steps, n_sims, dt) % 模拟未来价格路径 % S0: 当前价格 % n_steps: 模拟步数 % n_sims: 路径数 % dt: 每步时间间隔天 kappa theta(1); mu theta(2); sigma theta(3); lambda theta(4); mu_j theta(5); sigma_j theta(6); % 用对数价格模拟 X0 log(S0); X_final zeros(n_sims, n_steps1); X_final(:, 1) X0; for s 1:n_steps % 扩散部分 dW randn(n_sims, 1) * sqrt(dt); % 跳跃次数泊松 jump_count poissrnd(lambda * dt, n_sims, 1); jump_component mu_j * jump_count sigma_j * sqrt(jump_count) .* randn(n_sims, 1); % 均值回复 X_final(:, s1) X_final(:, s) ... kappa * (mu - X_final(:, s)) * dt ... sigma * dW jump_component; end S_final exp(X_final(:, end)); end这个实现做了几个简化跳跃幅度生成的近似处理用的是“同向多个跳跃合并成一个高斯冲击”。实际上如果你严格模拟 (J dN_t)应该先在每个子步里生成跳跃次数然后对每一次跳跃单独生成幅度并累加。上面的写法在跳跃次数比较小时近似度尚可但如果 (\lambda\Delta) 很大这种合并近似会损失跳跃分布的尾部信息。所以在正式项目里我会改成更严谨的写法jump_count poissrnd(lambda * dt, n_sims, 1); max_jumps max(jump_count); for j 1:max_jumps mask jump_count j; X_row(mask) X_row(mask) mu_j sigma_j * randn(sum(mask), 1); end这个写法等于逐次处理每次跳跃虽然在MATLAB里看起来多了一层循环但循环次数由最大跳跃次数决定在日度步长下通常很小性能损失可以忽略。4.2 风险指标的估计与标准误有了 (N) 条未来价格路径未来一天的收益率分布就是 (R_i S_{T,i} / S_0 - 1)我们把负收益记为损失 (L_i -R_i)。风险价值VaR就是在给定置信水平 (\alpha) 下损失分布的分位数alpha 0.95; VaR quantile(L, alpha); CVaR mean(L(L VaR));这里数组L是模拟得到的损失序列。做风险管理时我通常不会只计算一个VaR而是把95%、97.5%、99%三个水平一起算因为监管和内部资本计量往往要求多个端点的对比。蒙特卡洛模拟本身会引入估计误差。比如5万条路径和5千条路径尾部均值差异可以非常大。我建议模拟路径数至少1万条起步如果算的是99%的VaR5万条以下都不太够。一个快速的误差判断是看CVaR的稳定性把模拟分成10组分别算CVaR看各组之间的标准差。如果你发现各组CVaR波动超过5%就加路径数。4.3 让输出结果充分反映模型特征论文复现的最终展示通常需要画出价格分布直方图并标示VaR/CVaR。这里我给一个极简的绘图脚本段histogram(L, 200, Normalization, pdf, FaceAlpha, 0.6); xline(VaR, r--, LineWidth, 1.5); xline(CVaR, k-, LineWidth, 1.5); legend({损失分布}, Location, northwest); title(95% VaR 与 CVaR 示意); xlabel(百分比损失); ylabel(概率密度);把这个图和你论文里的原图放一起看形状是否相似是不是有厚尾、是不是均值附近比较集中、左尾是否特别长。如果分布整体形态都对不上大概率不是模拟代码的问题而是参数估计出的跳跃特征和论文不一致。4.4 风险指标背后的经济直觉我举一个自己复现时的例子。某组数据估计出来 (\lambda0.08)意思是平均每12天出现一次跳跃(\mu_j-0.04) 表示跳跃很多是向下的。这时候95% VaR看起来和纯扩散模型差不多但99% VaR要高出一大截。原因在于跳跃对尾部的贡献呈非线性放大效应。纯扩散模型下99%的VaR大概只有95%VaR的1.5倍有跳跃时99%的风险可能达到95%VaR的2到3倍。这也就是为什么能源价格风险管理文献特别强调用CVaR而不用方差方差是完全刻画不了这种尾部跳升的。5. “保证正确”的复现方法论从参数还原、残差诊断到回测“保证正确”这四个字是用户诉求里分量最重的一句。它不是说你的代码没有语法错误而是说你复现出来的整个模型在统计学上是站得住脚的能够被真实数据验证。这个层面的正确性检验我把它拆成四步。5.1 第一步合成数据参数还原上一章我提过模拟已知参数的数据然后跑估计程序看能不能还原参数。严格地说这一步不仅要求点估计接近真实值还要看标准误能否覆盖真实值。你可以把合成数据重复生成50次每次估计一组参数然后看这50组参数的均值是否围绕真实参数波动波动幅度是否和估计程序的渐近标准误差一致。如果偏差系统性地偏向某个方向比如(\lambda)总是被低估说明似然函数的截断阶数不够或者跳跃项参数化和论文不一致。5.2 第二步模型残差的概率积分变换检验参数估计完之后很多人的习惯是看一眼残差自相关图画得干不干净就结束了。但要用分布模型做风险度量光看残差自相关不够还要看概率积分变换PIT。PIT的核心思想是如果模型拟合得很好那么对每个观测点计算条件累积分布函数 (F_t(X_{t1} | X_t, \theta))得到的序列应该服从标准均匀分布 (U(0,1))。在带跳跃的模型里这个条件累积分布函数正是我们做似然函数时算的那个加权混合分布的累积版本。把它算出来之后再做一次检验变换 (z_t \Phi^{-1}(u_t))得到的 (z_t) 应该是一列标准正态独立随机变量。对(z_t)做Ljung-Box自相关检验如果p值很高说明模型的条件分布校准是好的。这一步非常必要因为它恰好能抓住“参数估计正确但分布假设错误”的案例。很多论文里为了减少计算量省略了这一步我觉得这是复现者可以做得比原论文更严谨的地方。5.3 第三步Kupiec检验和Christoffersen检验风险管理角度的正确性验证最终要落在风险覆盖能力上。最常用的检验是Kupiec的失败率检验也叫无条件覆盖检验。它的逻辑很简单设定95%VaR然后在样本外滚动回测中记录实际损失超过VaR的比例。如果模型是对的那么失败率应该在5%附近。Kupiec检验用似然比统计量判断实际失败率是否显著偏离目标比例。Christoffersen检验则在Kupiec基础上进一步要求失败事件在时间上独立如果模型忽略了波动率聚集性那么失败事件往往会扎堆出现。比如连着三天突破VaR事后来看可能就是因为模型没有捕捉到高波动持续期。我把这两项检验写成一个函数输入损失序列和VaR序列输出两个p值。这比肉眼观察图形要客观得多。5.4 第四步跨数据集稳健性测试高水平论文之所以被引用很多次有一个隐含前提是模型在不同市场、不同时间段都适用。作为复现者你不应该把模型只在论文同一段数据上跑一遍就宣称“复现完成”。我的做法是至少找两个不同的市场数据或者同一市场不同时间段的数据重复估计参数和计算风险指标。如果两个样本估计出的跳跃强度和回复速度在置信区间内有重叠说明模型的解释力是稳定的如果差距巨大就要回来检查论文原本的适用边界。这一步容易受数据可得性限制但至少你可以把自己手上的数据集切前后两段做对比。切分方式用滚动窗口更好比如每半年估计一次连续估计两三年看参数的时间路径是否平滑。5.5 复现日常工作流总结为了避免每次复现论文都从零开始我最后整理了一个固定的工作流清单也分享给你们读论文将所有方程转换为同一符号体系列出所有待估参数和约束合成数据测试用已知参数模拟数据跑通估计与风险计算全流程真实数据估计先用粗略初值优化再放开全参数优化模型诊断PIT检验、自相关检验、跳跃残差形态观察风险指标计算VaR/CVaR、滚动回测、Kupiec与Christoffersen检验稳健性测试更换样本期重复步骤3到5归档保存估计日志、收敛状态、图表输出方便排查。你会发现这个流程里没有“改代码改到吐”这个步骤因为充分的前置工作——模型梳理和合成数据检验——已经把大部分代码级错误提前排除了。剩下真正需要反复调整的往往是参数初始值和数值优化边界而这些都是正常现象。说个我自己的体会能源价格风险管理模型的复现最大的瓶颈不是MATLAB技巧而是对“风险”的理解深度。你只有想清楚每个参数在真实市场里对应什么经济现象——跳跃会不会季节性变化、回复速度在供给紧张时是否更慢——写出来的代码才不是照着公式硬搬而是真正能用。最后再给一个具体的建议正式跑批量模拟之前把所有随机数种子固定下来并且在输出里记录当前种子值。这个习惯帮我在后续排查论文结果差异时节省了无数个小时因为你可以精准复现任意一次模拟结果而不是在不可复现的随机波动里大海捞针。

相关新闻

多代理协作实战:从零素材到3D动作游戏原型

多代理协作实战:从零素材到3D动作游戏原型

1. 从一段需求到可玩Demo:这个项目到底在做什么 第一次看到“一段需求、零素材,让AI代理集群做出一个3D动作游戏”这个说法时,我的第一反应是:这要么是标题党,要么就是把“游戏”的定义压缩到了极致。但仔细拆解之后发…

2026/10/12 13:29:41 阅读更多 →
2022 CSP-S复赛题解:模型简化与竞赛优化策略

2022 CSP-S复赛题解:模型简化与竞赛优化策略

2022年的CSP-S复赛,很多选手出考场之后的第一反应是:这次题不偏,但每一题都特别考验“把模型做简化”的能力。四道题恰好覆盖了图论、区间博弈、计数维护和树上动态规划四条主线,T1要会压缩状态,T2要会做策略分类&…

2026/10/12 13:29:41 阅读更多 →
机器学习+DFT工作流:OPLS4加速阻转异构预测

机器学习+DFT工作流:OPLS4加速阻转异构预测

1. 阻转异构预测为什么值得单独做一套工作流阻转异构体(atropisomer)这个概念,做药物化学和手性催化的人应该都不陌生。简单说,就是分子里有一根单键,因为两侧取代基太大,转不动了,于是两个本该…

2026/10/12 13:28:40 阅读更多 →

最新新闻

无线网络优化面试:LTE/5G高频理论题与实战排查指南

无线网络优化面试:LTE/5G高频理论题与实战排查指南

简介:面向应聘移动、联通、电信网络优化岗位的求职者,这里整理了一份LTE与5G理论面试精华问答。内容从LTE网络架构、物理信道类型、频点换算方法、RB与RE关系、速率过低原因分析等高频考点,到单站验证流程、Probe软件操作步骤、灌包测试方法、…

2026/10/12 14:26:43 阅读更多 →
Ubuntu手动分区完全指南:UEFI+GPT、LVM/Btrfs与避坑要点

Ubuntu手动分区完全指南:UEFI+GPT、LVM/Btrfs与避坑要点

简介:安装Ubuntu Linux时,硬盘分区常是初学者最易卡壳的环节,网上教程多直接采用自动分区,遇到定制需求便难以应对;这份资料结合作者多年装机经验,专门梳理手动分区的合理策略与完整流程,适合刚…

2026/10/12 14:26:43 阅读更多 →
微信小程序开发者工具怎么使用Less、Sass:把编译配置改到TaoToken统一管理

微信小程序开发者工具怎么使用Less、Sass:把编译配置改到TaoToken统一管理

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

2026/10/12 14:26:43 阅读更多 →
AI假期七天实战:推理成本下探与端侧部署的工程观察

AI假期七天实战:推理成本下探与端侧部署的工程观察

1. 七天假期,七次认知刷新:我眼中的AI圈“假期节奏”国庆七天假,朋友圈里一半人在晒高速堵车和景区人海,另一半人——尤其是做AI产品和研发的那拨——在晒各种模型更新截图、跑分对比和“假期又没睡好”的吐槽。我属于后者。本来计…

2026/10/12 14:26:43 阅读更多 →
线性回归预测PM2.5实战:从CSV解析到解析解部署

线性回归预测PM2.5实战:从CSV解析到解析解部署

简介:本资源是一套基于线性回归算法实现PM2.5浓度预测的完整Python机器学习实践项目,面向Python初学者及机器学习入门者,适用于环境数据分析、空气质量建模等教学与课程设计场景。压缩包共19个文件,含12个CSV格式训练与测试数据集…

2026/10/12 14:26:43 阅读更多 →
Brocade 6510参数表解读:从端口模式到SAN扩容的避坑指南

Brocade 6510参数表解读:从端口模式到SAN扩容的避坑指南

简介:Brocade 6510 光纤通道交换机参数表是一份面向存储网络工程师、数据中心运维及基础架构选型人员的专业参考文档。内容覆盖系统架构与端口配置、性能参数、帧处理、Fabric 服务、扩展功能、管理与安全等核心维度,既适合用于设备选型对比,…

2026/10/12 14:25:42 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器: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 阅读更多 →