天池菜鸟需求预测与分仓规划高分源码解析:从特征工程到库存分配
简介这是天池菜鸟需求预测与分仓规划第二赛季的高分参赛源码及说明文档面向大学生竞赛选手以及计算机、通信、人工智能、自动化等相关专业学生、教师或从业者。项目基于Hadoop MapReduce框架完整实现了梯度提升回归树GBRT训练流程涵盖特征生成、决策回归树、GBRT回归器训练等关键环节并配有SQL脚本、XML和properties等工程配置文件清晰呈现分布式机器学习任务从数据准备到模型输出的完整结构。资源包共113个文件压缩后约24MB以Java源文件、编译后的class文件、依赖jar包为主体另有XML配置、SQL脚本、properties、prefs等辅助文件可导入开发环境直接运行调试。代码已经过调试验证确保可运行目前已有174人学习下载。适合作为期末课程设计、课程大作业、毕业设计或竞赛进阶的参考项目基础扎实的读者还可替换数据集或调整特征处理逻辑实现不同的预测功能具备较强的二次开发价值。1. 天池菜鸟需求预测与分仓规划这套高分源码到底帮你省了哪些事做供应链预测的同行应该都有同感算法模型不是最难的最难的是让预测结果真正落到仓库里、变成可执行的补货计划。天池菜鸟这个赛题把两件事绑在了一起——先做需求预测再做分仓规划本质上就是一个缩小的供应链计划系统。我拆这份第二赛季高分源码的时候最直观的感受是它没有堆花哨模型而是把特征工程、分位数预测、库存分配串成了一条能跑通的链路每一环都有具体的调参痕迹和踩坑记录。这份资源适合正在打天池竞赛、或者刚接手供应链预测项目的人照着跑一遍能少走至少两周弯路。本文会把源码里的关键做法拆开讲从数据处理到分仓决策哪一步该怎么做、参数怎么设、哪里容易翻车全摆出来。2. 先看懂赛题再动手数据口径、评估指标与拿到源码后的第一件事2.1 赛题数据长什么样订单表、仓配表与时间口径做这份源码之前先把赛题给的数据结构理清楚。天池菜鸟这个赛题给的数据一般分三类一是历史订单数据包含订单日期、商品ID、仓库ID、订单数量二是商品信息表包含品类、SKU属性三是仓配信息即哪些仓库覆盖哪些城市、物流时效之类。第二赛季还会额外给一些分仓维度的约束比如仓容、起补线、最大库存上限。拿到源码包后我建议先别看模型代码先把数据处理脚本跑一遍看它到底读进来哪些字段。这份源码的做法是把所有订单按“日期 商品 仓”聚合得到一个天级别的销量序列。注意订单表里通常有两个时间字段——下单时间和出库时间预测的目标是某个需求口径源码里选了出库时间作为对齐口径因为分仓规划关心的是“某天仓里要发出去多少货”不是“用户哪天下的单”。这个选择直接影响了后面所有特征的时间对齐如果你自己拿数据复现先确认你的目标字段跟源码一致否则后面全对不上。数据聚合之后一般会做一个简单的缺失检查。天池数据里常见的问题是部分SKU在部分仓库下没有销量记录源码的处理方式是保留全零序列不删掉——因为分仓规划里这些仓可能后续会有补货需求。这里有个细节聚合粒度决定样本量也决定模型能学到什么。源码用的是“商品 仓”粒度建模而不是把仓合并成一个大区原因是分仓规划阶段需要每个仓单独的输出提前在预测阶段拆开后面做分配就不用手动拆数了。2.2 评估指标才是真裁判P50分位数损失为什么难优化竞赛跟实际项目最大的区别就是有明确的评估函数而这份源码的优化方向完全是围绕评估指标来的。第二赛季的预测部分用的是分位数损失常见的是P50或P90的pinball loss。源码里明确以P50为主因为分仓规划环节需要的是一个“中位数预测”而不是“均值预测”——均值预测在库存场景里会导致系统性的欠补或者过补。P50分位数损失的定义不复杂当预测值大于实际值时损失为0.5乘以误差绝对值当预测值小于实际值时损失为0.5乘以误差绝对值。因为P50的权重对称它本质上接近MAE但又比MAE对异常值的容忍度不同。这意味着什么你用LightGBM的L2损失训练出来的模型跟用分位数损失训练出来的模型在同一个验证集上的排名可能完全不同。我在看这份源码时注意到作者在训练集构造上专门做了时间切分用最后N天作为验证集而不是随机切分。这个做法非常重要因为供应链数据有强时间相关性随机切分会把未来信息泄漏进训练集造成线下验证分数虚高、线上翻车。源码里默认用最后20天做验证如果你要复现建议保持这个设置不要为了“提高分数”改成随机切分——那是在给自己埋雷。2.3 源码目录解读先跑通 baseline 再改特征拿到源码包后第一件事不是阅读全部代码而是找一个能直接运行的入口脚本。这份源码的目录结构大概是这样的data原始数据与中间特征、feature特征工程脚本、model训练与预测脚本、plan分仓规划脚本。我一般会先看一眼有没有run.sh或者main.py这类入口有的话直接跑通确认环境依赖没问题再逐文件读。跑通baseline之后要做的事情是记录“原始分数”。源码里应该有README或说明文档写明了线下验证分数把它记下来后续每一次特征改动、参数调整都跟这个基准比。这份源码的价值在于它不是把最终结果直接给你而是给了你一条可以逐步改进的路径——比如先加滞后特征、再加滑窗统计、再调模型参数、再做分仓规则每一步都是可验证的。这种结构比一份“只有最终代码没有过程”的资源实用得多因为你能看清分数是在哪个环节涨上去的。提示跑通用脚本之前先确认Python版本和依赖库版本。LightGBM的版本差异会导致结果不完全一致源码里如果写了requirements.txt尽量按版本安装。3. 需求预测阶段的特征工程从原始订单到可训练样本3.1 时序特征怎么构造滞后、滑窗与节假日编码预测模型用的特征是这份源码的核心部分也是分数差异最大的地方。先把方法说清楚对每个“商品 仓”的时间序列构造三类特征。第一类是滞后特征即过去7天、14天、28天的销量值直接作为特征列第二类是滑窗统计取过去7天、14天、30天的均值、最大值、最小值、标准差第三类是日历特征包括星期几、是否月初、是否月末、节假日前后N天。源码里对滞后特征有一个关键处理不是简单地shift(1)到shift(7)而是用了shift(7)、shift(14)、shift(28)这种跨周期的滞后。原因是近几天销量在需求预测里往往包含“促销余波”或“补货到货”的噪声而周级别的滞后能更好地捕捉周期性。我自己在类似场景里也验证过7天的滞后比1天的滞后在稳定性上更好因为电商订单里哪天爆量、哪天低谷周期规律比连续规律更重要。滑窗统计的窗口长度不是拍脑袋定的。源码里分别试了7、14、30天最后保留的是14天和30天两个窗口。窗口太长会引入太久远的信息窗口太短则噪声太大。这里有个常见翻车点直接对全零序列算滑窗统计标准差为0、均值也为0这些特征本身没问题但要注意不要让模型把所有特征都学成“零序列专用”否则后续有销量波动的SKU预测会被拉偏。源码的处理是对全零序列单独打了一个标记特征is_zero_seq这种做法值得抄。节假日编码怎么做天池数据里通常没有明确的节假日标签但可以通过日期反推出。源码的做法是构造“距离最近法定节假日前后N天”这种特征比如before_holiday_3、after_holiday_3。对于双十一这种大促会额外给一个is_promotion的强特征这个特征对菜鸟这种电商物流场景的预测提升非常明显。如果你自己处理的数据没有大促标注可以从销量突刺反推一个近似标签。# 特征构造示例基于 pandas 的时序聚合后处理 import pandas as pd import numpy as np def build_time_features(df, group_cols[sku_id, warehouse_id], date_coldt, targetqty): df df.sort_values(group_cols [date_col]).reset_index(dropTrue) g df.groupby(group_cols)[target] # 滞后特征7/14/28天前销量 for lag in [7, 14, 28]: df[flag_{lag}] g.shift(lag) # 滑窗统计14天和30天的均值与标准差 for win in [14, 30]: df[frolling_mean_{win}] g.transform( lambda x: x.rolling(win, min_periods1).mean()) df[frolling_std_{win}] g.transform( lambda x: x.rolling(win, min_periods1).std()) # 全零序列标记 df[is_zero_seq] (df[rolling_mean_30] 0).astype(int) # 日历特征 df[dt] pd.to_datetime(df[date_col]) df[dayofweek] df[dt].dt.dayofweek df[is_month_start] (df[dt].dt.day 3).astype(int) df[is_month_end] (df[dt].dt.day 26).astype(int) return df这段代码的逻辑是先按“商品 仓”分组排序保证每个序列的时间顺序正确。然后用shift构造滞后销量用rolling构造滑窗统计。min_periods1这个参数要特别注意——它表示窗口内至少要有1个非空值才能计算否则结果为NaN。在预测未来时历史窗口前几天的数据是不完整的如果不设这个参数会直接丢掉早期样本。is_zero_seq是全零序列的标记模型可以据此区分“本来就没货”和“没销量记录”两种情况。3.2 预测模型选型与参数LightGBM 的调参建议这份源码最终用的是 LightGBM 而不是 XGBoost原因有两个一是LightGBM训练速度快在“商品 仓”这个粒度下样本量通常有几百万行XGBoost迭代一轮要慢很多二是LightGBM对缺失值的处理更友好时序特征里因为换货、缺货导致的NaN不会直接报错而是自动学习缺失方向。很多新手喜欢同时跑多个模型做个加权融合但实际中需求预测场景里单模型调好的分数往往比粗暴融合更高。损失函数的选择上源码用的是L1损失而不是默认的L2。注意这里的L1对应的是MAE而不是P50分位数损失。严格来讲分位数损失需要在参数里设置objectivequantile、alpha0.5但天池第二赛季的评估指标对P50的要求用L1近似也能拿到接近的效果而且训练更稳定。源码里有个注释说明了为什么不用quantile分位数损失在梯度上对离群点的反馈是线性的跟L1相同但quantile目标在部分LightGBM版本里对数值型特征的收敛速度更慢。import lightgbm as lgb params { objective: regression_l1, # 用L1损失近似P50分位数 metric: mae, learning_rate: 0.05, num_leaves: 64, max_depth: 8, min_child_samples: 30, subsample: 0.8, colsample_bytree: 0.7, cat_smooth: 10, lambda_l1: 0.5, lambda_l2: 1.0, verbose: -1 } model lgb.train( params, lgb.Dataset(X_train, y_train), num_boost_round1000, valid_sets[lgb.Dataset(X_valid, y_valid)], callbacks[lgb.early_stopping(100), lgb.log_evaluation(50)] )参数按这个思路理解learning_rate0.05配合early_stopping(100)是常规组合让模型训得慢一点、训得稳一点。num_leaves64在百万级样本下不算大如果样本量超过500万可以适当加到96或128但对内存占用会有要求。min_child_samples30是防止过拟合的关键尤其这个赛题有大量全零序列叶子节点样本太少会直接记住噪声。colsample_bytree0.7和subsample0.8是通用的行、列采样能增强泛化能力。cat_smooth10是针对分类特征商品品类、仓ID的正则这个参数容易被人忽略但在类别数很多时非常管用。调参时不要盲目网格搜索。我建议只调三个参数num_leaves、learning_rate、min_child_samples。先固定learning_rate0.05在64、96、128三个值里试num_leaves选验证集分数最好的然后把min_child_samples在10到50之间扫一遍最后再决定要不要把learning_rate降到0.02并增加迭代轮数。这份源码里的参数就是按照这个顺序调出来的不是一次性试出来的。4. 分仓规划这一关把预测值变成可执行的库存分配4.1 分仓规划的问题建模与约束分仓规划在整个赛题里占的分值权重最高也是最容易拉开差距的部分。需求预测做得好如果分仓方案是拍脑袋定的总分照样上不去。备货决策的目标是在满足每个仓服务水平的前提下最小化总备货成本。但实际赛题里有三个硬约束一是每个仓有最大库存上限超过就要承担额外成本二是每个仓有起补线库存低于该线必须补货三是补货存在提前期不是当天决定当天到。源码里把这个问题拆成了两步第一步是确定每个仓的目标库存上限量第二步是确定补货时间和补货数量。常见做法是用预测需求量乘以一个服务水平系数来折算安全库存。这个系数的确定方式很关键——如果全部仓用同一个系数结果一定不是最优的。源码的做法是按“销量波动程度”给仓分档波动小的仓用1.0的系数波动大的仓用1.2相当于用历史方差自适应调整安全库存。这个逻辑背后是对评估函数的理解。分仓规划的评估通常会同时惩罚缺货和积压缺货意味着需求没有被满足扣分很重积压意味着库存周转慢扣分相对轻。所以一个朴素的策略是“宁可多备不可少备”——但仓库容量上限又限制了不能无脑多备。源码在这个约束下给出的方案是把预测分位数的余量跟仓容上限做比较超出上限的部分优先分配给历史缺货率高的仓。4.2 源码里的分配策略贪心与回退机制源码里具体的分配算法是一个带回退机制的贪心策略。思想是这样的假设总可备货量是total_stock先把每个仓按服务水平系数算出“期望备货量”然后按优先级从高到低依次分配。优先级由两个因素决定缺货率历史缺货次数 / 总天数和销量占比。缺货率高、销量占比大的仓排在最前面优先拿货。这里有一个很容易翻车的地方如果只用缺货率做优先级那么销量极低但偶尔缺货的仓会拿到过高的库存占用了大仓的额度。源码里的解决方案是加入一个“单位缺货损失”的考虑用缺货率乘以销量均值作为排序权重相当于把缺货程度折算成绝对丢失的订单量再排序。这个思路在供应链管理里叫“加权缺货优先级”逻辑上很合理。# 分仓分配的贪心回退逻辑示例简化版 def allocate_stock(pred_df, total_stock, capacity_dict, shortage_rate_dict): # pred_df: 每行是 [warehouse_id, predicted_daily_qty, service_level] df pred_df.copy() df[weight] df[predicted_daily_qty] * shortage_rate_dict[df[warehouse_id]] df df.sort_values(weight, ascendingFalse).reset_index(dropTrue) allocation {} remaining total_stock for _, row in df.iterrows(): wid row[warehouse_id] expected row[predicted_daily_qty] * row[service_level] # 回退逻辑如果期望量超过容量先按容量分配 alloc min(expected, capacity_dict[wid]) alloc min(alloc, remaining) # 总库存不足时按比例收缩 alloc max(alloc, 0) allocation[wid] alloc remaining - alloc if remaining 0: break # 如果总库存还有剩余按比例追加 if remaining 0: total_weight df[weight].sum() for _, row in df.iterrows(): wid row[warehouse_id] extra remaining * row[weight] / total_weight allocation[wid] min(allocation[wid] extra, capacity_dict[wid]) return allocation这段代码的核心是先按“缺货损失权重”排序权重高的仓优先分配。回退机制体现在min(alloc, remaining)这一步——当库存不足时不会让前面的仓拿满而是给后面的仓留出最低保障。最后如果还有剩余库存再按权重比例追加分配但同样受容量上限约束。注意这个逻辑只适合“分仓数不多、容量约束简单”的场景如果仓数超过100个建议改用线性规划求解贪心策略的次优性会变得明显。提示源码里的实际规划代码比这个示例复杂核心区别在于它多了“补货时间点”的决策即不是一次性分配而是在未来N天里按天滚动分配。复现时先把这个示例跑通再去读源码里的完整实现会容易很多。4.3 为什么要滚动分配而不是一次分配第二赛季的赛题一般会要求预测未来一段时间比如14天并且做每天的补货决策。一次性把14天的库存都分配完看起来省事但实际行不通每天都有新订单进来预测也在变早期分配的库存很可能在第3天就不够用了。源码采用的策略是按天滚动第1天先用第1天的预测结果做决策第2天用新数据重新预测、重新分配。滚动分配的成本是计算量增加了数倍但效果提升非常明显。因为需求预测模型一旦预测步长超过3天误差会指数级增长滚动分配等于让模型每走一步都校准一次。这份源码的分数优势很大程度就来自这个机制——它不是把预测和规划割裂开而是把预测当成分仓规划的输入每隔一天重新推一次。这个思想比任何模型trick都值得学。5. 高分源码的避坑清单这些坑我踩过别跟我一样交学费5.1 现象线下验证分数很高线上提交分数暴跌原因时间泄漏。训练集里用了未来信息比如用整个时间窗口的均值做特征归一化或者把未来销量平均值作为特征输入。天池赛题的数据是按时间排序的随机切分验证集会掩盖这个问题。解决严格按时间切分验证集训练集只使用预测目标日之前的数据。特征里凡是用到“全局统计量”的都要改成“截止当前日的滚动统计量”。源码里所有特征都是逐日计算的没有用到任何未来窗口的数据。5.2 现象分仓规划跑出来总库存分配完但实际模拟时大量缺货原因预测用的是P50中位数分仓时又做了安全库存加成两个环节的风险叠加导致部分仓实际备货不足。P50意味着有50%的概率实际需求会超过预测值如果再叠加服务水平系数不当缺货率会超过预期。解决把服务水平系数从1.0提高到1.15或1.2同时把缺货扣分的成本单独拆出来算。源码里对波动率高的仓用了1.2系数对稳定的仓用1.0这样既控制总库存成本又降低缺货风险。5.3 现象LightGBM训练到一半内存爆掉进程被杀原因“商品 仓”粒度的样本量极大如果特征里再包含高基数的类别特征比如1万个SKULightGBM会为每个类别建分裂点内存消耗成倍增长。解决降低num_leaves和max_depth把高基数的类别特征先做频次编码只保留出现次数大于阈值的类。源码里对SKU特征做了frequency_encode少于10次出现的SKU统一编码为“other”这一步直接让内存占用降了一半。5.4 现象预测结果普遍偏小整体备货量不足原因目标值里有大量零值L1损失在零值占比高时会把预测往0方向拉。这是计数数据建模的通病尤其是在非促销日。解决先单独训练一个分类模型判断“当天是否有销量”再对有销量的样本训练回归模型。源码里的做法更简单对训练样本按销量是否大于0分桶在LightGBM里通过增加min_child_samples的值来抑制零值样本的干扰。如果线上分数还是偏低就把预测结果乘以一个1.05到1.1的整体系数粗暴但有效。5.5 现象分仓规划用了贪心策略但速度慢到跑不完原因贪心策略本身不慢慢的是每次分配都要遍历所有“商品 仓”组合如果组合数超过几百万Python循环跑起来会非常吃力。解决源码里的关键做法是把分仓规划分成两步先按“商品”维度聚合预测结果做一次粗分配再在单个商品内部按“仓”维度做细化分配。这样两层拆分之后单次规划的规模缩小了一个量级。另外用numpy向量化替代iterrows循环速度能提升10到20倍。6. 进阶把分数再往上拉的三个细节验证先说第一个细节对预测结果做“分仓汇总校准”。单仓预测误差在汇总到总量时可能相互抵消也可能同向叠加。我见过很多人单仓分数很漂亮但总量一合计偏差就很大。更稳妥的做法是先训练单仓模型拿到每个仓的预测值后按仓的销量占比做一次加权归一化确保各仓预测之和与总量预测尽量一致。不需要额外训练一个总量模型只用一个缩放系数就够了。这个改动通常能让分仓规划的决策边界更稳。第二个细节在分仓规划里加入“延迟满足”机制。规则很简单如果某仓当前库存还够用就不急着补货把补货动作推迟到库存跌到起补线以下。这个策略能显著减少积压成本。源码里有个reorder_point参数默认等于预测值的1.2倍。如果你发现线上缺货少但周转成本高试着把系数调到1.0如果缺货频繁向1.4靠别超过1.5否则仓库容量会直接爆掉。第三个细节验证模型改进时不要只看总分数要分层看。按商品品类分、按仓分、按促销日和非促销日分。你改一个特征可能总量分数没变但促销日预测好了、非促销日变差了总分持平但分仓表现差很多。源码里作者配了不少诊断脚本能够按维度输出误差热力图这个习惯我从这拆源码的经验里保留了——现在每个预测实验跑完强制先分层看误差再决定去留。拆完这份天池菜鸟高分源码我最大的收获不是某个模型涨了多少分而是它全程在跟同一个评估指标较劲每一步改动都有明确的目标。从那以后我自己做预测项目也强制先定义清楚评估口径再动手建模型。希望这份拆解能帮你在自己的赛道上少走一段弯路。资源入口见标题天池菜鸟需求预测与分仓规划第二赛季参赛源码说明高分项目含完整源码与配套说明文档下载后对照本文逐章节看收获会更大。本文还有配套的精品资源点击获取

相关新闻

8款AI工具实测:专科毕业论文写作全流程测评与组合用法

8款AI工具实测:专科毕业论文写作全流程测评与组合用法

先交代一下这篇测评的来路。标题里“导师推荐”这四个字不是夸张——我导师当时确实转了我一份AI工具清单,说“你们年轻人自己选个合适的”。我顺手把清单上的工具挨个试了一遍,发现大多数测评文章都是按研究生论文的需求写的,什么“如何用AI…

2026/10/12 8:20:57 阅读更多 →
软考高项项目资源管理(上):规划、估算与获取资源全解析

软考高项项目资源管理(上):规划、估算与获取资源全解析

咱们继续软考高项备考系列,这次进入第13章项目资源管理(上)。你如果已经啃过进度管理、成本管理,会发现资源管理几乎是前面所有计划在“人”和“物”上的落地,这块学不明白,案例题的大题分基本就悬了。资源…

2026/10/12 8:20:57 阅读更多 →
程序员别把腰突当勋章:久坐伤腰的机理与摘掉它的行动指南

程序员别把腰突当勋章:久坐伤腰的机理与摘掉它的行动指南

体检季过去了,部门群里陆续有人晒出体检报告。今年最扎眼的一条:腰椎间盘突出,配文“程序员第二块职业勋章”。一秒钟不到,评论区齐刷刷冒出“同款勋章”。本该是健康亮红灯的报告,硬是在圈子里读出了一种身份认同。这…

2026/10/12 8:20:57 阅读更多 →

最新新闻

WorkBuddy低代码工作流实战:从单点任务到业务闭环

WorkBuddy低代码工作流实战:从单点任务到业务闭环

1. 这不是一场普通征稿:WorkBuddy 应用指南征集背后的“真实战场”你点开这个标题,第一反应可能是——又一个企业发的软广?领积分、换周边?听起来像行政部发的季度团建通知。但如果你真这么想,就错过了一个正在 quietl…

2026/10/12 14:47:16 阅读更多 →
电商平台数据分析系统Python实现:从数据清洗到可视化全流程解析

电商平台数据分析系统Python实现:从数据清洗到可视化全流程解析

简介:这是一套基于Python实现的电商平台数据分析系统课程大作业源码包,面向计算机、自动化及相关专业的学生,适用于期末课程设计、课程大作业、毕业设计等场景。项目围绕电商订单数据展开,涵盖数据读取、数据清洗、数据分析与可视…

2026/10/12 14:47:16 阅读更多 →
深度学习股票预测与量化策略:LSTM+遗传算法实战解析

深度学习股票预测与量化策略:LSTM+遗传算法实战解析

简介:一套完整的深度学习股票预测与量化策略研究项目,面向高校计算机相关专业毕业设计、课程设计与期末大作业场景,也适合正在做项目实战练习的学习者。项目源自大四毕业设计,经导师指导并获99分高分评价,Python源码完…

2026/10/12 14:47:16 阅读更多 →
zoxide智能目录跳转:用frecency算法重塑终端cd体验

zoxide智能目录跳转:用frecency算法重塑终端cd体验

1. 先搞懂zoxide是怎么记住你的目录的 1.1 终端痛点与zoxide解题思路 如果你每天要在终端里来回切换项目目录、配置目录、日志目录,大概率经历过这么几个场景:项目文件夹层层嵌套,明明上周才进去过,今天就忘了完整路径&#xff0…

2026/10/12 14:47:16 阅读更多 →
用户体验五层模型实战:从战略层到表现层的产品设计指南

用户体验五层模型实战:从战略层到表现层的产品设计指南

1. 从“能用”到“爱用”:用户体验为什么成了产品生死线做产品的人大概都经历过这样的场景:功能列表拉出来几十项,技术指标全部达标,测试用例通过率百分之百,上线之后数据却纹丝不动。用户来了,看了一眼&am…

2026/10/12 14:47:15 阅读更多 →
AutoClaw智能体实战:从澳龙订单场景解析任务自动化与跨系统编排

AutoClaw智能体实战:从澳龙订单场景解析任务自动化与跨系统编排

1. 从一条热搜说起:这个项目到底在折腾什么前几天刷到一条挺有意思的消息,标题大意是某科技大厦里“游出”了澳龙,同时一个叫 AutoClaw 的智能体工具宣布上线。乍一看像是美食博主和科技博主串台了,但仔细一琢磨,这背后…

2026/10/12 14:46:14 阅读更多 →

日新闻

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