20+常用算法模型代码实现:分类、回归、聚类与集成工程手册
简介这份模型算法大全面向数据分析、机器学习入门与进阶学习者以及需要快速查阅经典算法实现的高校师生和算法工程师系统整理了20余种常用算法模型及其代码实现覆盖从统计建模到神经网络等典型场景帮助读者在理论理解与动手实践之间建立连接。资源包共1234个文件约614.53MB类型相当丰富既有pdf、ppt、doc等讲义与课件也有m、sas、jar等可直接运行的代码文件还包含mat数据、txt说明及png图表便于对照学习与复现实验。目前已有8583人学习下载说明其在算法学习群体中具备一定参考价值。读者可从中获取多类算法的实现思路、配套讲义与实验素材适合按目录结构分模块查阅用于课程作业、项目预研或算法复现练习是一份兼顾资料广度与代码实操的综合性算法学习包。1. 算法模型大全20 种常用算法模型与代码实现一份能直接跑通的工程手册很多开发者第一次接触“模型算法大全”这类资源时都会陷入同一个困境收藏了几十份 PDF 和代码片段真到项目里要预测销量、给用户分群、做异常检测时却不知道该翻哪一页。这份资源解决的就是这个问题——它把 20 多种常用算法模型按“分类、回归、聚类、降维、集成、关联规则”等任务类型整理成可运行的代码实现每个模型都配了数据加载、训练、评估的完整流程。适合正在做数据分析、机器学习入门项目、或者需要快速验证算法效果的开发者。你不需要从头推导公式直接拿代码改参数就能跑出自己的结果。下面我从目录结构、核心模块、运行步骤到二次开发把这份资源拆开讲清楚。2. 项目结构与技术选型从目录看算法覆盖范围2.1 目录层级与模块划分这份资源通常按“算法类别 具体模型”两层组织。根目录下常见classification/、regression/、clustering/、dimensionality_reduction/、ensemble/、association/等文件夹每个文件夹里放对应模型的独立脚本或 Notebook。以分类模块为例里面会有logistic_regression.py、decision_tree.py、svm.py、naive_bayes.py、knn.py等文件。每个文件基本自包含导入依赖、生成或加载数据、划分训练测试集、训练模型、输出准确率/混淆矩阵。这种“一个模型一个文件”的扁平结构好处是复制单个文件就能嵌入自己的项目不需要处理复杂的包依赖。常见做法是在根目录放一个requirements.txt列出numpy、pandas、scikit-learn、matplotlib、seaborn等基础库。部分涉及深度学习的模型会额外依赖tensorflow或pytorch但这份资源以传统机器学习算法为主所以scikit-learn是绝对核心。如果你本地已经装了 Anaconda大部分依赖已经覆盖只需要补装个别版本不匹配的包。2.2 技术栈与依赖说明整个资源的技术栈可以概括为Python 3.x NumPy数值计算 Pandas数据读取与清洗 Scikit-learn模型训练与评估 Matplotlib/Seaborn可视化。这套组合的好处是轻量、跨平台、文档丰富遇到报错容易搜到解决方案。下面是一个典型的依赖清单# requirements.txt 常见内容 numpy1.21 pandas1.3 scikit-learn1.0 matplotlib3.4 seaborn0.11安装时建议用虚拟环境避免和系统里已有的包版本冲突python -m venv venv source venv/bin/activate # Windows 用 venv\Scripts\activate pip install -r requirements.txt参数说明numpy负责矩阵运算pandas负责把 CSV 读成 DataFramescikit-learn提供统一的fit/predict/score接口matplotlib和seaborn用来画混淆矩阵、特征重要性图。如果你的项目需要处理中文标签可能还要装font_manager来设置中文字体否则图表里的中文会显示成方块。2.3 数据流与统一接口虽然每个模型文件独立但它们遵循相似的数据流加载数据 → 特征工程 → 划分训练集/测试集 → 模型初始化 → 训练 → 预测 → 评估。以分类任务为例常见写法是from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.metrics import classification_report # 假设 df 是已经读入的 DataFrame最后一列是标签 X df.iloc[:, :-1].values y df.iloc[:, -1].values # 划分训练集和测试集test_size0.2 表示 20% 做测试 X_train, X_test, y_train, y_test train_test_split( X, y, test_size0.2, random_state42 ) # 标准化对 SVM、KNN、逻辑回归等基于距离的模型很重要 scaler StandardScaler() X_train scaler.fit_transform(X_train) X_test scaler.transform(X_test)逻辑说明train_test_split的random_state固定后每次运行划分结果一致方便复现。StandardScaler把特征均值变为 0、方差变为 1避免量纲差异导致模型偏向数值大的特征。注意fit_transform只在训练集上调用测试集用transform否则会泄露测试集信息。这个模板在资源里反复出现改模型只需要替换from sklearn.xxx import XxxModel那一行。3. 核心算法模块拆解分类、回归、聚类与集成3.1 分类模型逻辑回归与决策树分类是资源里占比最大的部分。逻辑回归适合二分类且需要概率输出的场景决策树适合需要解释规则、处理缺失值的场景。以逻辑回归为例核心代码通常长这样from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, confusion_matrix # C 是正则化强度的倒数越小正则化越强 model LogisticRegression(C1.0, max_iter1000, solverlbfgs) model.fit(X_train, y_train) y_pred model.predict(X_test) print(准确率:, accuracy_score(y_test, y_pred)) print(混淆矩阵:\n, confusion_matrix(y_test, y_pred))参数说明C默认 1.0调小可以防止过拟合调大则更拟合训练数据max_iter在数据未标准化时容易触发收敛警告设成 1000 以上比较稳solver可选lbfgs、liblinear、saga小数据集用liblinear多分类用lbfgs。决策树则关注max_depth树深、min_samples_split节点分裂最小样本数、criteriongini或entropy。我一般会先跑默认参数再画特征重要性图把重要性接近 0 的特征删掉再训练一次准确率往往能涨一两个点。3.2 回归模型线性回归与随机森林回归回归模块用于预测连续值比如房价、销量、温度。线性回归是基线随机森林回归用来捕捉非线性关系。核心代码from sklearn.linear_model import LinearRegression from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error, r2_score # 线性回归基线 lr LinearRegression() lr.fit(X_train, y_train) lr_pred lr.predict(X_test) # 随机森林回归n_estimators 是树的数量 rf RandomForestRegressor(n_estimators100, random_state42) rf.fit(X_train, y_train) rf_pred rf.predict(X_test) print(线性回归 R2:, r2_score(y_test, lr_pred)) print(随机森林 R2:, r2_score(y_test, rf_pred))逻辑说明r2_score越接近 1 越好负值说明模型比直接取均值还差。n_estimators从 100 开始试超过 300 后收益递减。随机森林的feature_importances_属性可以直接输出特征重要性比线性回归的系数更直观。注意回归任务不需要StandardScaler也能跑但做了标准化后梯度下降类模型收敛更快。3.3 聚类与降维K-Means 与 PCA聚类模块解决无标签分组问题降维模块用于可视化或压缩特征。K-Means 的核心是确定簇数 K常用肘部法或轮廓系数。代码示例from sklearn.cluster import KMeans from sklearn.decomposition import PCA from sklearn.metrics import silhouette_score # 用 PCA 把特征降到 2 维方便画散点图 pca PCA(n_components2) X_pca pca.fit_transform(X) # K-Means 聚类n_clusters 是簇数 kmeans KMeans(n_clusters3, random_state42, n_init10) labels kmeans.fit_predict(X_pca) print(轮廓系数:, silhouette_score(X_pca, labels))参数说明n_init10表示用不同初始质心跑 10 次取最优避免陷入局部最优。silhouette_score范围 -1 到 1越接近 1 说明簇内越紧密、簇间越分离。PCA 的explained_variance_ratio_能告诉你前几个主成分保留了多少信息通常累计到 85% 以上就够用。这部分代码在资源里常配一张散点图颜色代表簇标签中心点用黑色叉号标出。3.4 集成与关联规则从 Bagging 到 Apriori集成模块包括随机森林、AdaBoost、GBDT 等关联规则模块则是 Apriori 和 FP-Growth。Apriori 用于购物篮分析找出“买了 A 也会买 B”的规则。核心代码from mlxtend.frequent_patterns import apriori, association_rules # df 是 one-hot 编码后的交易矩阵 frequent_itemsets apriori(df, min_support0.05, use_colnamesTrue) rules association_rules(frequent_itemsets, metriclift, min_threshold1.0) # 按提升度排序lift 1 表示正相关 print(rules.sort_values(bylift, ascendingFalse).head(10))参数说明min_support0.05表示项集至少在 5% 的交易中出现lift大于 1 说明前件和后件正相关大于 1.5 就算比较强的规则。mlxtend不是scikit-learn自带库需要单独pip install mlxtend。这部分代码在资源里通常配一个超市交易数据集跑完能直接看到“面包 → 牛奶”这类规则。4. 运行与验证从零跑通第一个模型4.1 环境准备与数据加载拿到资源后第一步是确认 Python 版本和依赖。建议用 Python 3.8 以上因为部分库已经不支持 3.6。进入项目根目录后先建虚拟环境再装依赖cd algorithm-models python -m venv venv source venv/bin/activate pip install -r requirements.txt如果requirements.txt里没有固定版本号安装最新版可能遇到 API 变动。常见做法是手动降级pip install scikit-learn1.0.2。数据加载部分资源里通常自带data/文件夹里面是 CSV 或 Excel 文件。用 Pandas 读取import pandas as pd df pd.read_csv(data/iris.csv) print(df.head()) print(df.shape)逻辑说明head()看前五行确认列名和数据类型shape看样本数和特征数。如果标签列是字符串需要先做编码from sklearn.preprocessing import LabelEncoder le LabelEncoder() df[label] le.fit_transform(df[label])4.2 单模型运行与结果解读以classification/logistic_regression.py为例直接运行python classification/logistic_regression.py终端会输出准确率、混淆矩阵、分类报告。混淆矩阵的对角线是正确分类数非对角线是误判。分类报告里的precision精确率、recall召回率、f1-score需要结合业务看如果误报成本高关注 precision如果漏报成本高关注 recall。我一般会先把random_state固定跑三次看结果波动如果准确率跳动超过 3 个点说明数据划分不稳定需要增大测试集比例或做交叉验证。4.3 批量运行与结果对比资源里模型多一个个跑效率低。可以写一个简单脚本批量执行import os import subprocess model_files [ classification/logistic_regression.py, classification/decision_tree.py, regression/linear_regression.py, clustering/kmeans.py ] for f in model_files: print(f正在运行: {f}) result subprocess.run([python, f], capture_outputTrue, textTrue) print(result.stdout) if result.stderr: print(错误:, result.stderr)逻辑说明subprocess.run捕获标准输出和错误方便统一记录。注意每个脚本如果用了matplotlib.show()在无界面环境会阻塞需要改成savefig或设置matplotlib.use(Agg)。批量跑完后把准确率、R2、轮廓系数整理成表格就能横向对比哪个模型适合当前数据。5. 避坑与常见问题跑模型时容易翻车的几个点5.1 数据泄露标准化顺序搞反现象模型在测试集上准确率异常高上线后效果暴跌。原因先对整个数据集做了fit_transform再划分训练测试集测试集信息泄露到训练过程。解决严格按“先划分再在训练集上fit_transform测试集只transform”的顺序。这个坑在资源里如果没强调新手很容易踩。5.2 版本不兼容sklearnAPI 变动现象报错ImportError: cannot import name Xxx或AttributeError: Xxx object has no attribute yyy。原因资源写的时候用的是旧版scikit-learn你装的是新版部分类被移除或改名。解决查scikit-learn官方变更日志或者直接降级到资源注释里写的版本。常见做法是在requirements.txt里锁定scikit-learn1.0.2。5.3 中文显示方块Matplotlib 字体缺失现象混淆矩阵、特征重要性图里的中文变成方框。原因Matplotlib 默认字体不支持中文。解决在绘图前设置import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei] # Windows plt.rcParams[axes.unicode_minus] FalseLinux 或 Mac 换成Arial Unicode MS或PingFang SC。如果找不到字体直接搜“matplotlib 中文字体”按系统配置。5.4 内存溢出数据量过大时一次性加载现象MemoryError或程序卡死。原因CSV 文件几个 Gpd.read_csv一次性读入内存。解决用chunksize分块读取或者只读需要的列df pd.read_csv(big_data.csv, usecols[col1, col2, label], nrows100000)nrows先取前 10 万行调试确认流程没问题再全量跑。聚类和集成模型对内存消耗大数据超过 50 万行建议换用LightGBM或MiniBatchKMeans。5.5 随机种子未固定结果无法复现现象每次运行准确率都不一样没法对比模型。原因train_test_split、模型初始化、K-Means 质心都带随机性。解决所有涉及随机的函数都加random_state42包括train_test_split、RandomForestRegressor、KMeans、PCA部分版本。固定后结果可复现调参才有意义。6. 二次开发与改造把示例代码变成自己的项目6.1 替换数据集与特征工程资源里的示例数据通常是 Iris、Boston、Titanic 这类经典数据集。要用于自己的业务第一步是替换数据加载部分。假设你有一个sales.csv包含日期、门店、促销、销量等字段df pd.read_csv(data/sales.csv, parse_dates[date]) # 构造时间特征 df[month] df[date].dt.month df[dayofweek] df[date].dt.dayofweek df[is_weekend] df[dayofweek].isin([5, 6]).astype(int) # 类别特征做 one-hot df pd.get_dummies(df, columns[store], drop_firstTrue) # 删除原始日期列 df df.drop(columns[date])逻辑说明parse_dates把日期列转成 datetime 类型方便提取月份、星期。get_dummies把门店列变成多个 0/1 列drop_firstTrue避免多重共线性。特征工程做完后把标签列移到最后一列其余作为特征矩阵就能套用资源里的回归模型。6.2 封装成可复用的训练函数资源里每个模型独立成文件二次开发时建议抽一个通用训练函数减少重复代码def train_and_evaluate(model, X_train, X_test, y_train, y_test, taskclassification): model.fit(X_train, y_train) y_pred model.predict(X_test) if task classification: from sklearn.metrics import accuracy_score, f1_score return { accuracy: accuracy_score(y_test, y_pred), f1: f1_score(y_test, y_pred, averageweighted) } else: from sklearn.metrics import mean_squared_error, r2_score return { rmse: mean_squared_error(y_test, y_pred, squaredFalse), r2: r2_score(y_test, y_pred) }参数说明task区分分类和回归返回字典方便后续写入日志或对比表。f1_score用weighted处理类别不平衡。这个函数可以放在utils.py里所有模型脚本导入调用。6.3 模型持久化与部署验证训练完的模型需要保存避免每次重新训练。用joblib比pickle更高效import joblib joblib.dump(model, models/logistic_regression.pkl) # 加载时 loaded_model joblib.load(models/logistic_regression.pkl) new_pred loaded_model.predict(new_data)验证方法拿一批没参与训练的数据分别用原始模型和加载后的模型预测对比结果是否一致。如果一致说明持久化成功。部署时注意特征顺序必须和训练时完全一致否则预测结果会错得离谱。我一般会把特征列名存成一个json文件加载模型时同时读取确保顺序对齐。6.4 一个具体技巧用交叉验证替代单次划分单次train_test_split的结果受划分影响大改成 5 折交叉验证更稳from sklearn.model_selection import cross_val_score scores cross_val_score(model, X, y, cv5, scoringaccuracy) print(交叉验证准确率: %.3f ± %.3f % (scores.mean(), scores.std()))cv5表示 5 折scoring可选accuracy、f1、neg_mean_squared_error。标准差越小说明模型越稳定。这个技巧在资源里可能只提了一句但实际项目中非常有用。从那以后我每次调完参数都会强制走一遍交叉验证确认提升不是划分运气带来的。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

artcraft:数字生成与手工工艺融合的创作流程

artcraft:数字生成与手工工艺融合的创作流程

artcraft 这个词,是我在一个晚上盯着满屏的噪点图时冒出来的。屏幕里是算法刚刚生成的一堆“海浪纹理”,桌角是一块刨好的椴木板,两边分明是两个世界,但我隐约觉得它们应该能变成同一样东西。后来这个项目做的所有事,就…

2026/10/19 6:09:41 阅读更多 →
Vue 3 核心原理详解:响应式、虚拟DOM与编译优化

Vue 3 核心原理详解:响应式、虚拟DOM与编译优化

1. Vue 3 到底改了什么:从设计目标倒推原理1.1 为什么是重写而不是小修小补很多朋友第一次接触 Vue 3 时,第一反应是“Vue 2 我还没学明白呢,怎么又开始改”。真去源码里看一圈之后,会发现 Vue 3 不是 Vue 2 的复制粘贴&#xff0…

2026/10/19 6:09:41 阅读更多 →
EF6 SaveChanges验证失败排查:EntityValidationErrors明细与根因定位

EF6 SaveChanges验证失败排查:EntityValidationErrors明细与根因定位

接手 EF 项目的头两周,我就在日志里撞上了这句让人一头雾水的英文:Validation failed for one or more entities. See EntityValidationErrors property for more details.翻译过来是"一个或多个实体的验证失败,更多细节见 EntityValida…

2026/10/19 6:09:41 阅读更多 →

最新新闻

Dify工作流实现双模型分栏流式对比:从原理到实践

Dify工作流实现双模型分栏流式对比:从原理到实践

最开始我对比两个模型的回答质量,用的还是最笨的办法:开两个浏览器标签页,把同一个问题分别粘进去,再左右来回切。遇到长回答还得自己对对齐位置,效率低到让人怀疑人生。直到我把这套动作搬进 Dify,用可视化…

2026/10/19 6:51:01 阅读更多 →
击剑赛事编排引擎:离线优先、规则可配置的本地化工具

击剑赛事编排引擎:离线优先、规则可配置的本地化工具

简介:Engarde816是一款面向击剑赛事组织者、裁判团队及体育信息化管理者的专业编排软件,专为解决中小型至大型击剑比赛中的分组抽签、赛制设定(单/双败淘汰、循环赛)、对阵生成、实时成绩追踪与多场地日程协同等核心难题而设计。资…

2026/10/19 6:51:01 阅读更多 →
TaskExplorer 完整指南:跨平台深度进程监控工具

TaskExplorer 完整指南:跨平台深度进程监控工具

TaskExplorer 完整指南:跨平台深度进程监控工具 【免费下载链接】TaskExplorer Power full Task Manager for Windows and Linux 项目地址: https://gitcode.com/GitHub_Trending/ta/TaskExplorer TaskExplorer 是一款功能强大的跨平台任务管理器&#xff0c…

2026/10/19 6:51:01 阅读更多 →
DeepSeek-V4-Flash-Vision-Exp-MLX生产部署指南:OpenAI兼容API与本地服务搭建

DeepSeek-V4-Flash-Vision-Exp-MLX生产部署指南:OpenAI兼容API与本地服务搭建

【免费下载链接】DeepSeek-V4-Flash-Vision-Exp-MLX 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/DeepSeek-V4-Flash-Vision-Exp-MLX 点击查看 免费下载 DeepSeek-V4-Flash-Vision-Exp-MLX 是 DeepSeek V4 系列的实验性多模态模型(支持…

2026/10/19 6:51:01 阅读更多 →
VideoMamba开发者指南:如何将它作为Backbone无缝替换ViT接入你的视频项目

VideoMamba开发者指南:如何将它作为Backbone无缝替换ViT接入你的视频项目

【免费下载链接】VideoMamba 项目地址: https://ai.gitcode.com/OpenGVLab/VideoMamba 点击查看 免费下载 VideoMamba 是一个基于双向状态空间模型(Bidirectional SSM)的轻量级视频理解模型,由 OpenGVLab 开发,核心定…

2026/10/19 6:51:01 阅读更多 →
LTX-2 在 ComfyUI 中如何落地:ComfyUI-LTXVideo 节点安装、首跑与显存配置指南

LTX-2 在 ComfyUI 中如何落地:ComfyUI-LTXVideo 节点安装、首跑与显存配置指南

LTX-2 在 ComfyUI 中如何落地:ComfyUI-LTXVideo 节点安装、首跑与显存配置指南 【免费下载链接】ComfyUI-LTXVideo LTX-Video Support for ComfyUI 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-LTXVideo 本文面向刚接触 AI 视频生成的读者&am…

2026/10/19 6:50:01 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →