尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
汽车月销量预测实战:ARIMA、SARIMAX与Auto ARIMA对比
1. 项目缘起与整体思路拆解1. 1 为什么选汽车月销量这个场景汽车月销量这个数据做时间序列预测算是相当经典的一个练手场景。它有几个天然优势数据颗粒度是月度的频率适中既不像日度数据那样噪声大到让人头疼也不像年度数据那样样本量少得可怜同时汽车销量本身带有明显的季节性规律比如年底冲量、春节前后淡季、金九银十这些行业性节奏非常适合拿来验证季节性模型的效果。我最初接触这个项目是因为手头有一批月度销量数据需要做短期滚动预测试过一些常规回归方法后发现效果一般核心问题在于自回归特征和季节性特征没有被显式建模。后来转向ARIMA家族才算找到了比较对路的工具。这篇文章就把我整个实操过程拆开来讲从数据准备、平稳性检验、定阶、建模、诊断到预测评估每一步都给出可复现的操作和踩过的坑。适合谁看如果你已经会用pandas做基本的数据清洗对matplotlib画图不陌生但一提到ARIMA就只知道调ARIMA(order(p,d,q))却说不清p、d、q怎么来的那这篇内容应该能帮你把整条链路打通。如果你已经用过SARIMAX但总是被收敛警告和预测效果不稳定困扰里面关于定阶策略和诊断的部分也值得参考。1. 2 三种模型的定位差异这个项目要对比三个东西ARIMA、SARIMAX和Auto ARIMA。很多人会把它们混为一谈其实定位差别挺大。ARIMA是非季节性自回归积分滑动平均模型核心参数是(p, d, q)。p是自回归项数d是差分次数q是移动平均项数。它假设序列的统计特性不随季节变化适合没有明显周期性的数据。用在汽车月销量上如果不做季节性处理效果通常会打折扣。SARIMAX是在ARIMA基础上加了季节性成分(S, P, D, Q, m)和外生变量(X)。m是季节周期长度月度数据一般取12。外生变量可以塞入促销月份、政策月、节假日天数等影响销量的因素。它的表达能力强很多但参数空间也大得多定阶更麻烦。Auto ARIMA不是新模型而是一套自动搜索最优(p, d, q)(P, D, Q, m)组合的流程。它通过逐步差分确定d和D再用AICc等准则在候选模型里挑最优。省去了手工定阶的麻烦但计算量大而且自动选出来的不一定业务上最合理。我个人的经验是先用Auto ARIMA快速摸一个基准再用SARIMAX手工调最后拿ARIMA做对照看季节性成分到底贡献了多少。这样对比下来结论才有说服力。1. 3 整体流程设计整个项目的流程我拆成六步后面每个章节会展开讲数据获取与清洗拿到月度销量序列处理缺失值、异常值统一时间索引。探索性分析画时序图、分解图看趋势、季节、残差。平稳性检验与差分ADF检验判断平稳性确定差分阶数。模型定阶与训练分别用ACF/PACF手工定阶、网格搜索、Auto ARIMA自动定阶。模型诊断残差白噪声检验、Ljung-Box检验、正态性检查。预测与评估滚动预测用MAE、RMSE、MAPE对比三个模型。这个顺序不是随便排的。平稳性检验必须在定阶之前因为ARIMA的前提是序列平稳模型诊断必须在预测之前因为残差有自相关的模型预测不可信。很多人跳过诊断直接看预测图结果被表面拟合效果骗了。提示时间序列建模最忌讳“先跑通再补检验”。平稳性和残差诊断这两步如果省了后面所有结论都站不住脚。2. 数据准备与探索性分析的关键细节2. 1 数据清洗里最容易忽略的坑拿到月度销量数据第一件事不是急着建模而是把时间索引对齐。我见过太多人栽在这上面数据里月份是字符串“2023-01”索引却是默认的整数0、1、2……结果模型学到的“时间”其实是行号预测出来的东西完全没有时间意义。正确做法是用pd.to_datetime转成时间戳再设为索引并且用asfreq(MS)把频率显式声明为月初。为什么要用MS而不是M因为月度数据的默认频率在不同pandas版本里行为不一致显式指定月初可以避免重采样时的歧义。缺失值处理也有讲究。汽车销量数据偶尔会因为统计口径调整出现某月缺失。如果缺失在中间用线性插值补上通常没问题如果缺失在末尾千万别插值因为那等于凭空造数据应该直接截断到最后一个真实观测。异常值方面我一般用滚动中位数加3倍MAD绝对中位差来识别比均值和标准差稳健得多因为销量数据里偶尔的促销冲量会把标准差拉偏。import pandas as pd import numpy as np # 假设原始数据有两列month, sales df pd.read_csv(car_sales.csv) df[month] pd.to_datetime(df[month]) df df.set_index(month).sort_index() df df.asfreq(MS) # 中间缺失线性插值末尾缺失截断 if df[sales].isna().any(): last_valid df[sales].last_valid_index() df df.loc[:last_valid] df[sales] df[sales].interpolate(methodlinear) # MAD异常值识别 rolling_median df[sales].rolling(12, centerTrue, min_periods6).median() mad (df[sales] - rolling_median).abs().rolling(12, centerTrue, min_periods6).median() outlier_mask (df[sales] - rolling_median).abs() 3 * 1.4826 * mad print(f识别到异常点数量: {outlier_mask.sum()})这段代码里1.4826是MAD到标准差的换算系数在正态假设下让MAD和标准差可比。识别出来的异常点不要直接删先看看是不是真实的促销月如果是真实业务事件保留反而有助于模型学习。2. 2 时序分解告诉你数据里有什么清洗完数据下一步是看。我习惯先画三张图原始时序图、STL分解图、滚动统计图。原始时序图看整体趋势和明显的季节波动。汽车销量通常有长期增长或周期波动加上每年重复的月度模式。STL分解把序列拆成趋势、季节、残差三部分能直观看到季节性振幅是否稳定。如果季节振幅随趋势增大而增大说明可能需要做对数变换或者用乘法模型。滚动统计图看滚动均值和滚动标准差是否随时间变化。如果滚动均值有明显漂移说明序列非平稳需要差分如果滚动标准差变化大说明方差非平稳可能要考虑Box-Cox变换。from statsmodels.tsa.seasonal import STL import matplotlib.pyplot as plt # STL分解period12对应月度数据 stl STL(df[sales], period12, robustTrue) res stl.fit() fig, axes plt.subplots(4, 1, figsize(12, 10)) df[sales].plot(axaxes[0], title原始序列) res.trend.plot(axaxes[1], title趋势项) res.seasonal.plot(axaxes[2], title季节项) res.resid.plot(axaxes[3], title残差项) plt.tight_layout() plt.show()robustTrue这个参数很关键它让STL对异常值不敏感。如果不加一个促销冲量点可能把整个趋势项带偏。看完分解图心里要有个判断趋势项是不是线性季节项振幅稳不稳残差项有没有明显结构这些判断直接决定后面差分阶数和是否取对数。2. 3 平稳性检验的正确打开方式平稳性是ARIMA的命根子。ADF检验增广迪基-福勒检验是标配但很多人只看p值小于0.05就完事这是不够的。ADF检验的原假设是“存在单位根序列非平稳”。p值小于0.05拒绝原假设认为序列平稳。但ADF对滞后阶数敏感默认的滞后选择可能不合适。我一般会同时看三种信息准则AIC、BIC、t-stat选出的滞后阶数如果结论一致才放心。更重要的是ADF检验对“趋势平稳”和“差分平稳”区分能力有限。一个带确定性趋势的序列ADF可能拒绝单位根但它其实不是我们想要的平稳。所以我会配合KPSS检验一起看。KPSS的原假设是“序列平稳”和ADF正好相反。两个检验结论一致时最可靠ADF拒绝KPSS不拒绝说明序列平稳ADF不拒绝KPSS拒绝说明需要差分。from statsmodels.tsa.stattools import adfuller, kpss def check_stationarity(series, name): adf_result adfuller(series, autolagAIC) kpss_result kpss(series, regressionc, nlagsauto) print(f{name} ADF p值: {adf_result[1]:.4f}, KPSS p值: {kpss_result[1]:.4f}) return adf_result[1], kpss_result[1] # 原始序列 check_stationarity(df[sales], 原始序列) # 一阶差分 check_stationarity(df[sales].diff().dropna(), 一阶差分) # 一阶差分后再季节差分 check_stationarity(df[sales].diff().diff(12).dropna(), 一阶季节差分)实际操作中汽车月销量通常需要一阶差分消除趋势再做一次12阶季节差分消除季节性。但也不是绝对的如果季节振幅稳定且趋势平缓可能只需要季节差分。差分次数d和D不是越多越好过度差分会让序列方差膨胀模型变得不稳定。注意每次差分后都要重新做平稳性检验不要凭感觉连差两次。差分一次后如果ADF和KPSS都指向平稳就停手。3. 三种模型的定阶策略与实操对比3. 1 ARIMA手工定阶ACF和PACF怎么读ARIMA的定阶靠ACF自相关函数和PACF偏自相关函数图。理论上的规则是ACF拖尾、PACF截尾用AR模型ACF截尾、PACF拖尾用MA模型两者都拖尾用ARMA。但实际数据里“拖尾”和“截尾”的边界很模糊尤其是加了差分之后。我的经验是不要死磕理论规则而是把ACF/PACF图当作候选范围的参考。比如PACF在滞后1、2、3阶都超出置信区间4阶之后落回那p可以从1到3都试试ACF类似地给q一个范围。然后用AIC/BIC在候选网格里选。from statsmodels.graphics.tsaplots import plot_acf, plot_pacf fig, axes plt.subplots(2, 1, figsize(12, 8)) plot_acf(df[sales].diff().dropna(), lags36, axaxes[0]) plot_pacf(df[sales].diff().dropna(), lags36, axaxes[1]) plt.show()看ACF/PACF时有个细节置信区间是±1.96/√nn是有效样本量。如果样本量小置信区间会很宽很多滞后都会落在区间内这时候定阶要保守宁可取小阶数。另外季节差分后的序列在滞后12、24处会有显著相关这是季节性的残留需要在SARIMAX里用季节项处理而不是靠加大非季节阶数。手工定阶的网格搜索可以这样写import warnings from statsmodels.tsa.arima.model import ARIMA warnings.filterwarnings(ignore) best_aic np.inf best_order None for p in range(4): for q in range(4): try: model ARIMA(df[sales], order(p, 1, q)) result model.fit() if result.aic best_aic: best_aic result.aic best_order (p, 1, q) except: continue print(f最优ARIMA阶数: {best_order}, AIC: {best_aic:.2f})这里d固定为1因为前面平稳性检验已经确定了一阶差分。如果检验结果是d0或d2这里要相应调整。网格范围我一般从0到3再大就容易过拟合而且计算量陡增。3. 2 SARIMAX的季节项与外生变量SARIMAX的完整阶数是(p, d, q)(P, D, Q, m)。m对月度数据取12。P、D、Q是季节部分的阶数通常都很小0或1居多。D是季节差分次数前面检验如果做了一次季节差分这里D1。季节项的定阶同样看季节滞后处的ACF/PACF。比如ACF在滞后12处显著PACF在滞后12处也显著那P和Q都可能非零。但季节阶数一高参数数量增长很快容易不收敛。我的策略是先把P和Q限制在0或1跑一轮看AIC再决定要不要扩到2。外生变量是SARIMAX的加分项。汽车销量可以加入的外生变量包括月份哑变量捕捉固定月度效应、春节所在月份标记、促销活动月标记、季度末标记等。加入外生变量前要想清楚这个变量在预测期是否已知如果预测未来12个月春节月份是已知的可以用但促销活动如果还没定就不能用否则预测时没有输入。from statsmodels.tsa.statespace.sarimax import SARIMAX # 构造外生变量月份哑变量 month_dummies pd.get_dummies(df.index.month, prefixmonth, drop_firstTrue) month_dummies.index df.index # 春节月份标记假设2月为春节月实际按年份调整 df[spring_festival] (df.index.month 2).astype(int) exog pd.concat([month_dummies, df[[spring_festival]]], axis1) model SARIMAX(df[sales], exogexog, order(1, 1, 1), seasonal_order(1, 1, 1, 12), enforce_stationarityFalse, enforce_invertibilityFalse) result model.fit(dispFalse) print(result.summary())enforce_stationarityFalse和enforce_invertibilityFalse这两个参数在调试阶段很有用它们放宽了参数约束让模型更容易收敛。但最终模型最好还是打开约束确保参数在平稳可逆区域内。如果打开约束后不收敛说明阶数可能过高需要降阶。3. 3 Auto ARIMA自动定阶的实操与局限Auto ARIMA我用的是pmdarima库它的auto_arima函数封装了逐步搜索流程。核心参数包括seasonalTrue开启季节搜索m12指定周期stepwiseTrue用逐步算法加速suppress_warningsTrue屏蔽收敛警告。import pmdarima as pm auto_model pm.auto_arima( df[sales], seasonalTrue, m12, stepwiseTrue, suppress_warningsTrue, traceTrue, error_actionignore, max_p3, max_q3, max_P2, max_Q2, information_criterionaicc ) print(auto_model.summary())traceTrue会打印每一步搜索的模型和AICc方便你看到搜索路径。information_criterionaicc用AICc而不是AIC因为AICc对小样本有修正更不容易过拟合。Auto ARIMA的局限要说清楚。第一它只优化统计准则不考虑业务合理性。比如它可能选出一个季节阶数很高的模型AICc略优但参数解释性差。第二它默认的搜索范围有限如果最优模型在范围外它找不到。第三它对异常值敏感一个促销冲量点可能让它选错差分阶数。所以我的做法是Auto ARIMA的结果作为基准和参考不直接当作最终模型。把它选出的阶数拿到SARIMAX里加上外生变量再训练往往效果更好。三个模型的定阶策略对比可以整理成表模型定阶方式优点缺点适用场景ARIMAACF/PACF手工网格搜索简单直观计算快无法处理季节性无季节性的短序列SARIMAX手工定阶外生变量表达能力强可解释参数多易不收敛有季节性外部因素Auto ARIMA自动逐步搜索省时基准可靠不考虑业务范围有限快速摸基准4. 模型诊断与预测评估的完整流程4. 1 残差诊断模型是否真的学到了东西模型训练完第一件事不是看预测图而是看残差。残差应该像白噪声均值接近零、方差恒定、无自相关、近似正态。如果残差还有结构说明模型没学干净。我一般做四张诊断图残差时序图、残差直方图、Q-Q图、残差ACF图。残差时序图看有没有趋势或周期残留直方图和Q-Q图看正态性ACF图看自相关。from statsmodels.stats.diagnostic import acorr_ljungbox from scipy import stats resid result.resid fig, axes plt.subplots(2, 2, figsize(12, 8)) resid.plot(axaxes[0, 0], title残差时序) axes[0, 1].hist(resid, bins20, edgecolorblack) axes[0, 1].set_title(残差直方图) stats.probplot(resid, distnorm, plotaxes[1, 0]) axes[1, 0].set_title(Q-Q图) plot_acf(resid, lags24, axaxes[1, 1]) axes[1, 1].set_title(残差ACF) plt.tight_layout() plt.show() # Ljung-Box检验 lb_test acorr_ljungbox(resid, lags[12, 24], return_dfTrue) print(lb_test)Ljung-Box检验的原假设是“残差无自相关”。p值大于0.05才说明残差干净。如果滞后12或24的p值小于0.05说明模型没捕捉到某些周期性需要调整季节阶数。残差正态性不是ARIMA的硬性要求但影响预测区间的准确性。如果残差严重偏态预测区间会不对称这时候可以考虑对原始数据做Box-Cox变换后再建模。提示诊断阶段如果发现残差ACF在滞后12处显著优先检查季节差分D是否设对而不是盲目加大P和Q。4. 2 滚动预测与评估指标预测评估不能只看一步预测。我一般做滚动预测用前n个月训练预测下一个月然后窗口后移重复多次。这样得到的预测误差更接近真实使用场景。def rolling_forecast(model_class, data, order, seasonal_orderNone, exogNone, horizon12, train_sizeNone): n len(data) if train_size is None: train_size n - horizon predictions [] actuals [] for i in range(train_size, n): train data.iloc[:i] test data.iloc[i:i1] if seasonal_order: model model_class(train, exogexog.iloc[:i] if exog is not None else None, orderorder, seasonal_orderseasonal_order, enforce_stationarityFalse, enforce_invertibilityFalse) else: model model_class(train, orderorder) result model.fit(dispFalse) pred result.forecast(steps1, exogexog.iloc[i:i1] if exog is not None else None) predictions.append(pred.values[0]) actuals.append(test.values[0]) return np.array(predictions), np.array(actuals) # 评估指标 def evaluate(actual, pred): mae np.mean(np.abs(actual - pred)) rmse np.sqrt(np.mean((actual - pred) ** 2)) mape np.mean(np.abs((actual - pred) / actual)) * 100 return mae, rmse, mape滚动预测的计算量比一次性预测大很多但结果更可信。如果数据量很大可以适当减少滚动次数比如只滚动最后24个月。三个模型的评估结果我一般整理成表模型MAERMSEMAPE训练时间收敛情况ARIMA较高较高较高快稳定SARIMAX最低最低最低中等偶尔警告Auto ARIMA中等中等中等慢稳定具体数值因数据而异但通常SARIMAX因为加入了季节项和外生变量误差最小。ARIMA因为没有季节项误差最大。Auto ARIMA介于两者之间但它的优势是省去了手工定阶的时间。4. 3 预测结果的可视化与业务解读预测图要包含三部分历史实际值、预测值、预测区间。预测区间用get_forecast的conf_int方法获取。forecast result.get_forecast(steps12, exogexog_future) forecast_mean forecast.predicted_mean forecast_ci forecast.conf_int(alpha0.05) plt.figure(figsize(12, 6)) plt.plot(df.index, df[sales], label历史实际) plt.plot(forecast_mean.index, forecast_mean, label预测, colorred) plt.fill_between(forecast_ci.index, forecast_ci.iloc[:, 0], forecast_ci.iloc[:, 1], colorred, alpha0.2, label95%置信区间) plt.legend() plt.title(汽车月销量预测) plt.show()业务解读时要注意预测区间比点预测更有价值。如果区间很宽说明模型不确定性大业务决策要保守。另外预测值如果出现明显不符合业务常识的跳变要回头检查外生变量在预测期的取值是否合理。5. 常见问题与排查技巧实录5. 1 收敛警告与参数估计失败SARIMAX最常见的报错就是“Maximum Likelihood optimization failed to converge”或者“非正定矩阵”。原因通常有三个阶数过高、数据尺度太大、初值不好。阶数过高是最常见的。解决办法是降阶先把季节阶数降到0或1非季节阶数降到2以内跑通后再逐步加。数据尺度太大也会导致数值问题比如销量是几十万级别可以除以10000把尺度降到个位数。初值问题可以通过start_params手动指定或者用fit(methodnm)先用Nelder-Mead跑一轮再用默认的BFGS。# 先用nm方法找初值再用bfgs精调 result model.fit(methodnm, maxiter200, dispFalse) result model.fit(start_paramsresult.params, methodbfgs, dispFalse)这个方法我实测下来很稳尤其是对季节阶数较高的模型。5. 2 预测值偏离实际太远预测值偏离实际先分情况。如果历史拟合很好但预测很差通常是过拟合模型把噪声也学了。解决办法是降低阶数或者增加训练数据量。如果历史拟合就差说明模型设定有问题检查差分阶数、季节周期、外生变量。还有一种情况是预测期外生变量取值不合理。比如月份哑变量在预测期如果全取0模型会失去月度效应。正确做法是预测期也要构造对应的哑变量矩阵和训练期对齐。5. 3 差分次数选择困难差分次数d和D的选择我的经验是先看ADF和KPSS两个都指向平稳就停。如果两个结论矛盾优先相信KPSS因为ADF在近单位根情况下检验力低。另外d一般不超过2D一般不超过1。过度差分会让序列过度平滑预测变得迟钝。如果一阶差分后ADF还是不拒绝但KPSS也不拒绝说明序列可能在单位根附近这时候可以试试带漂移项的ADF检验或者直接取d1因为实际数据很少有真正的单位根多数是近单位根过程。5. 4 常见问题速查表问题现象可能原因排查方法解决措施收敛警告阶数过高/尺度大检查order和seasonal_order降阶/缩放数据残差ACF显著季节项不足看滞后12/24的ACF增加P或Q预测区间过宽模型不确定大看残差方差增加数据/简化模型预测值跳变外生变量异常检查预测期exog修正exog取值AIC很小但预测差过拟合对比训练/测试误差降阶/正则化5. 5 几个独家避坑技巧第一训练SARIMAX时把enforce_stationarity和enforce_invertibility先设为False跑通再设为True重跑。这样能快速定位是参数约束问题还是模型设定问题。第二Auto ARIMA的m参数一定要显式指定。月度数据m12季度数据m4。如果不指定它可能把周期识别错选出的季节阶数完全不对。第三滚动预测时外生变量矩阵要和训练期列对齐。用pd.concat拼接后检查列名和顺序是否一致否则预测会报错或结果错位。第四评估指标不要只看MAPE。销量数据如果有接近零的月份MAPE会爆炸。这时候用MAE或RMSE更稳。我一般三个都算互相印证。第五保存模型用result.save(model.pkl)下次直接SARIMAXResults.load(model.pkl)省去重新训练的时间。但要注意加载后的模型预测时exog列必须和训练时完全一致。6. 模型选择与后续扩展的个人体会三个模型跑下来我的结论是如果数据有明显季节性SARIMAX是首选但前提是愿意花时间定阶和调外生变量。Auto ARIMA适合快速摸基准或者作为SARIMAX定阶的起点。ARIMA适合作为对照帮你判断季节性成分到底贡献了多少预测力。后续扩展有几个方向。一是加入更多外生变量比如宏观经济指标、油价、竞品销量但要注意预测期这些变量是否可得。二是尝试Prophet或LightGBM等替代方法和SARIMAX做对比。三是做集成把三个模型的预测加权平均通常比单模型稳。我在实际使用中发现SARIMAX的预测效果对差分阶数特别敏感。同样一组数据d1和d2的预测结果可能差很多。所以每次换数据平稳性检验这一步绝对不能省。另外季节阶数不要贪高P1、Q1在多数月度数据上已经够用加到2往往只是AIC略优但预测稳定性下降。最后分享一个小技巧如果SARIMAX训练太慢可以先用Auto ARIMA定出阶数再把这个阶数固定只优化外生变量系数。这样计算量小很多效果通常也不差。
RELATED

相关推荐

配电网韧性研究:应急移动电源动态调度Matlab代码实现详解

配电网韧性研究:应急移动电源动态调度Matlab代码实现详解

復现一篇 SCI 一区论文的配电网韧性研究,最难的不是看懂模型,而是把论文里轻描淡写的约束还原成能跑出结果的 Matlab 代码。这篇专门讲应急移动电源动态调度(MPS Dynamic Dispatch)的实现,接上篇的预配置问题。上篇我们…

📅 2026/10/18 5:32:15
ESP-IDF VSCode 插件配置方法(2):把 settings.json 改到 TaoToken 的完整步骤

ESP-IDF VSCode 插件配置方法(2):把 settings.json 改到 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/18 5:32:15
小米MiMo都接入了!Hermes Agent 这个开源AI智能体到底强在哪?TaoToken 统一 Key 通道实测

小米MiMo都接入了!Hermes Agent 这个开源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/18 5:32:15
MORE NEWS

更多资讯

📰

前端二进制数据处理:ArrayBuffer、TypedArray与DataView实战解析

做前端时间久了,特别是接触过文件上传、音视频处理、WebSocket 二进制帧或者 WebAssembly 之后,你会发现有一个坎绕不开:ArrayBuffer、TypedArray 和 DataView。这三兄弟表面上看起来都是处理二进制的,但它们的定位、底层逻辑和适…

📰

P1008 [NOIP 1998 普及组] 三连击

题目链接&#xff1a; P1008 [NOIP 1998 普及组] 三连击 - 洛谷 最佳思路&#xff1a; 数据量小 直接枚举&#xff1a; #include<bits/stdc.h> using namespace std; bool f(int x,int y, int z) {int c[10] {0};int num[3] {x,y,z};for(int i 0 ; i < 3;i){whi…

📰

TPAMI 2026|湖南大学:PAN × 马赛克图像融合,实现等变贝叶斯高光谱成像

TPAMI 2026&#xff5c;等变贝叶斯高光谱融合&#xff1a;无真值训练&#xff0c;兼顾空间细节与光谱保真 一句话总结 论文用无监督等变贝叶斯框架融合马赛克与全色图像&#xff08;Panchromatic Image&#xff0c;PAN&#xff09;&#xff0c;改善高光谱图像&#xff08;Hype…

📰

CVPR 2026|CHAL:面向运动红外小目标检测的因果引导分层异常感知学习

CVPR 2026&#xff5c;CHAL&#xff1a;先学背景再找异常&#xff0c;让运动红外小目标更容易被发现 1. 一句话总结 红外小目标太小、太暗&#xff0c;容易与背景干扰混淆。CHAL先学习背景&#xff0c;再通过外观异常、运动验证和因果引导定位目标&#xff0c;在三个红外数据…

📰

从流量算法到价值算法:基于系统演化公理的下一代内容分发范式思考

从流量算法到价值算法&#xff1a;基于系统演化公理的下一代内容分发范式思考原创确权&#xff1a;尹玉玺&#xff5c;84321天道归一理论体系安全声明&#xff1a;本文为互联网内容生态、算法演化、用户心智系统的纯学术范式研究&#xff0c;无平台批判、无对立导向&#xff0c…

📰

BERT微调实战:微博舆情分析系统的数据治理与模型训练全流程

做了好几年NLP相关的东西&#xff0c;工具链换了一批又一批&#xff0c;但真正能在业务里稳定跑起来的系统&#xff0c;从来不是哪个模型最花哨&#xff0c;而是能把数据、模型和应用串成一条完整链路的那套工程方案。去年我接了一个社交平台舆论监测的需求&#xff0c;一开始以…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬