基于Python的医疗花费预测:从特征工程到模型解释全流程实战
简介基于Python的医疗花费预测项目提供了一套完整的课程设计解决方案面向机器学习初学者和有回归预测任务需求的高校学生覆盖数据读取检查、模型构建调参与融合评估全流程适合作为毕业设计或课程设计参考。资源共五个文件主要包括两个Python源码脚本、一份设计报告Word文档及说明文件压缩包大小仅1.29MB结构精简便于快速上手。目前已有六百八十四人学习浏览。实现上采用全手写随机森林与线性回归并结合机器学习库构建梯度提升树、支持向量回归、套索回归和决策树模型调参环节同时使用随机搜索、网格搜索和手动调参三种策略模型融合尝试直接平均、加权平均与堆叠法配合K折交叉验证和留一法进行效果评估。读者可获得完整可运行代码与详细设计报告对理解回归建模、参数优化和集成学习方法很有帮助。1. 医疗花费预测是什么一个回归问题值钱的不是模型而是特征如果你拿到一份医疗账单数据想根据患者的年龄、BMI、吸烟史、区域等信息提前估算出他下一年的医疗花费这在机器学习里就是一个典型的回归任务。标题里的“基于Python的医疗花费预测”做的正是这件事输入结构化表格数据输出一个连续的金额数值。这个方向最常出现在健康险定价、医院费用审核、个人健康管理三个场景里学生拿来练手也合适因为数据量不大、特征维度不高但要做对并不简单——真正的门槛在数据清洗、类别变量编码和特征构造上模型反而是最不挑的部分。适合看这篇的人有两类一类是刚学完Python基础、想拿一个完整项目练手的数据分析初学者另一类是已经在做保险或医疗数据分析、想把“拍脑袋估费用”升级成“用模型估费用”的从业者。我会按数据准备、建模训练、参数调优、踩坑复盘、模型解释的顺序把整个落地路径讲透。2. 数据准备用 pandas 把原始账单清洗成可建模的特征2.1 先看数据长什么样缺失值、分布和单位不管是哪个来源的医疗花费数据集只要你拿到手的是一个 CSV 文件第一件事永远是加载后用info()和describe()看结构而不是急着建模。常见做法是先跑这段代码import pandas as pd # 读入数据路径换成你本地的实际路径 df pd.read_csv(insurance.csv) # 查看字段类型、非空数量确认到底有没有缺失值 print(df.info()) # 查看数值列的分布重点是 charges 是否严重右偏 print(df.describe()) # 看一眼类别字段都有哪些取值 for col in [sex, smoker, region]: print(col, df[col].unique())逻辑说明info()告诉你每一列的类型和缺失情况如果某列非空数量少于总行数说明有缺失。describe()能暴露一个很关键的问题——charges医疗花费的均值如果远大于中位数50% 分位说明数据右偏严重后面需要做对数变换。参数说明这里不需要调任何参数关键是观察。如果发现charges最大值是几万甚至几十万而中位数只有几千就说明少数高额账单在主导整个分布直接用原始值训练会让模型把所有注意力放在那几个大单上。2.2 处理charges的右偏分布为什么回归前先取对数医疗花费数据几乎必然是右偏的——大多数人每年只花几千块但少数重症患者会花掉几十万。如果不做处理线性回归会被这些极端值拉着走树模型也会被迫在分裂时过度关注大额样本。我一般会先画一个直方图或直接对charges取对数看分布是否接近正态。import numpy as np # 对目标变量做对数变换 df[charges_log] np.log1p(df[charges]) # 对比变换前后的偏度变换前通常 5变换后接近 0 print(变换前偏度:, df[charges].skew()) print(变换后偏度:, df[charges_log].skew())逻辑说明np.log1p是log(1x)比直接np.log(x)更稳因为当x0时log会报错log1p不会。训练时用charges_log作为目标变量预测时再做expm1反变换得到真实的金额。参数说明偏度skewness是判断是否需要变换的量化指标绝对值大于 1 就该考虑变换这里从 5.x 降到接近 0效果立竿见影。注意反变换是np.expm1(pred)对应log1p。2.3 类别变量编码sex、smoker、region 不是随便 map 就完事性别、是否吸烟、地区这三个字段在原始数据里是字符串不能直接喂给 sklearn。新手最常见的做法是把sex映射成 0/1、smoker映射成 0/1然后region也顺手 map 成 0/1/2/3——这个操作在smoker和sex上问题不大但在region上就埋了雷地区之间没有大小关系region3不代表比region1“大”三倍。正确做法是独热编码。# 对地区做独热编码drop_firstTrue 避免共线性 df pd.get_dummies(df, columns[region], drop_firstTrue) # 对二分类字段做标签编码 df[sex] df[sex].map({female: 1, male: 0}) df[smoker] df[smoker].map({yes: 1, no: 0}) print(df.head())逻辑说明get_dummies会把region拆成region_northwest、region_southeast、region_southwest三列因为drop_firstTrue去掉了第一个取值作为基准。线性模型最怕 dummy 变量之间完全共线drop_first就是干这个的。sex和smoker本身就是二分类用map做标签编码足够。参数说明如果你用的是sklearn里的OneHotEncoder记得设sparse_outputFalse旧版本是sparseFalse否则返回的是稀疏矩阵后续和 DataFrame 合并会绕手。这里drop_firstTrue之后三列地区特征进入模型每一列的含义都是“是否是某个地区”解释性比一个编码数字强得多。3. 建模与训练线性回归、随机森林、XGBoost 三条路先跑通再调参3.1 划分数据集不能 random_split 了事要盯住 smoker 的分布医疗花费数据集有一个特点smoker是最强特征对花费的影响远大于其他字段。如果划分训练集和测试集时让smoker的比例在两边失衡会出现线下评估指标好看、线上预测一塌糊涂的“假阳性”。所以划分之后要检查分布。from sklearn.model_selection import train_test_split # 特征列注意把原始 charges 和变换后的 charges_log 都排除 feature_cols [c for c in df.columns if c not in [charges, charges_log]] X df[feature_cols] y df[charges_log] # 分层抽样按 smoker 列来保证训练/测试里吸烟者比例一致 X_train, X_test, y_train, y_test train_test_split( X, y, test_size0.2, random_state42, stratifydf[smoker] ) print(训练集 smoker 比例:, X_train[smoker].mean()) print(测试集 smoker 比例:, X_test[smoker].mean())逻辑说明stratifydf[smoker]是这里的灵魂参数。它让切分后的训练集和测试集里smoker1的比例和整个数据集一致。如果你不传这个参数每次运行结果可能都差一点遇到小数据集时差异更明显。参数说明random_state42固定随机种子保证复现。test_size0.2是常规选择数据只有一千多条时8:2 划分比较合适如果你有上万条数据可以考虑test_size0.3给测试集更多样本。划分完先打印比例确认这一步是后面所有评估可信度的前提。3.2 先把线性回归跑通当 baseline预测的是对数评估要反变换很多教程一上来就上 XGBoost但我建议先用线性回归跑一个基线。原因很朴素线性回归结果最容易解释如果连它都能得到还可以的分数说明特征工程做得不错如果它很差正好暴露了哪些特征之间关系是非线性的后面该往哪个方向使力。from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score import numpy as np # 训练线性回归 lr LinearRegression() lr.fit(X_train, y_train) # 预测对数花费再反变换回真实金额 pred_log lr.predict(X_test) pred_charges np.expm1(pred_log) # 用真实金额计算误差 rmse np.sqrt(mean_squared_error(np.expm1(y_test), pred_charges)) r2 r2_score(np.expm1(y_test), pred_charges) print(f线性回归 RMSE: {rmse:.2f}, R2: {r2:.4f})逻辑说明训练目标y_train是取了对数的值所以lr.predict出来的也是对数。评估时必须用np.expm1把两边都还原成真实金额否则 RMSE 是在对数空间算的数值看起来小得诱人但没有任何实际意义。这是新手最容易翻车的地方。参数说明LinearRegression没有需要手工调的参数核心是把目标变量处理好。如果这个 R² 低于 0.7大概率是smoker与 BMI 之间存在交互效应——吸烟者的花费受 BMI 影响更大而线性模型默认每个特征是独立起作用的不会自动捕捉交互。3.3 随机森林和 XGBoost树模型怎么接住非线性关系线性回归跑完后上树模型。随机森林能自动捕捉特征交互对异常值也不那么敏感是医疗数据的稳妥选择。这里直接给一个用随机森林替换线性回归的最小流程from sklearn.ensemble import RandomForestRegressor rf RandomForestRegressor(n_estimators300, max_depth8, min_samples_leaf5, random_state42) rf.fit(X_train, y_train) pred_log rf.predict(X_test) pred_charges np.expm1(pred_log) rmse np.sqrt(mean_squared_error(np.expm1(y_test), pred_charges)) r2 r2_score(np.expm1(y_test), pred_charges) print(f随机森林 RMSE: {rmse:.2f}, R2: {r2:.4f})逻辑说明n_estimators300表示 300 棵子树max_depth8限制树深防止过拟合min_samples_leaf5要求叶子节点至少 5 个样本这三个参数配合起来在大约一千条样本的数据集上比默认参数更稳。默认参数下树可以无限长训练集分数接近满分测试集却开始飘。参数说明max_depth是最值得调的参数建议在 4 到 12 之间尝试min_samples_leaf在 3 到 10 之间调。随机森林在这样规模的数据上训练极快你可以放心跑多组组合做对比不用心疼时间。# 如果不确定参数用网格搜索帮你跑组合 from sklearn.model_selection import GridSearchCV param_grid { n_estimators: [200, 300], max_depth: [6, 8, 10], min_samples_leaf: [3, 5, 8] } gs GridSearchCV(RandomForestRegressor(random_state42), param_grid, cv5, scoringneg_root_mean_squared_error) gs.fit(X_train, y_train) print(最优参数:, gs.best_params_)逻辑说明scoringneg_root_mean_squared_error是 GridSearchCV 里少数能直接显示“越小越好”的指标——sklearn 的 scorer 默认是“越大越好”所以 RMSE 被取了负号越接近 0 越好。cv5在这么小的数据上是合理选择折数太少评估不稳太多则每折样本太少。参数说明如果你上 XGBoost核心参数是learning_rate0.05、max_depth4、reg_lambda1.0其中学习率要往小调深度要比随机森林更浅因为 XGBoost 的迭代机制容易过拟合小数据集。4. 必调参数与特征工程细节模型效果差距全在这些地方4.1 年龄分箱把连续年龄变成有业务含义的区间原始数据里age是连续值但医疗花费和年龄的关系并不是线性的——儿童时期花费低中年稳步上升老年猛增。直接让模型去拟合这种曲线关系线性模型做不到树模型虽然能做但会消耗更多深度。常见的做法是分箱把年龄切成几段彻底把非线性问题变成线性问题。# 年龄分箱18-30 是低花费段30-50 是中段50-65 是高风险段 df[age_group] pd.cut(df[age], bins[18, 30, 50, 65], labels[young, mid, senior]) # 独热编码后塞回特征集 df pd.get_dummies(df, columns[age_group], drop_firstTrue) # 注意age 原始列可以选择保留或去掉我建议保留给模型多一点信息 print(df.columns.tolist())逻辑说明pd.cut的bins定义了区间边界[18, 30, 50, 65]表示三个区间18-30、30-50、50-65。labels给区间起名方便后面看特征重要性。分箱之后age可以用原始值保留也可以只保留分箱变量我倾向两个都留让模型自己决定怎么用——如果age本身没帮助树模型会自动降低它的权重。参数说明区间边界你可以根据数据的实际分布调整关键是不要切得太碎比如每 5 岁一切会造出八九个哑变量在样本量不大的时候反而稀释了模型的泛化能力。三到四个区间在医疗数据上通常是够用的。4.2 BMI 的交互特征吸烟者与 BMI 的化学反应医疗花费预测里有一个经典结论同样 BMI 高的人吸烟者的花费远高于不吸烟者。这不是两个特征独立起作用而是它们“联手”起作用。线性回归对这种交互是无能为力的除非你手动构造。# 构造交互特征吸烟与高 BMI 同时成立时费用风险剧增 df[smoker_high_bmi] df[smoker] * (df[bmi] 30).astype(int) # 对比构造前后smoker_high_bmi 与 charges 的相关性 print(smoker 与 charges 相关系数:, df[smoker].corr(df[charges])) print(smoker_high_bmi 与 charges 相关系数:, df[smoker_high_bmi].corr(df[charges]))逻辑说明df[smoker]是 0/1(df[bmi] 30).astype(int)也是 0/1两者相乘得到一个新的 0/1 特征只有“吸烟且 BMI 大于 30”时为 1。这一步把领域常识翻译成了模型能读的格式。参数说明BMI30 是临床上定义的肥胖线但你可以试 28、32看模型分数的变化。如果相关性从 0.6 提升到 0.7说明这个交互特征有效如果几乎没变化说明在你这份数据里两者并不联动果断去掉别硬留。4.3 用 Lasso 做特征选择砍掉冗余列守住稳定性当特征数量变多之后一个容易被忽略的问题是特征之间的相关性——比如你同时保留了age和age_group_*多个变体它们之间有信息重叠。线性模型会因此变得不稳定换个训练集结果飘得厉害。Lasso 回归自带 L1 正则化能把不重要的特征系数直接压成 0是最省事的特征筛选工具。from sklearn.linear_model import Lasso # 构造一个 Lassoalpha 是正则强度需要调 lasso Lasso(alpha0.05, max_iter10000, random_state42) lasso.fit(X_train, y_train) # 打印系数接近 0 的特征基本可以扔掉 coef_df pd.DataFrame({ feature: X_train.columns, coef: lasso.coef_ }) print(coef_df[abs(coef_df[coef]) 0.01])逻辑说明alpha0.05是正则强度值越大被压成 0 的特征越多。跑完这个你可以看到哪些列幸存下来、哪些列系数很小可以去掉。注意 Lasso 对特征之间的尺度敏感跑之前最好对数值特征做标准化StandardScaler否则 BMI 数值大、smoker 数值小惩罚会不公平地落在小数值特征上。参数说明alpha要从 0.001 开始按 10 倍往上试找到“系数大部分非零但小特征已经被压掉”的那个值。max_iter10000是收敛保护数据只有一千多条时很少触发但写上能避免警告。5. 避坑清单医疗花费预测里最容易翻车的 5 个细节5.1 反变换翻车预测结果差了一个量级现象模型训练时 RMSE 很好看但预测出来的金额全是几十、几百美元而实际账单均值是几千美元。原因训练目标用了np.log1p取对数预测时直接用了lr.predict(X_test)的结果没有做np.expm1反变换。对数空间里误差是“小”还原到真实金额后自然对不上。解决所有评估都必须写成np.expm1(model.predict(X_test))并且要在同一个脚本里测试反变换后与np.expm1(y_test)的 RMSE不要只看对数空间的分数。5.2 独热编码的共线性region 三列全进去了现象线性回归的系数非常大且不同随机种子下系数符号都在翻转。原因pd.get_dummies没有加drop_firstTrue生成了全部四个地区的 0/1 列它们之间存在完全共线性导致线性模型无法稳定求解系数。解决统一使用drop_firstTrue。如果你用OneHotEncoder对应参数是dropfirst。这一步不会影响树模型但对线性回归是必须的。5.3 smoker 比例失衡测试集评估分数虚高现象交叉验证的分数和最终测试分数差很多有时候测试分数反而更高。原因train_test_split没有传stratify由于数据量小随机切分后测试集里恰好都是不吸烟者——不吸烟者花费本来就低预测“低费用”比预测“高费用”容易得多分数自然偏高。解决划分数据时stratifydf[smoker]。更稳妥的做法是同时检查sex、region的比例任何一列分布漂移超过 2 个百分点就说明切分有问题。5.4 缺失值盲目均值填充BMI 分布被压扁现象模型训练完特征重要性里bmi几乎为 0但常识里 BMI 应该很重要。原因缺失的 BMI 被用均值填充填充后大部分样本都集中在均值附近方差大幅减小模型当然学不到信息。解决先看缺失比例。如果低于 5%用中位数填充问题不大高于 10%考虑用其他特征age、smoker做分组填充或者干脆把缺失当成一个单独状态不填充而是加一列“是否缺失”。在医疗数据里缺失本身常常就是信息。5.5 RMSE 被大额账单主导指标选择不当现象换一个模型RMSE 降了 2000但画出来真实值 vs 预测值的散点图中低费用段拟合得很差。原因RMSE 对误差取平方后大误差样本的权重大幅增加少数几十万的账单会让模型牺牲大量普通样本的精度来迁就它们。解决同时报告 MAE 和 RMSLERoot Mean Squared Logarithmic Error。RMSLE 在目标取对数后计算天然降权大额账单。评估时用mean_squared_log_error加上自定义开方或者直接比较 R² 和 MAE 两个指标——如果 RMSE 好但 MAE 差说明模型只在少数大单上准多数普通账单其实不准。6. 进阶技巧用 SHAP 解释模型让预测结果不再像黑匣子模型跑通只是第一步医疗花费预测的实际价值在“解释”——保险定价时要跟业务方解释为什么这个人保费高医院审核时要说明为什么这笔费用异常。这个方向我最后的建议是花半小时把 SHAP 用起来它能告诉你在某一笔具体预测里每个特征分别推了多少数值。import shap # 用训练好的随机森林计算 SHAP 值 explainer shap.TreeExplainer(rf) shap_values explainer.shap_values(X_test) # 画 summary plot看所有样本里每个特征的影响力方向 shap.summary_plot(shap_values, X_test, plot_typebar) # 看某一个具体样本的解释 shap.force_plot(explainer.expected_value, shap_values[0, :], X_test.iloc[0, :])逻辑说明TreeExplainer是专门针对树模型的高效实现计算速度快。summary_plot的 bar 图告诉你全局哪个特征最重要——通常结果里smoker排第一age和bmi紧随其后。force_plot告诉你单个样本里每个特征的贡献方向红色的推高费用蓝色的压低费用这比任何特征重要性矩阵都直观。参数说明shap_values[0, :]是第一个样本的解释结果X_test.iloc[0, :]是该样本的特征值。如果你发现某条预测里smoker1把费用推高了 3 万美元这个结论可以直接写进报告。我一直有这个习惯模型训练完先不急着调参而是先跑一遍 SHAP。因为解释结果能反过来告诉我特征工程哪里做得不够——如果bmi的贡献集中在中低区间说明高 BMI 段的样本量不足如果age_group_senior贡献最高说明年龄段划分还不够细。它是我验证特征工程质量的第二双眼睛比单看分数可靠得多。最后收个尾用 Python 做医疗花费预测并不难难的是从数据里挖出真正影响费用的业务因素。这个方向即使你只是练手也建议把流程走完整——数据清洗、对数变换、交互特征、模型对比、误差分析、模型解释一个不落。真正投入生产时你缺的从来不是模型而是这套工程习惯。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

GPU资源隔离实战:让训练与推理在共享集群中互不干扰

GPU资源隔离实战:让训练与推理在共享集群中互不干扰

资源隔离这个词,听起来像是运维该操心的事,但我在实际项目中体会是:它往往是AI工程化过程里最容易被低估、也最容易拖垮线上稳定性的一环。训练任务和推理服务共用一批GPU,训练一开跑,推理的P99延迟直接翻倍&#xff1…

2026/10/11 18:50:04 阅读更多 →
机器人动作如何注入扩散模型?Boundless-World-Model 的 adaln 与 noise 双注入机制全拆解

机器人动作如何注入扩散模型?Boundless-World-Model 的 adaln 与 noise 双注入机制全拆解

【免费下载链接】boundless-world-model High-fidelity world models for general embodied intelligence, such as data engines and world simulators. 项目地址: https://gitcode.com/gh_mirrors/bo/boundless-world-model 点击查看 免费下载 Boundless-World-M…

2026/10/11 18:49:04 阅读更多 →
FyAgent发布流水线揭秘:macOS公证、Windows签名与构建证明的CI/CD完整实践

FyAgent发布流水线揭秘:macOS公证、Windows签名与构建证明的CI/CD完整实践

【免费下载链接】fyagent For You Agent——AI 时代的个人随身数字人格。把你的模型、AI 账号、技能、提示词和工作方式,带到每一个 AI 工具里。 项目地址: https://gitcode.com/gh_mirrors/fy/fyagent 点击查看 免费下载 FyAgent 是一款 AI 时代的个人…

2026/10/11 18:49:04 阅读更多 →

最新新闻

基于CNN的人脸识别驾驶员疲劳检测与预警系统实战

基于CNN的人脸识别驾驶员疲劳检测与预警系统实战

简介:资源为基于Python卷积神经网络的人脸识别驾驶员疲劳检测与预警系统完整项目,面向毕业设计、课程设计及项目开发等场景,适合具备一定Python和深度学习基础的读者学习参考。系统从人脸朝向、位置、瞳孔朝向、眼睛开合度、眨眼频率、瞳孔收…

2026/10/11 19:42:38 阅读更多 →
WorkBuddy 沙箱 edgeone-makers-tools 开发完整避坑指南:7大坑+CI适配方案

WorkBuddy 沙箱 edgeone-makers-tools 开发完整避坑指南:7大坑+CI适配方案

【免费下载链接】edgeone-makers-tools 项目地址: https://gitcode.com/gh_mirrors/ed/edgeone-makers-tools 点击查看 免费下载 edgeone-makers-tools 是 EdgeOne Makers 平台官方出品的 AI 开发技能包,装进 AI 编程助手后即可帮你写代码、建云函数、一…

2026/10/11 19:42:38 阅读更多 →
Tracely SDK自动埋点:OpenAI/Anthropic/LangChain零改造Trace完整教程

Tracely SDK自动埋点:OpenAI/Anthropic/LangChain零改造Trace完整教程

【免费下载链接】Tracely-ai Trace-native CI/CD for AI agents — production failures become regression tests that block the PR. Auto-detect, cluster, freeze into hermetic cases, replay in CI for $0. 项目地址: https://gitcode.com/gh_mirrors/tra/Tra…

2026/10/11 19:42:38 阅读更多 →
YOLOv8战斗机识别检测系统:数据集训练到GUI部署全流程

YOLOv8战斗机识别检测系统:数据集训练到GUI部署全流程

简介:基于YOLOv8的战斗机类型识别检测系统是一套面向深度学习和计算机视觉初学者的完整实战项目,提供可直接运行的Python源码与PyQt5精美图形界面,帮助用户快速上手目标检测模型的训练、推理与界面集成。资源压缩包共264个文件,大…

2026/10/11 19:42:38 阅读更多 →
YOLOv5钢材缺陷检测:从数据集到部署的完整实践指南

YOLOv5钢材缺陷检测:从数据集到部署的完整实践指南

简介:YOLOv5钢材缺陷检测资料包,面向工业视觉质检与目标检测学习者,提供一套覆盖数据、训练与评估的完整缺陷检测方案。内含训练好的模型权重,可区分多种钢材缺陷类型,并附有使用LabelImg标注的完整数据集,…

2026/10/11 19:42:37 阅读更多 →
HTML+CSS+JavaScript实战:个人展示页面开发全流程指南

HTML+CSS+JavaScript实战:个人展示页面开发全流程指南

刚把第三次作业交上去,成绩还没出,趁着还有印象,把整个从拿到作业到提交的过程捋一遍。这次作业跟前面两次最大的区别,就是不再只要求“把页面做出来”,而是要求“把页面做活”——HTML负责结构,CSS负责外观…

2026/10/11 19:41:37 阅读更多 →

日新闻

流感时间序列预测实战: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/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 阅读更多 →