相关系数与决定系数:别再混淆,一文讲透模型评估核心指标
1. 从一个让人困惑的结论说起相关系数高模型就一定准吗很多人第一次接触统计建模时都会经历这样一个场景辛辛苦苦跑完一组数据软件输出一个相关系数0.85心里一阵激动觉得变量之间的关系已经非常明确了。但紧接着又看到另一个数字——决定系数0.72于是开始犯嘀咕这两个数到底什么关系为什么一个高一个低到底该看哪个来判断模型好坏我见过不少做数据分析的朋友在汇报时把这两个指标混着用甚至有人直接说“相关系数是0.85所以模型解释了85%的变异”这句话严格来说是错的。相关系数和决定系数虽然名字里都带“系数”数值上也有千丝万缕的联系但它们回答的是完全不同的问题。搞混这两个概念轻则汇报时被质疑重则导致建模方向跑偏选错变量、误判模型效果。这篇内容就是想把这两个指标彻底讲清楚。我会从它们各自的定义出发讲明白它们分别衡量什么、怎么计算、什么场景下该用哪个再结合几个实际案例把常见的误区和坑一个个拆开。不管你是刚学统计的学生还是已经工作几年但一直没系统梳理过这块知识的数据从业者看完之后应该都能对这两个指标有一个清晰、不模糊的认识。核心关键词会贯穿全文相关系数、决定系数、皮尔逊相关系数、R方、线性回归、变量关系、模型拟合优度。这些词不是摆设每一个背后都对应着一套具体的计算逻辑和使用场景我会在需要的地方逐一展开。2. 相关系数到底在衡量什么两个变量“同进同退”的程度2.1 皮尔逊相关系数的直观含义相关系数最常用的版本是皮尔逊相关系数通常用字母 r 表示。它的取值范围是 -1 到 1 之间。这个数字描述的是两个变量之间线性关系的方向和强度。方向很好理解r 为正说明一个变量增大时另一个也倾向于增大这叫正相关r 为负说明一个变量增大时另一个倾向于减小这叫负相关。强度则看绝对值越接近1或-1线性关系越强越接近0线性关系越弱。但这里有一个非常关键的限定词——线性。相关系数只捕捉线性关系。如果两个变量之间是完美的抛物线关系比如 y x²在 x 取对称区间时算出来的相关系数可能接近0但它们之间其实存在确定的函数关系。这是相关系数最容易被误读的地方。我常用一个生活化的类比来解释把两个变量想象成两个人走路。相关系数衡量的是他们是不是在同一个方向上、以相似的节奏迈步。如果一个人往前走另一个人也往前走而且步幅成比例那就是强正相关。但如果一个人走的是圆圈另一个人走的是直线他们可能在某些时刻方向一致但整体上相关系数会很低尽管他们的运动都是有规律的。2.2 相关系数的计算公式与手动推演皮尔逊相关系数的公式是[ r \frac{\sum_{i1}^{n}(x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i1}^{n}(x_i - \bar{x})^2} \cdot \sqrt{\sum_{i1}^{n}(y_i - \bar{y})^2}} ]这个公式看起来有点吓人但拆开看逻辑很清晰。分子是协方差部分衡量两个变量一起偏离各自均值的程度分母是两个变量各自标准差的乘积起到归一化的作用把结果限制在 -1 到 1 之间。我建议每个刚学的人至少手动算一遍五个数据点的小例子。比如下面这组数据样本xy112224335444555先算 x 的均值是3y 的均值是4。然后逐个算离差乘积和离差平方最后代入公式。算完你会发现 r 大约是0.85左右。这个过程走一遍比看十遍公式都有用因为你会真切感受到分子分母各自在做什么。2.3 相关系数的几个重要性质第一对称性。x 和 y 的相关系数等于 y 和 x 的相关系数谁在前谁在后不影响结果。这跟回归系数不一样回归系数是有方向的。第二无量纲。相关系数不受变量单位影响。你把 x 从米换成厘米r 不变。这是它比协方差更好用的地方协方差会随单位变化没法直接比较强弱。第三对异常值敏感。一个极端的离群点可以把相关系数从0.9拉到0.3也可以从0.1拉到0.7。所以算相关系数之前一定要先看散点图确认没有异常值在捣乱。第四只能测线性关系。前面已经强调过这里再提一次是因为它太重要了。如果散点图呈现明显的曲线模式相关系数低并不代表没关系只代表没有线性关系。提示在实际项目中我养成了一个习惯——任何相关系数算出来之后必须配一张散点图。数字和图形对不上一定是哪里有问题。3. 决定系数登场模型到底解释了多少变异3.1 R方的定义与它回答的问题决定系数通常叫 R² 或 R方取值范围是 0 到 1。它回答的问题是因变量的变异中有多少比例可以被自变量解释。举个例子。假设你在研究房价因变量是房价自变量是面积。房价本身有波动有的高有的低这个波动就是变异。你用面积去预测房价建了一个回归模型。R² 0.8 意味着房价波动的80%可以由面积的差异来解释剩下的20%是面积解释不了的可能跟地段、楼层、装修等因素有关。这个解释比例的概念是 R² 最核心的价值。它直接告诉你模型对数据的拟合程度。R² 越高模型对现有数据的解释力越强。但注意这里说的是“对现有数据”不是“对未来数据”这两者有本质区别后面会专门讲。3.2 R方的计算从平方和分解说起R² 的计算基于平方和分解。总平方和SST衡量因变量的总变异回归平方和SSR衡量模型解释掉的变异残差平方和SSE衡量模型没解释掉的变异。三者关系是[ SST SSR SSE ]而 R² 的定义就是[ R^2 \frac{SSR}{SST} 1 - \frac{SSE}{SST} ]这个公式很直观模型解释的变异占总变异的比例。如果模型完美拟合SSE为0R²就是1。如果模型跟瞎猜差不多SSR接近0R²就接近0。在简单线性回归只有一个自变量的情况下R² 恰好等于相关系数 r 的平方。这就是为什么很多人会把两者混在一起。但一旦进入多元回归有多个自变量时这种简单对应关系就不存在了R² 有自己独立的计算逻辑。3.3 简单回归中 r 和 R² 的数值关系在简单线性回归中r² R²。比如 r 0.85那么 R² 0.7225。这就是开头那个场景里两个数字的来源。但理解这个关系时要注意几点第一这个等式只在简单线性回归且模型包含截距项时成立。如果回归不包含截距或者用的是其他类型的模型这个关系就不成立。第二r 可以是负数但 R² 永远非负。因为 R² 是平方后的结果方向信息丢失了。r -0.85 和 r 0.85 对应的 R² 都是0.7225。所以 R² 只告诉你解释力强弱不告诉你方向。第三即使数值上相等它们的含义和用途不同。r 衡量两个变量的线性关联强度R² 衡量模型对因变量的解释比例。一个是对称的关系度量一个是有方向的模型评价指标。对比维度相关系数 r决定系数 R²取值范围-1 到 10 到 1方向信息有正负无对称性对称不对称有因变量和自变量之分核心含义线性关联强度模型解释的变异比例适用场景衡量两变量关系评价回归模型拟合优度多元场景不直接适用直接适用4. 为什么R方会“骗人”几个必须知道的陷阱4.1 增加自变量必然推高R方这是 R² 最被人诟病的一点。在多元回归中只要你往模型里加自变量不管这个变量有没有实际意义R² 都不会下降至少持平通常都会上升。哪怕你加的是一个随机生成的噪声变量R² 也会微微上涨。原因在于 R² 的计算方式SSE 只会随着参数增多而减小或不变所以 1 - SSE/SST 只会增大或不变。这意味着用 R² 来比较不同变量数量的模型是不公平的变量多的模型天然占优。解决办法是使用调整R方。调整R方在计算时引入了自变量个数作为惩罚项[ R^2_{adj} 1 - \frac{(1 - R^2)(n - 1)}{n - p - 1} ]其中 n 是样本量p 是自变量个数。当加入的变量对模型没有实质贡献时调整R方会下降。所以比较模型时尤其是自变量数量不同的模型应该看调整R方而不是原始R方。我踩过的一个坑早期做特征筛选时我一股脑把十几个变量全塞进模型看到 R² 从0.6涨到0.78以为找到了宝藏。后来用调整R方一看只有0.65多出来的那些变量基本是噪声。从那以后我养成了同时看两个指标的习惯。4.2 高R方不等于因果关系R² 高只能说明模型对数据的拟合好不能说明自变量导致了因变量的变化。经典的例子是“冰淇淋销量”和“溺水人数”高度相关R² 很高但显然不是冰淇淋导致溺水而是夏天这个共同因素在起作用。在业务场景中这个陷阱特别危险。比如你发现某个营销渠道的投入和销售额 R² 很高就决定加大投入结果发现效果并不明显因为可能只是季节性因素让两者同时上涨。4.3 低R方不一定意味着模型没用有些领域的 R² 天然就低。比如预测股票价格R² 能到0.05就已经算不错了因为价格受太多不可预测因素影响。再比如社会科学中研究人类行为R² 在0.2到0.4之间很常见。判断 R² 高低要结合领域基准。在物理实验中R² 低于0.95可能就说明有问题在金融预测中R² 到0.3可能已经很有价值。脱离领域谈 R² 高低没有意义。4.4 过拟合R方虚高的幕后推手当模型复杂到一定程度它可能把训练数据中的噪声也“学”进去了。这时候训练集上的 R² 会很高但换一组新数据R² 可能惨不忍睹。这就是过拟合。检测过拟合的常用方法是交叉验证把数据分成几份轮流用其中一部分做测试看 R² 在不同数据子集上的稳定性。如果训练集 R² 是0.95测试集 R² 只有0.4那基本可以确定过拟合了。注意任何时候看到异常高的 R²先别高兴检查一下是不是过拟合、数据泄漏或者样本量太小。5. 实操中怎么选、怎么算、怎么解读5.1 什么场景用相关系数什么场景用决定系数选择哪个指标取决于你要回答的问题。如果你想知道两个变量之间有没有线性关联、关联有多强用相关系数。比如探索性数据分析阶段快速扫一遍变量之间的相关矩阵找出哪些变量跟目标变量走得近。如果你已经建了一个回归模型想知道模型对数据的解释力用决定系数。比如你做了房价预测模型需要向业务方说明模型能解释多少房价波动。如果你在做变量筛选两个都要看。先看相关系数矩阵找出候选变量再建模型看 R² 和调整R方判断整体效果。如果你在比较不同模型用调整R方或者用交叉验证后的 R²不要直接比原始 R²。5.2 用Python快速计算两个指标实际工作中我基本不会手算这些指标都是用代码。下面是一段可以直接复现的Python代码import numpy as np from scipy.stats import pearsonr from sklearn.linear_model import LinearRegression from sklearn.metrics import r2_score # 生成示例数据 np.random.seed(42) x np.random.rand(100) * 10 y 2 * x np.random.randn(100) * 3 # 计算皮尔逊相关系数 r, p_value pearsonr(x, y) print(f相关系数 r {r:.4f}, p值 {p_value:.4e}) # 计算决定系数 x_reshaped x.reshape(-1, 1) model LinearRegression() model.fit(x_reshaped, y) y_pred model.predict(x_reshaped) r2 r2_score(y, y_pred) print(f决定系数 R² {r2:.4f}) # 验证简单回归中 r² R² print(fr的平方 {r**2:.4f})跑完这段代码你会看到 r 的平方和 R² 几乎完全一致浮点误差范围内。这就是简单线性回归中的经典关系。对于多元回归计算 R² 的方法一样只是 x 变成多列。调整R方需要手动算或者用统计库import statsmodels.api as sm # 多元回归示例 X np.column_stack([x, np.random.rand(100) * 5]) X_with_const sm.add_constant(X) model_sm sm.OLS(y, X_with_const).fit() print(model_sm.summary())summary()输出里会同时给出 R² 和调整R方还有每个变量的系数和显著性检验非常方便。5.3 解读结果时的几个实操要点第一先看图再看数。不管 r 还是 R²算出来之后一定要画散点图或残差图。数字是抽象的图形能暴露很多数字掩盖的问题。第二报告时写清楚是哪个指标。不要只说“相关系数0.85”要说“皮尔逊相关系数0.85”。不要只说“R方0.72”要说“决定系数0.72”或者“调整决定系数0.68”。精确的表述能避免很多误解。第三结合样本量看显著性。相关系数有对应的显著性检验p值小于0.05通常认为显著不为零。但样本量很大时即使 r 0.1 也可能显著这时候要结合效应量来判断实际意义。第四R方要报告调整后的版本尤其是在多元回归中。原始 R² 容易给人过于乐观的印象。实操场景推荐指标注意事项探索变量关系相关系数 散点图检查异常值和非线性简单回归评价R² 或调整R方两者在简单回归中接近多元回归评价调整R方原始R方会虚高模型比较交叉验证R²避免过拟合误导业务汇报调整R方 业务解释不要只丢数字6. 几个真实项目中的踩坑记录6.1 忽略非线性关系导致误判有一次做用户行为分析发现用户活跃天数和消费金额的相关系数只有0.3左右团队一度认为活跃度对消费影响不大。后来画了散点图才发现关系其实是非线性的活跃天数很低时消费也低活跃天数中等时消费增长最快活跃天数很高时消费反而趋于平缓。整体线性相关系数被这种曲线模式拉低了。后来我们把活跃天数做了分段处理或者用多项式回归R² 从0.09提升到了0.35。这个案例告诉我相关系数低不等于没关系一定要先看图形。6.2 用R方比较不同因变量的模型还有一次团队里有人拿两个模型的 R² 直接比较说预测销售额的模型 R² 0.85预测利润的模型 R² 0.6所以销售额模型更好。这个比较其实没有意义因为因变量不同总变异的构成不同R² 不可直接跨因变量比较。正确的做法是如果要比较不同因变量的模型应该看残差的标准误相对于因变量均值的比例或者用其他可比的指标。6.3 样本量太小导致R方不稳定在一个小样本项目里n15我们建了一个含三个自变量的回归模型R² 高达0.92团队很兴奋。但交叉验证后发现每次留一法测试的 R² 波动极大从0.3到0.9都有。这说明模型极不稳定高 R² 只是过拟合了小样本中的噪声。经验法则是简单回归至少需要20个样本多元回归每个自变量至少需要10到15个样本。样本不够时R² 的参考价值大打折扣。6.4 数据泄漏导致R方虚高最隐蔽的坑是数据泄漏。有一次做时间序列预测不小心把未来信息混入了特征R² 到了0.98看起来完美。后来仔细检查才发现某个特征的计算用到了预测时间点之后的数据。修正后 R² 降到了0.7这才是真实水平。数据泄漏的常见形式包括用未来数据算特征、在划分训练测试集之前做了全局标准化、把目标变量的衍生变量当特征等。每次看到异常高的 R²我都会先排查数据泄漏。提示建立模型后问自己一个问题——如果明天用这个模型预测新数据这些特征真的能及时拿到吗如果答案是否定的就有泄漏风险。7. 把两个指标用对比用哪个更重要回到开头那个场景。相关系数0.85决定系数0.72这两个数字其实在说两件不同的事前者告诉你面积和房价之间有较强的正向线性关联后者告诉你面积能解释房价波动的72%。它们不矛盾只是回答的问题不同。我在实际工作中形成的习惯是探索阶段看相关系数矩阵和散点图建模阶段看调整R方和交叉验证结果汇报阶段把统计指标翻译成业务语言。比如不说“调整R方0.68”而说“模型能解释约七成的价格波动剩余三成受其他因素影响”。这两个指标都不是完美的。相关系数对非线性关系无能为力对异常值敏感决定系数会被变量数量推高容易被过拟合欺骗。但它们仍然是日常分析中最常用、最直观的工具。关键在于知道它们的边界在哪里什么时候该信什么时候该怀疑。最后分享一个我经常用的检查清单每次建完模型后过一遍散点图看了吗关系是线性的吗异常值处理了吗是简单回归还是多元回归该看R方还是调整R方样本量够吗每个自变量有足够样本支撑吗有没有数据泄漏的可能交叉验证的R方和训练集R方差距大吗报告时指标名称写准确了吗这七个问题过一遍基本能避开大部分常见的坑。统计指标是工具工具用得好不好取决于用工具的人对它的理解有多深。

相关新闻

Agent编排实战:从单Agent瓶颈到多Agent协作的工程化指南

Agent编排实战:从单Agent瓶颈到多Agent协作的工程化指南

这两年做大模型应用,我越来越觉得,单Agent已经不太够用了。早期的时候,一个Agent塞一个超长Prompt,让它一口气完成“收集资料-分析-写报告-校对-排版”,结果经常是前面步骤一错,后面全崩,而且跑…

2026/10/17 11:36:30 阅读更多 →
Tableau合成桑吉图的底层逻辑与三大支柱字段构建

Tableau合成桑吉图的底层逻辑与三大支柱字段构建

1. 桑吉图不是“画出来的”,而是“搭出来的”——Tableau里最常被误解的可视化逻辑很多人第一次在Tableau里尝试做桑吉图(Sankey Diagram),都会下意识打开“标记”面板,拖入维度、度量,选中“线”或“路径”…

2026/10/17 11:36:30 阅读更多 →
自动驾驶感知中的PCA与LDA:安全驱动的维度约简实战指南

自动驾驶感知中的PCA与LDA:安全驱动的维度约简实战指南

1. 为什么在自动驾驶感知系统里,PCA和LDA不是“选修课”,而是必过门槛?你刚接手一个车载多传感器融合项目,激光雷达点云原始维度是20486(x/y/z/intensity/ring/timestamp),摄像头输出的ResNet-5…

2026/10/17 11:36:30 阅读更多 →

最新新闻

基于 YOLO11n 的五类农业害虫智能检测系统:从模型推理到 Streamlit 可视化部署

基于 YOLO11n 的五类农业害虫智能检测系统:从模型推理到 Streamlit 可视化部署

基于 YOLO11n 的五类农业害虫智能检测系统:从模型推理到 Streamlit 可视化部署 本文介绍一个面向田间植保、智慧农业与虫情测报场景的目标检测应用。项目以 YOLO11n 为检测模型、Streamlit 为交互界面,支持图片、批量图片、视频等输入方式,可…

2026/10/17 12:26:50 阅读更多 →
WebGL绘制圆形点:从点精灵到片元着色器抗锯齿实践

WebGL绘制圆形点:从点精灵到片元着色器抗锯齿实践

WebGL入门系列走到第37篇。前面已经聊过三角形渲染、矩阵变换、纹理采样这些基础,今天这篇内容不大,但非常实用:怎么在WebGL里画一个圆形的点(point)。先解释为什么会有这个需求。不管是在散点图里做数据标记&#xff…

2026/10/17 12:26:50 阅读更多 →
HttpServletResponseWrapper实践:在Filter中统一修改响应内容的完整指南

HttpServletResponseWrapper实践:在Filter中统一修改响应内容的完整指南

1. 从修改响应内容的痛点说起做 Java Web 开发的朋友,几乎都遇到过这样的需求:想在接口返回给前端之前,偷偷改一下响应内容——比如给 JSON 加个统一包装、把敏感字段打码、往页面里注入一段统计脚本、或者记录完整的响应日志。但你很快会发现…

2026/10/17 12:26:50 阅读更多 →
Ubuntu Server 18.04系统镜像备份:Systemback原理与实战指南

Ubuntu Server 18.04系统镜像备份:Systemback原理与实战指南

1. 项目概述:为什么在Ubuntu Server 18.04上坚持用Systemback做系统镜像,而不是直接用dd或Timeshift?Systemback这个工具,在2019年前后曾是Ubuntu桌面用户圈里一个近乎“神级”的存在——它能把整个运行中的系统打包成一个可启动的…

2026/10/17 12:26:50 阅读更多 →
Vue 集成 Dify 智能问答:流式对话与会话管理实战

Vue 集成 Dify 智能问答:流式对话与会话管理实战

简介:这份资源面向Vue前端开发者与客服系统搭建者,聚焦将Dify智能问答集成进Vue客服组件的完整落地实践,适合具备一定Vue基础、希望快速实现AI数字人客服的中级开发者。压缩包共10个文件,以6个js脚本、3个vue组件和1份md说明为主&…

2026/10/17 12:26:50 阅读更多 →
Hive导入导出CSV全攻略:从建表到踩坑实战

Hive导入导出CSV全攻略:从建表到踩坑实战

1. 项目背景与核心诉求解析做数据开发的同学,十有八九都跟CSV打过交道。CSV这玩意儿说简单也简单,就是个逗号分隔的纯文本文件,说麻烦也麻烦——编码问题、引号转义、换行符不一致,每一样都能折腾人半天。我自己在实际项目中接过不…

2026/10/17 12:25:50 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →