时间序列预测损失函数全解析:从MSE到分位数损失的选择指南

news2026/5/20 21:58:00
1. 项目概述为什么时间序列预测的损失函数值得深究做时间序列预测无论是金融市场的股价波动、电商平台的销量起伏还是工业设备的传感器读数我们最终都要面对一个核心问题如何衡量模型预测得好不好这个“衡量标准”就是损失函数。它不仅仅是模型训练时的一个数学公式更是连接模型目标与业务价值的桥梁。选错了损失函数你的模型可能在数学指标上表现优异但在实际业务场景中却可能带来灾难性的决策失误。我见过太多项目工程师们把大量精力花在模型架构调优、特征工程上却对损失函数的选择“随大流”默认使用均方误差。结果模型对异常值过度敏感导致预测曲线为了拟合几个极端值而剧烈抖动失去了对整体趋势的把握。也有相反的情况使用绝对误差损失虽然稳健但在需要精准预测峰值比如电力负荷预测中的用电高峰时却显得力不从心。因此深入理解不同损失函数的特性、适用场景及其背后的数学原理是构建一个既准确又实用的时间序列预测模型的关键一步。本文将详细拆解14种在时间序列预测中常用或值得关注的损失函数从最基础的均方误差到应对非对称成本的分位数损失再到融合多个目标的复合损失。我会结合具体的时间序列场景如平稳序列、带趋势/季节性的序列、存在异常值的序列等分析每种损失函数的“脾气”并分享在实际调参和模型评估中如何根据你的业务目标做出最合适的选择。2. 损失函数的核心作用与选择逻辑在深入每个函数之前我们必须建立一个清晰的认知框架损失函数不是孤立的数学玩具它的选择完全由你的预测目标和数据特性所驱动。2.1 损失函数的三大核心角色首先损失函数在时间序列预测模型中扮演着三个关键角色优化指南针在模型训练阶段损失函数的值是优化算法如梯度下降需要最小化的目标。算法通过计算损失函数关于模型参数的梯度来指导参数更新的方向和幅度。可以说模型“学习”到的模式直接由损失函数定义。评估标尺在模型验证和测试阶段损失函数提供了一个量化的、可比较的性能指标。不同于准确率、召回率等分类指标回归预测的评估严重依赖于损失函数。业务翻译器这是最容易被忽视也最重要的一点。损失函数将抽象的“预测误差”转化为具体的业务成本。例如在库存预测中预测过高积压库存和预测过低缺货损失的成本是不同的在金融风险预测中漏报一次重大风险事件的代价远高于误报。一个好的损失函数应该能反映这种非对称的业务成本。2.2 选择损失函数的决策树面对十几种选择我们可以通过回答以下几个问题来快速缩小范围问题一我的业务成本是对称的吗是- 考虑对称损失函数如MSE, MAE, Huber Loss。否- 必须考虑非对称损失函数如Quantile Loss, Tilted Loss, 或自定义的非对称MAE/MSE。问题二我的数据中异常值多吗它们重要吗异常值多且不重要噪声- 需要稳健的损失函数如MAE, Huber Loss, Log-Cosh Loss。它们对异常值不敏感。异常值少或异常值本身就是关键预测目标如峰值- 可以使用MSE等对较大误差惩罚更重的函数以迫使模型努力拟合这些点。问题三我需要预测一个值还是一个区间一个具体值点预测- 大多数损失函数都适用。一个可能区间概率预测/不确定性估计- 必须使用分位数损失通过预测多个分位数如10%, 50%, 90%来构建预测区间。问题四我的模型需要同时优化多个目标吗是例如既要预测准确又要预测平滑- 需要考虑复合损失函数将多个损失按权重相加。基于这个逻辑我们再来逐一剖析每种损失函数你就会明白它们各自的位置和用途。3. 基础对称损失函数详解这类函数假设预测过高和过低带来的“痛苦”是一样的是应用最广泛的起点。3.1 均方误差与均方根误差均方误差可以说是机器学习世界的“Hello World”。它的公式非常直观MSE (1/n) * Σ(y_i - ŷ_i)^2其中y_i是真实值ŷ_i是预测值n是样本数。为什么是平方平方操作带来了两个关键特性可导性平方函数处处可导这为基于梯度的优化算法如梯度下降提供了便利。放大性误差被平方后较大的误差会被显著放大例如误差为10时贡献为100误差为20时贡献激增到400。这使得MSE会驱使模型格外努力地去减少那些大的预测错误。MSE的优缺点与场景优点数学性质优良计算高效是许多统计理论的基石如最小二乘法。缺点对异常值极其敏感。一个巨大的异常值会主导整个损失值导致模型为了拟合这个“坏点”而扭曲整体趋势。适用场景数据相对干净异常值较少且大误差是你绝对无法容忍的场景。例如在航空航天或精密仪器控制中任何较大的偏差都可能造成严重后果。均方根误差是MSE的平方根RMSE sqrt(MSE)。 它的主要优点是量纲与原始数据一致。如果MSE是“元²”RMSE就是“元”更易于业务方理解。例如你说“我们的RMSE是5千瓦”比“MSE是25千瓦²”直观得多。在模型比较时RMSE也更为常用。实操心得在训练初期用MSE监控损失下降曲线是没问题的但在最终模型评估和报告时我强烈建议使用RMSE。它更直观且在不同量级的预测任务间更具可比性。3.2 平均绝对误差当MSE对异常值过于“神经质”时平均绝对误差提供了更“淡定”的选择MAE (1/n) * Σ|y_i - ŷ_i|MAE的优缺点与场景优点对异常值稳健。因为误差取绝对值误差10和误差20的惩罚是线性的10和20不会像MSE那样被平方放大。这使得模型更关注于减少大多数样本的误差而不是被少数异常值牵着鼻子走。缺点在零点处不可导。这虽然在现代深度学习框架中可以通过次梯度等方法解决但在理论上不如MSE优雅。其优化过程也可能比MSE更慢、更不稳定。适用场景数据中包含较多不可信的异常值或噪声且你的业务更关心整体平均误差水平而不是极端错误。例如预测城市日客流量偶尔的极端天气或事件会导致数据尖峰但这些并非常态模型不应过度适应它们。MSE vs MAE 的直观对比 我们可以用一个简单的例子来感受两者的区别。假设真实值为100我们有三个预测值90 100 110。MAE: (10010)/3 ≈ 6.67MSE: (1000100)/3 ≈ 66.67 现在假设第三个预测是150一个糟糕的异常预测MAE: (10050)/3 20MSE: (10002500)/3 ≈ 866.67 可以看到MSE对那个50的误差反应剧烈从66.67飙升到866.67而MAE的反应则温和得多从6.67上升到20。3.3 平滑绝对误差Huber Loss既然MSE怕异常值MAE在零点优化慢有没有折中的方案Huber Loss应运而生。它本质上是一个“分段函数”当误差绝对值小于等于某个阈值δ时使用类似MSE的二次函数保证在零点附近可导且优化高效。当误差绝对值大于δ时切换为类似MAE的线性函数避免异常值产生过大的梯度。公式为L_δ { 0.5*(y - ŷ)², if |y-ŷ| ≤ δ; δ*(|y-ŷ| - 0.5*δ), otherwise }Huber Loss的优缺点与场景优点兼具MSE和MAE的优点。对小误差敏感且优化高效对大误差稳健。通过调整超参数δ你可以控制模型对“异常值”的容忍度。δ越大函数越像MAEδ越小越像MSE。缺点引入了一个需要调优的超参数δ。δ的选择依赖数据分布和经验通常需要通过交叉验证来确定。适用场景当你认为数据中大部分点是可靠的但存在一些需要被适度忽略的噪声或离群点时。它是实践中非常受欢迎的一个鲁棒性损失函数。例如在股票价格预测中大部分波动是合理的但偶尔的“乌龙指”或极端消息导致的瞬间暴涨暴跌就可以被Huber Loss较好地处理。参数设置技巧δ的初始值可以设为数据中误差绝对值的中位数或者基于业务知识设定一个你认为的“可接受误差范围”。例如预测销量你认为误差在±10个单位内是正常的那么δ可以设为10。3.4 对数双曲余弦损失Log-Cosh Loss是另一个试图平滑MAE的函数其公式为L Σ log(cosh(ŷ_i - y_i))。 其中cosh(x) (e^x e^-x)/2所以log(cosh(x))在x较小时近似于x²/2在x较大时近似于|x| - log(2)。Log-Cosh的优缺点与场景优点它处处二阶可导比Huber Loss更光滑这在一些需要计算二阶导数如牛顿法的优化场景中更有优势。其行为非常类似于Huber Loss但对大误差的处理比MAE更平滑一些。缺点计算涉及指数运算比MSE/MAE稍慢。在实践中其性能与精心调参的Huber Loss往往相差无几但知名度较低。适用场景作为Huber Loss的一个替代品尤其当你希望损失函数本身具有更好的数学光滑性时。在深度学习框架中由于其实现的便利性有时会被直接采用。4. 非对称与分位数损失函数现实世界的成本很少是对称的。预测明天降雨量你带伞了却没下雨预测偏高和你没带伞却淋了雨预测偏低后果完全不同。这类场景就需要非对称损失。4.1 分位数损失分位数损失是进行区间预测和非对称成本建模的利器。它不预测一个具体的值而是预测一个分位数。例如预测“明天销量有90%的可能性不超过X”这个X就是90%分位数。对于给定的分位数τ0τ1其损失函数为L_τ Σ (y_i - ŷ_i) * (τ - I(y_i ŷ_i))其中I(·)是指示函数当条件为真时值为1否则为0。展开来理解如果真实值小于预测值预测过高损失为(y_i - ŷ_i) * (τ - 1) (1-τ) * |y_i - ŷ_i|如果真实值大于等于预测值预测过低损失为(y_i - ŷ_i) * τ τ * |y_i - ŷ_i|分位数损失的核心通过调整τ你控制了高估和低估的成本比例。当τ0.5时高估和低估成本相同它就退化为了MAE乘以一个常数。当τ0.9时高估的成本系数是0.1低估的成本系数是0.9这意味着模型会极力避免预测值低于真实值因为低估的惩罚是0.9倍误差远高于高估的0.1倍从而得到一个保守的、较高的预测值即90%分位数。实操过程与核心环节确定分位数根据业务需求选择。常见的是同时预测多个分位数如[0.1, 0.5, 0.9]来构建一个预测区间。模型输出你的模型需要为每个分位数τ输出一个预测值。这通常通过为每个τ设置一个独立的输出层来实现。损失计算对每个样本分别计算其在每个τ上的分位数损失然后求和或平均作为总损失。结果解读训练完成后对于一个新的输入模型会输出多个预测值。例如ŷ_0.195,ŷ_0.5100,ŷ_0.9105。这意味着模型认为有10%的可能性真实值会低于9550%的可能性低于10090%的可能性低于105。区间[95, 105]可以作为一个80%的预测区间。注意事项同时预测多个分位数时可能会出现分位数交叉的问题即低分位数的预测值反而比高分位数还大例如ŷ_0.9 ŷ_0.5。这不符合分位数的定义。解决方法包括使用特殊的网络结构确保单调性或在损失函数中加入惩罚交叉的正则项。4.2 非对称MAE/MSE如果你只需要一个点预测但成本是非对称的可以直接对MAE或MSE进行加权。非对称MAEL (1/n) * Σ w * |y_i - ŷ_i|其中w α if y_i ŷ_i (低估), else β。α和β分别是低估和高估的权重。非对称MSE类似地L (1/n) * Σ w * (y_i - ŷ_i)²。这可以看作是分位数损失的一个特例只关注一个点且形式更简单。它的优点是极其直观直接对应业务成本。例如在库存预测中缺货损失低估的成本系数α可能设定为10而库存积压高估的成本系数β设定为1。4.3 Tilted LossTilted Loss是分位数损失的一种变体有时也被直接称为分位数损失。其表达式略有不同但核心思想一致通过一个倾斜参数tilt来创造非对称性。公式为L Σ max(τ*(y_i - ŷ_i), (τ-1)*(y_i - ŷ_i))。可以证明这个公式与之前的分位数损失公式是等价的。它更清晰地展示了损失函数在零点两侧的斜率不同因此“倾斜”。5. 基于分布假设的损失函数这类函数假设误差或目标值服从某种特定的概率分布通过最大化似然函数来推导出损失函数。它们不仅能给出点预测还能给出预测的不确定性。5.1 高斯负对数似然损失假设预测误差服从均值为0的高斯正态分布即y ~ N(ŷ, σ²)。那么最大化观测数据的似然等价于最小化负对数似然NLL (1/n) * Σ [0.5 * log(2πσ²) 0.5 * (y_i - ŷ_i)² / σ²]这里的关键是模型现在需要预测两个值均值ŷ和方差σ²或标准差σ。方差σ代表了模型对这次预测的置信度σ越大表示模型越不确定。优点与场景提供不确定性估计这是最大的优势。模型可以告诉你“我预测值是100但我有±20的把握”。理论优雅基于坚实的概率论基础。适用场景当你不仅想知道“预测多少”还想知道“这个预测有多可靠”时。例如在自动驾驶中预测前方车辆的位置同时给出一个置信区间对于安全决策至关重要。实现细节在神经网络中通常让最后一个全连接层输出两个节点一个代表均值μ一个代表方差σ²为确保正值通常输出log(σ²)。损失函数即上述NLL。5.2 拉普拉斯负对数似然损失如果假设误差服从拉普拉斯分布又称双指数分布其概率密度函数比高斯分布有更重的尾部对异常值更不敏感。对应的负对数似然损失为NLL_Laplace (1/n) * Σ [log(2b) |y_i - ŷ_i| / b]其中b是尺度参数也需要由模型预测。这个损失函数的行为类似于MAE但同样能给出不确定性估计通过参数b。它适用于误差分布峰值更尖锐、尾部更厚的数据。6. 基于信息论与比例的损失函数这类函数关注的是误差的相对大小而非绝对大小。6.1 平均绝对百分比误差与对称MAPE平均绝对百分比误差将绝对误差转化为相对于真实值的百分比MAPE (1/n) * Σ |(y_i - ŷ_i) / y_i| * 100%MAPE的优缺点优点无量纲便于在不同量级的时间序列之间比较模型性能。例如比较一个日销100单和日销10000单的商品的预测精度MAE或RMSE没有可比性但MAPE可以。缺点对零值或接近零的真实值无效分母不能为零。不对称性误差范围被限制在[0, ∞)当预测值过高时和[0, 100%]当预测值过低时因为预测值最低为0。这导致MAPE天然地倾向于低估。因为高估产生的百分比误差可以无限大而低估最多100%模型为了最小化MAPE会倾向于做出稍低的预测。对异常值敏感当真实值很小时即使绝对误差很小MAPE也会被放大。对称MAPE是为了克服MAPE的不对称性而提出的变体sMAPE (1/n) * Σ (2 * |y_i - ŷ_i|) / (|y_i| |ŷ_i|) * 100%分母是真实值和预测值的绝对值和这使得高估和低估在数学上对称了。但它也有自己的问题例如当真实值和预测值都接近零时公式可能不稳定。使用建议MAPE在商业预测报告中非常常见因为它易于理解。但在模型训练中直接使用MAPE作为损失函数需要格外小心尤其是数据中存在零值或小值时。更常见的做法是在评估阶段使用MAPE作为指标但在训练时使用其他更稳健的损失函数。6.2 对数误差损失为了克服MAPE对零值敏感的问题同时保留比例误差的思想可以使用对数误差Log-Cosh of Log Ratio:L Σ log(cosh(log(ŷ_i) - log(y_i)))或者更简单的均方对数误差MSLE (1/n) * Σ (log(y_i 1) - log(ŷ_i 1))²加1是为了防止对零取对数MSLE的特性关注比例误差因为log(a) - log(b) log(a/b)所以它惩罚的是预测值与真实值的比率误差。对小值更敏感由于对数函数的特性预测值从1到2的误差比从100到101的误差在MSLE看来要大得多。适用场景目标值范围很大跨越多个数量级且你更关心预测值的相对误差而非绝对误差。例如预测未来十年某APP的用户增长可能从1万到1亿MSLE比MSE更合适因为它不会让后期巨大的绝对误差完全主导训练过程。7. 高级与复合损失函数当单一目标无法满足复杂需求时就需要组合拳。7.1 分位数损失与区间宽度正则化如前所述用分位数损失做区间预测时一个自然的想法是区间越窄越好预测越精确但同时又要保证覆盖率例如声称的80%区间要真的包含80%的数据。这可以通过在分位数损失的基础上增加一个对预测区间宽度的正则项来实现L_total L_quantile λ * (ŷ_high - ŷ_low)其中λ是一个权衡系数控制我们对“区间窄”的偏好程度。这样模型会在保证一定覆盖率的前提下努力给出更紧凑的预测区间。7.2 平滑性正则化损失在时间序列预测中我们往往希望预测曲线是平滑的而不是剧烈震荡的。这可以通过在标准损失如MSE上增加一个对预测值二阶差分近似于加速度的惩罚项来实现L_total MSE λ * Σ (ŷ_{t} - 2*ŷ_{t-1} ŷ_{t-2})²这个附加项会惩罚预测序列的剧烈变化迫使模型输出更平滑的结果。这在需求预测、产能规划等场景中非常有用因为现实中很多指标的变化是渐进的。7.3 多目标复合损失有时我们需要同时优化多个目标。例如在电力负荷预测中我们既关心整体负荷的预测精度MSE也关心峰值负荷的预测精度因为涉及电网调度还希望预测曲线平滑。L_total α * MSE_total β * MSE_peak γ * Smoothness_Loss其中α, β, γ是权重系数需要根据业务重要性来设定。MSE_peak可以只计算每天最高负荷点附近的误差。设计复合损失的关键目标归一化不同损失函数的量纲和取值范围可能差异巨大如MSE可能几千平滑损失可能零点几。直接相加会导致某个目标完全主导。必须先对每个损失进行归一化例如除以其在初始模型上的值或者使用Z-score标准化。权重调优权重的设定是一个超参数优化问题可以基于验证集上的综合业务指标如自定义的效用函数来调整。8. 损失函数实战选择、调优与评估了解了所有“武器”后如何在实战中运用8.1 选择流程与A/B测试框架业务目标分析这是第一步也是最重要的一步。与业务方深入沟通明确预测过高和过低的成本是否相同我们更需要一个具体的点预测还是一个安全的预测区间大误差和小误差哪个更致命有没有必须准确预测的关键点如峰值、谷值数据探索可视化你的时间序列。检查异常值多吗是噪声还是重要信号分布目标值是对称分布还是偏态分布方差是否恒定零值/小值是否存在很多零值或接近零的值初选候选集基于1和2选出2-4个候选损失函数。例如成本对称、数据干净 - MSE, RMSE成本对称、有异常值 - MAE, Huber成本非对称 - Quantile Loss (τ0.75 或 0.25取决于方向)需要不确定性 - Gaussian NLL数据量级跨度大 - MSLEA/B测试在相同的模型架构、特征和验证集上用不同的损失函数进行训练和评估。训练监控观察训练损失和验证损失的下降曲线是否平稳。多维度评估不要只看损失函数本身的值用一组业务相关的评估指标在测试集上对比。这套指标应该包括整体精度RMSE, MAE比例误差MAPE (如果适用)偏差方向平均误差Mean Error正值表示系统性地低估负值表示高估。峰值/谷值精度计算在真实序列峰值点附近的预测误差。区间预测质量如果做了覆盖率Coverage、平均区间宽度。可视化诊断将不同模型的预测曲线与真实曲线画在一起。肉眼观察哪个模型捕捉趋势更好哪个对异常点反应更合理哪个预测曲线更平滑/更符合业务直觉8.2 超参数调优要点对于带有超参数的损失函数如Huber Loss的δ复合损失的权重λ调优至关重要Huber δ可以从数据中推导一个初始值。一个经验法则是计算验证集上MAE模型预测误差的绝对值的中位数将其作为δ的初始值进行微调。分位数τ直接由业务成本决定。如果高估成本是低估成本的2倍那么τ应该设置为 2/(12) ≈ 0.67。这意味着模型会倾向于给出一个较高的估值67%分位数因为高估的惩罚相对较轻。复合损失权重这是最棘手的部分。建议采用分层调优首先将所有权重设为1观察每个损失项的量级。然后根据业务优先级手动设定一个粗略的权重比例例如精度:峰值:平滑 5:3:2。最后在这个比例附近进行网格搜索或随机搜索以验证集上的综合业务指标或自定义的加权分数为目标进行优化。8.3 常见陷阱与排查技巧损失不下降或震荡剧烈可能原因学习率设置不当损失函数本身在某些区域梯度很小或不存在如MAE在零点数据未标准化导致梯度爆炸。排查检查梯度值尝试更小的学习率对于MAE可以考虑在训练初期使用MSE或Huber Loss预热再切换到MAE确保输入特征和目标值都进行了适当的标准化。模型预测出现系统性偏差持续高估或低估可能原因损失函数本身具有诱导偏差的特性如MAPE诱导低估数据本身存在偏移未处理模型容量不足无法捕捉复杂模式。排查计算预测误差的平均值检查是否使用了MAPE尝试对称的损失函数如sMAPE MAE检查数据预处理步骤尝试更复杂的模型。预测区间覆盖不足或过度覆盖可能原因使用分位数损失或NLL时模型对不确定性的估计不准确。排查在验证集上计算预测区间的实际覆盖率。如果覆盖率远低于目标如80%区间只覆盖了60%的数据说明模型过于自信可以尝试在损失中加入鼓励增大方差的项对NLL这通常意味着模型需要更好地学习异方差性。如果过度覆盖则相反。复合损失中某个目标始终无法优化可能原因该损失项的权重太小或被其他量级大的损失项淹没不同损失项的目标相互冲突。排查在训练过程中分别打印出各个损失项的值。如果某项损失始终不变或变化微小需要增大其权重或重新审视目标之间是否存在根本性矛盾例如要求同时达到最高精度和绝对平滑可能是不现实的需要在两者间权衡。选择时间序列预测的损失函数是一场在数学性质、数据特性和业务目标之间的精密权衡。没有“银弹”最好的函数永远是那个最贴合你手头问题场景的。从我多年的经验来看对于大多数初次接触的平稳序列预测从Huber Loss或MAE开始是一个稳健的选择它们对数据中的小毛病不那么挑剔。当你需要为业务决策提供风险边界时分位数损失提供的区间预测价值巨大。而当你构建一个复杂的预测系统需要平衡多个相互竞争的目标时勇敢地设计你自己的复合损失函数是走向成熟的关键一步。最后记住损失函数是模型的“指挥棒”。在模型上线前一定要拿着这根“指挥棒”产生的预测结果去问自己最后一个问题如果业务部门完全按照这个预测做决策结果会让我安心吗这个问题的答案才是检验损失函数选择是否成功的最终标准。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2629506.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…