基于土壤数据与机器学习的农作物推荐:随机森林与XGBoost实战
简介面向农业数据分析和机器学习初学者这份代码资源基于土壤氮、磷、钾等养分含量实现多种机器学习分类算法用于农作物种植推荐可服务于区域种植规划、科学施肥及农业可持续发展相关研究或项目。压缩包共9个文件其中3个Python脚本承担模型训练与界面逻辑2个Jupyter Notebook提供分步分析和可视化过程2个CSV数据集存放训练样本另有已保存的pkl模型和HTML交互页面整体仅182KB覆盖从数据处理、建模到结果展示的完整链路。已有1282人学习浏览适合希望快速复现农业机器学习流程或开展课设、竞赛实践的开发者和学生。依托下载包中的CSV数据即可重新训练分类模型并导出pklHTML页面可直观查看推荐结果Notebook保留了算法调参与对比的中间过程便于理解不同特征组合对预测效果的影响。代码结构简单、运行依赖少稍作修改即可应用于本地土壤数据集是一份轻量而实用的农业智能推荐参考实现。1. 农作物推荐不是“看天吃饭”这份土壤数据机器学习代码能落到哪一步农作物推荐听起来像“看天吃饭”的老经验但当我拿到一份包含pH、有机质、氮磷钾、CEC和上千条地块记录的土壤数据时靠农艺师手工查表已经排不出优先级——指标一多规则就开始互相打架。这套基于土壤数据与机器学习算法的农作物推荐代码包把“这块地适合种什么”做成了标准的监督学习流程清洗土壤样本、构造作物适宜性标签、用随机森林和XGBoost训练推荐模型最终输出Top3作物和置信度。适合农业信息化从业者、农学方向研究生以及想验证“数据能不能替掉一部分经验”的种植决策者。它不解决种子、销路和气候变化问题但能把一堆化验单变成一张可解释的推荐清单。2. 从农艺规则到监督学习为什么这个场景必须上机器学习2.1 查表式推荐的天花板多因子交互顾不过来传统农艺推荐最主流的形态是专家查表pH在5.5到7.0、有机质大于20g/kg的田块推荐种水稻pH小于5.0推荐种茶树速效磷低于10mg/kg则提示先补磷再种需磷作物。每张表只管两三个指标隐含假设是指标之间相互独立。真实地块几乎都是复合情况pH偏酸、有机质够但速效磷缺三条规则同时指向不同作物冲突最后只能靠人拍板而且每个专家的口径还不一样。这是规则体系的第一个天花板——组合爆炸。第二个天花板在数据量。一张规则表只能覆盖有限个典型组合但土壤数据的连续取值几乎是无穷的。同一pH下不同质地的缓冲能力不同同一速效磷含量下不同作物的敏感度差异很大。这种条件依赖用if-else写到后面根本维护不动而机器学习天然就是干这个的把多维输入映射到作物类别的概率分布不需要人手工枚举全部组合。这也是这份代码包选择监督学习的核心原因——有土壤特征有打好的作物标签问题就是一个标准的多分类。2.2 特征工程土壤数据到模型输入这一步决定上限模型的精度上限由特征决定这句话在这个项目里特别明显。原始土壤检测报告通常包含这些字段这份代码包按下面的结构读入数据字段名含义类型常见范围/单位ph酸碱度数值3.5~9.5无量纲organic_matter有机质数值g/kg常见0~80total_n全氮数值g/kgalkali_hydro_n碱解氮数值mg/kgavailable_p速效磷数值mg/kgavailable_k速效钾数值mg/kgcec阳离子交换量数值cmol/kgsand_pct砂粒含量数值%clay_pct黏粒含量数值%field_capacity田间持水量数值%texture土壤质地类别砂土/壤土/黏土等field_id地块编号分组ID用来防数据泄漏光有原始字段还不够。以我做这类数据的习惯至少会加三个衍生特征一是氮磷比碱解氮除以速效磷很多作物对氮磷比敏感单一指标正常但比值失衡的情况很常见二是有机质与CEC的比值反映土壤的保肥结构三是pH与速效磷的交互项酸性土壤里磷容易被固定单独看速效磷数值会误判。衍生特征加不加在随机森林上差别不一定巨大但对XGBoost这类能捕捉交互的模型收益是实打实的。2.3 候选算法横向对比随机森林和XGBoost为什么是首选把问题定义清楚后接下来要回答的是选什么算法。我在动手前会把常见候选摆出来过一遍算法非线性能力特征重要性中小样本表现调参成本判断逻辑回归弱系数可解释尚可低只适合线性基线KNN弱无不稳低特征尺度敏感SVM(RBF)强无小样本尚可高超参数敏感决策树强有易过拟合低单树不稳随机森林强有好中首选基线XGBoost强有好中高最终主力两个最终留下的原因一是这两者在千条级别的样本量上表现稳定不需要像深度学习那样攒大数据二是都能直接输出特征重要性农业场景里领导和农技员都会问“凭什么推荐这个”有可解释性才好交代。神经网络不是不行但这份资源的目标是快速落地数据量也不支持它发挥。顺带说一句农作物推荐不能用协同过滤。协同过滤依赖“用户-物品”评分矩阵靠相似用户或相似物品来推荐但土壤数据里根本没有用户行为评分每块地是一条特征记录属于典型的冷启动场景。所以不要一提到推荐算法就默认是协同过滤在这类数据上它从一开始就不成立。3. 数据清洗、编码与标签构造复现这份代码的第一步3.1 土壤样本数据结构与清洗规则拿到原始数据后不要直接建模第一件事是把数据变成“模型能信”的样子。这份代码包里我按以下步骤处理你可以在notebook里逐段复现。import pandas as pd import numpy as np df pd.read_csv(soil_samples.csv) print(原始规模:, df.shape) print(df.dtypes) # 1) 空行与完全重复行的去重 df df.drop_duplicates().dropna(howall) # 2) 范围校验超出物理意义的值直接过滤 df df[(df[ph].between(3.5, 9.5)) (df[available_p].between(0, 200)) (df[organic_matter].between(0, 80))] # 3) 地块ID非空才保留否则后面没法做分组验证 df df[df[field_id].notna()].reset_index(dropTrue) print(清洗后规模:, df.shape)这段代码的意图有三个去掉重复记录避免同一批化验数据被重复计算对pH、速效磷、有机质做物理范围过滤化验单偶发抄错位或传感器漂移产生的极端值会被排除强制保留field_id因为第4章分组划分要靠它。注意这里的范围基于常见农田监测口径如果你手里的数据来自大棚基质或盐碱地上限要按实际情况调整。3.2 缺失值填充均值填充省事但不一定对土壤化验数据常见的缺失集中在速效磷和CEC因为这两项需要单独的前处理流程有时实验室没做完就出报告了。早期版本图省事用全局均值填后来发现模型在酸性土壤上的推荐明显漂移原因是pH在农田里往往呈双峰分布均值落在一个实际很少出现的中间值上。我现在的做法是按土壤质地分组填充中位数。# 按质地分组填充缺失值中位数比均值更抗离群点 for col in [available_p, cec]: df[col] df.groupby(texture)[col].transform( lambda x: x.fillna(x.median()) ) # 仍然缺失的行用全局中位数兜底 for col in [available_p, cec]: df[col] df[col].fillna(df[col].median())分组填充的道理是同一质地下的化学行为更接近黏土和砂土的CEC、磷吸附特性差异很大用同一个全局分布填充会抹平这种差异。如果某个字段缺失率超过30%填充就不可靠了这种字段我会直接删除而不是硬填。3.3 类别特征编码、衍生特征与标准化土壤质地是文本类别不能直接进模型。用LabelEncoder简单粗暴但有隐患——它会给出0、1、2的顺序关系而质地本身没有大小顺序。更稳的是用OrdinalEncoder配合categories参数显式指定顺序。from sklearn.preprocessing import OrdinalEncoder # 按实际颗粒粗细指定顺序砂土0壤土1黏土2 texture_order [[砂土, 壤土, 黏土]] enc OrdinalEncoder(categoriestexture_order) df[texture_enc] enc.fit_transform(df[[texture]]) # 三个衍生特征对应第2章提到的交互信息 df[np_ratio] df[alkali_hydro_n] / (df[available_p] 1e-6) df[om_cec_ratio] df[organic_matter] / (df[cec] 1e-6) df[ph_p] df[ph] * df[available_p]加1e-6是为了避免除以零磷含量极低的地块在化验单上是真实存在的。数值特征这边随机森林和XGBoost本身对量纲不敏感但如果你后面想对比逻辑回归基线或者用SHAP做解释时希望量纲统一再做标准化。我一般只对送入线性模型的副本做标准化树模型那份保持原始值这样特征重要性解读时能直接对应到mg/kg、g/kg这些农学单位。3.4 作物适宜性标签产量分位还是农艺规则机器学习要学的是“特征→作物是否适宜”所以先把作物适宜性转成监督标签。两种常见打法一是专家规则打分按土壤指标落在适宜区间时计分总分偏高的一组作为推荐类二是以历史产量数据为依据把每个地块产量最高的作物标为正类。第一种适合没有历史产量的新地块第二种适合有多年种植档案的地块。# 方式一规则打分示例只列三条核心规则 def suit_score(row): s 0 if 5.5 row[ph] 7.0: s 2 if row[organic_matter] 20: s 2 if row[available_p] 15: s 1 return s # 方式二多年产量比较取最高产作物作为标签 yield_cols [yield_rice, yield_wheat, yield_corn, yield_peanut] df[crop_label] df[yield_cols].idxmax(axis1).map( lambda x: x.replace(yield_, ) )标签构造是决定模型上限的一步也是最容易埋坑的一步。用产量划分标签时必须确认产量是同一地块、同一施肥水平下的相对比较而不是不同管理水平的绝对比较。这一点在第5章会专门讲它直接影响你后面所有指标的成色。4. 随机森林与XGBoost训练全流程可直接抄的代码与调参路径4.1 训练集与测试集划分地块分组比随机切分更可信如果直接用train_test_split随机切同一地块的多条采样记录会同时出现在训练集和测试集里模型相当于已经“见过”测试地块的信息验证分数会虚高。正确做法是按field_id分组划分让同一地块的所有样本只在一边出现。这在sklearn里叫分组划分用GroupShuffleSplit实现。from sklearn.model_selection import GroupShuffleSplit feature_cols [ ph, organic_matter, total_n, alkali_hydro_n, available_p, available_k, cec, sand_pct, clay_pct, field_capacity, texture_enc, np_ratio, om_cec_ratio, ph_p ] X df[feature_cols] y df[crop_label] groups df[field_id] gss GroupShuffleSplit(n_splits1, test_size0.2, random_state42) train_idx, test_idx next(gss.split(X, y, groupsgroups)) X_train, X_test X.iloc[train_idx], X.iloc[test_idx] y_train, y_test y.iloc[train_idx], y.iloc[test_idx] print(训练地块数:, len(set(groups.iloc[train_idx]))) print(测试地块数:, len(set(groups.iloc[test_idx])))n_splits1表示只切一次test_size0.2表示留出20%地块做最终测试random_state固定是为了可复现。打印地块数是必须的习惯确认两边都有足够的地块而不是恰好把某个乡镇的样地全切到一边去了否则测试分数没有代表性。4.2 随机森林基线模型参数含义与调参顺序随机森林在这个场景是当基线用的默认参数就能跑出可用的准确率而且oob_score可以白拿一个袋外估计不需要额外划分验证集就能监控过拟合。from sklearn.ensemble import RandomForestClassifier rf RandomForestClassifier( n_estimators300, max_depth12, min_samples_split8, min_samples_leaf4, max_featuressqrt, class_weightbalanced, random_state42, n_jobs-1, oob_scoreTrue, ) rf.fit(X_train, y_train) print(OOB准确率:, rf.oob_score_) print(测试集准确率:, rf.score(X_test, y_test))参数逐个说n_estimators300树够多结果才稳定再往上对精度提升很小但训练时间线性增长max_depth12限制单棵树深度防过拟合min_samples_split8和min_samples_leaf4约束叶节点最小样本量对噪声多的土壤数据有效max_featuressqrt是分类任务常用设定避免树之间相关性过高class_weightbalanced对类别不平衡做惩罚防止推荐结果全偏向大宗作物。调参顺序我的习惯是先定max_depth和min_samples_leaf再动n_estimators最后才碰max_features每次只动一个变量好定位是哪个改动带来的提升。4.3 XGBoost进阶早停、交叉验证与特征重要性随机森林稳定但精度往往不如梯度提升树。XGBoost在这个项目里专门用来提升少数类作物的召回率核心是两件事早停防止过拟合交叉验证找最优树数。import xgboost as xgb model xgb.XGBClassifier( n_estimators1000, learning_rate0.05, max_depth5, subsample0.8, colsample_bytree0.8, min_child_weight3, reg_lambda1.0, tree_methodhist, eval_metricmlogloss, random_state42, ) model.fit( X_train, y_train, eval_set[(X_test, y_test)], early_stopping_rounds50, verboseFalse, ) print(最优迭代轮数:, model.best_iteration) print(测试集准确率:, model.score(X_test, y_test))learning_rate0.05配上限1000棵树是保守稳妥的组合早停设50轮验证集损失连续50轮不降就停best_iteration记录最优轮数。subsample和colsample_bytree都是0.8每棵树只用80%的样本和80%的特征降低树间相关性。min_child_weight3继续卡叶节点样本量。tree_methodhist在更大样本量下提速明显这里习惯性开着。eval_set严格来说应该用从训练集里再切出来的验证集而不是测试集样本量超过1500时可以再多切一块这里为演示直接用了测试集实际项目里我会拆三路。提示不要一上来就全参数GridSearchCV组合爆炸会跑死机器。我一般先用默认参数跑一遍记录基线然后固定learning_rate调max_depth和min_child_weight再调subsample和colsample_bytree最后把最优树数反馈给n_estimators。每一步网格里只放一到两个参数。特征重要性输出是XGBoost在农业场景最值钱的特性之一。训练完把重要性打印出来告诉农技人员“有机质在推荐里贡献最大”比给一个黑匣子更容易被接受importance model.feature_importances_ for name, imp in sorted( zip(feature_cols, importance), keylambda x: -x[1] ): print(f{name}: {imp:.4f})注意feature_importances_默认是weight口径按分裂次数计数对连续数值类特征会偏高要更贴近实际贡献用permutation importance或SHAP这个放到第6章。5. 复现避坑指南四个让模型“看起来很好用却翻车”的血泪记录这一章是整份代码包里最值钱的部分。下面四类问题我都真实踩过现象各有不同根子都在数据处理或验证策略上。按“现象→原因→解决”逐条写每条都可以直接对号入座。5.1 准确率97%但下地就没法用警惕标签泄漏现象测试集准确率97%把同一套代码放到相邻地块的化验数据上推荐结果和农艺师判断对不上种水稻的地被推荐种玉米。原因同一地块多点取样后被随机切分训练集和测试集里都含同一田块的强相关样本模型学到的是“田块编号级别的记忆”不是真正的土壤-作物关系。测试分数被数据泄漏注水了换一个地块立刻现原形。解决划分时用GroupShuffleSplit按field_id分组保证同一地块样本只出现在一侧。还有一个土办法判断有没有泄漏把field_id当作特征塞进模型如果准确率暴涨说明模型在走捷径特征清单里不能有任何能直接定位到具体地块的编号类字段。5.2 特征重要性和农学常识冲突共线性和类不平衡在捣鬼现象随机森林输出的重要性里速效磷垫底可田间试验明确显示缺磷地块减产明显模型解释没法向农技员交代。原因速效磷与全磷、碱解氮之间存在共线性贡献被分摊掉了另外基尼重要性在多分类里偏向样本量大的类别大宗作物样本多它的关键特征容易被抬高。解决不要只看默认feature_importances_改用permutation importance或SHAP重要性训练时开class_weightbalanced再看排序。如果两种重要性排序差异仍然巨大优先信农学常识回头排查特征相关性而不是硬调模型去迎合排序。5.3 pH缺失值全局均值填充后推荐整体偏移现象用全局均值填充pH后模型对酸性土壤地块的推荐明显偏向中性土壤作物小麦、玉米茶树、马铃薯这类喜酸作物几乎不被推荐。原因农田pH分布往往是双峰甚至三峰的全局均值大约落在6附近把酸性样本的pH强行拉到中性模型学到的“酸地块信号”被稀释了酸性作物的决策边界整体偏移。解决按土壤质地分组填充中位数或直接用KNNImputer利用其他特征估算pH。注意填充后重画一次pH分布直方图对比填充前后的分布形状不要只盯均值。分布形状对树模型的影响远大于均值。5.4 推荐列表永远是大宗作物类别不平衡没处理现象水稻、玉米的召回率都在0.9以上红薯、花生这类小众作物召回率不到0.2Top3推荐里永远是大宗作物小众作物就算地块条件完全适宜也排不进去。原因数据集里大宗作物样本占了大头模型学出的先验概率偏向多数类少数类即使有明确的适宜信号也压不过先验。解决分类器加class_weightbalanced网格搜索评分用macro F1而不是accuracy。如果少数类样本真的太少少于100条SMOTE这类合成方法要慎用特征维度低时合成样本很容易过拟合更稳的做法是回去补采少数类地块的历史记录而不是在现有数据里硬造。6. 进阶SHAP解释与一键推理输出把推荐结果说给农户听6.1 用SHAP看到每个地块的推荐理由模型给出推荐还不够一线用的人会问“为什么是水稻而不是玉米”。用SHAP可以从模型内部拿出每个特征的贡献值生成单个样本的解释import shap explainer shap.TreeExplainer(model) shap_values explainer.shap_values(X_test_sample) # 多分类时 shap_values 是列表取目标作物对应的类别 shap.summary_plot( shap_values[target_index], X_test_sample, feature_namesfeature_cols, )SHAP值有正有负正的推动模型往该类作物倾斜负的则相反。我在实际项目里会把SHAP图直接附在推荐报告后面农户看到“这块地有机质偏低、pH偏酸所以茶树得分高”这类解释接受度明显比单纯一个模型结论高。6.2 把模型封装成推荐函数训练好的模型不值得放在notebook里吃灰我习惯用joblib导出再包一个推理函数输入一行化验数据就输出Top3作物和置信度import joblib joblib.dump(model, crop_recommender.pkl) def recommend(soil_row, top_k3): proba model.predict_proba(soil_row)[0] top_idx np.argsort(proba)[::-1][:top_k] return [ (model.classes_[i], round(float(proba[i]), 4)) for i in top_idx ]调用时把一行化验数据按feature_cols顺序拼成数组喂进去返回的就是带概率的推荐清单。这套代码包里的notebook、预处理函数和模型导出脚本我都整理好了照着第3章到第6章的顺序跑一遍你手上任何一份新的土壤化验单都能走完同一条链路。从那以后我每次接农业ML项目都强制自己先画field_id分布、先查标签来源再决定划分策略和特征清单这套流程至少帮我挡掉了三次“准确率好看、落地没法用”的返工。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Claude Code Prompt Cache工程实践:语义感知缓存设计与落地

Claude Code Prompt Cache工程实践:语义感知缓存设计与落地

1. 为什么“Prompt Cache”不是个噱头,而是Claude Code工程落地的命门最近在帮某高校实验室做代码补全工具链的性能优化时,团队里一位刚转岗的前端工程师盯着监控面板发愣:“这API响应时间怎么忽高忽低?明明请求结构一模一样。”我…

2026/10/11 10:02:47 阅读更多 →
AI数据协作中的分工协议:从模糊黑箱到可执行标准

AI数据协作中的分工协议:从模糊黑箱到可执行标准

1. 从“分工”二字开始的复现崩塌:一次学术协作的实操解剖我们团队上个月启动了一个小规模论文复现项目,目标是验证某篇发表在中等影响力期刊上的跨学科方法——表面看是图像分割任务,但核心创新点落在“多角色协同标注流程”的设计上。项目启…

2026/10/10 7:17:17 阅读更多 →
为什么连不上192.168.1.102?IP冲突、回环监听与防火墙的排障实录

为什么连不上192.168.1.102?IP冲突、回环监听与防火墙的排障实录

几天前,我正在调一个内网服务,同事突然冒出一句灵魂发问:“为什么连不上 192.168.1.102?”按我以前的脾气,无非是 ping、arp、telnet 三板斧挨个敲一遍。可那阵子我刚把手边一堆网络诊断命令装进了 nl2sh——一个能把自…

2026/10/10 7:16:17 阅读更多 →

最新新闻

第三方软件测评:独立视角下的软件质量保障

第三方软件测评:独立视角下的软件质量保障

最近接手了一个很有意思的项目,是以第三方视角给一套企业级管理软件做全面测评。这个项目让我不得不重新思考一个老问题:为什么软件行业需要"裁判员"?我们常说"既当运动员又当裁判员"是比赛的大忌,但放到软件…

2026/10/11 11:45:15 阅读更多 →
用Anaconda管理Python多环境:解决版本兼容与依赖冲突的完整指南

用Anaconda管理Python多环境:解决版本兼容与依赖冲突的完整指南

先说一个最磨人的场景:你手上同时维护着两个AI相关的小项目,一个图像处理Demo指定要PyTorch配Python 3.8,另一个文本分类脚本又要用Python 3.10。两个项目只要凑在同一个解释器里,必然有一个先坏掉。我以前被这种版本兼容问题折腾…

2026/10/11 11:45:15 阅读更多 →
一键同步Claude Code与Cursor的MCP配置,自动优化Token占用

一键同步Claude Code与Cursor的MCP配置,自动优化Token占用

1. 手动维护 MCP 配置这件事,到底卡在哪如果你同时用 Claude Code 和 Cursor 做日常开发,大概率经历过这样的场景:在 Claude Code 里配好了一套 MCP 服务,切到 Cursor 想复用,发现配置文件格式不一样,得重新…

2026/10/11 11:45:14 阅读更多 →
Doocs MD 开源排版工具:让微信公众号完美支持 Markdown

Doocs MD 开源排版工具:让微信公众号完美支持 Markdown

如果你在公众号后台手动排版超过一年,大概率会有这种感觉:排版这件事本身比写作更消耗耐心。我在试过一堆网页编辑器、浏览器插件和在线转换工具之后,最后固定在 Doocs MD 上。这不是因为它长得好看,而是因为它解决的问题恰好是微…

2026/10/11 11:45:14 阅读更多 →
整站下载与网站复制实战:wget参数、链接改写与离线镜像指南

整站下载与网站复制实战:wget参数、链接改写与离线镜像指南

简介:整站下载工具资源包以Teleport Pro为核心,面向需要离线访问网站、整站镜像备份或研究网站抓取机制的用户,特别适合对批量保存页面、图片、样式与脚本有明确需求的技术爱好者。压缩包共10个文件,约553KB,兼顾轻量与…

2026/10/11 11:45:14 阅读更多 →
SQL批量修改表字段类型实战:用TaoToken辅助生成varchar转nvarchar脚本

SQL批量修改表字段类型实战:用TaoToken辅助生成varchar转nvarchar脚本

/* 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 11:44:14 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →