真实面经题目 · 原创解析

PLCC 相关系数是怎么实现的?

PLCC 通常指 Pearson Linear Correlation Coefficient,实现时就是计算预测值和真实值的协方差,再除以两者标准差乘积。它衡量线性相关程度,范围在 -1 到 1。

出现于:哔哩哔哩 · 算法

60 秒回答模板

PLCC 的实现步骤是:给定预测数组 x 和真实数组 y,先分别计算均值;再计算每个样本的中心化值 x_i-mean_x、y_i-mean_y;分子是中心化后逐项乘积求和,也就是协方差的比例项;分母是 x 的平方和开根号乘以 y 的平方和开根号;最后分子除以分母。要注意长度一致、过滤 NaN、分母为 0 时无法定义,并区分 PLCC 衡量线性相关,不代表误差大小。

考点 衡量线性相关
难度 算法岗真实面经题
回答目标 讲清方法、取舍和追问

深入解析

01

先定义含义

PLCC 是 Pearson 线性相关系数,用来衡量两个变量是否存在线性同升同降关系。结果接近 1 表示强正线性相关,接近 -1 表示强负线性相关,接近 0 表示线性相关弱。

02

中心化数据

实现时先计算两个数组的均值,再把每个元素减去各自均值。中心化能去掉整体偏移,让指标关注相对变化是否一致。

03

计算分子分母

分子是中心化后的逐项乘积求和,分母是两个中心化向量的 L2 范数乘积。这个形式等价于协方差除以标准差乘积。

04

处理边界情况

如果数组长度不一致、包含 NaN 或某一边方差为 0,PLCC 无法正常计算。工程实现要明确过滤、报错或返回默认值的策略。

05

理解指标局限

PLCC 对线性尺度关系敏感,但不直接衡量绝对误差。预测整体乘一个正数可能 PLCC 仍然很高,因此常和 MAE、RMSE、SROCC 等指标一起看。

易错点

  • 不要把 PLCC 当成准确率或误差指标,它是相关性指标。
  • 不要忘记中心化,直接点积不是 Pearson 相关系数。
  • 不要忽略方差为 0 的边界情况。
  • 不要只报 PLCC,回归任务通常还要结合误差指标看。

面试官追问

PLCC 和 SROCC 有什么区别?

PLCC 衡量原始数值的线性相关,SROCC 衡量排序后的单调相关。非线性但单调的关系可能 SROCC 高而 PLCC 不高。

分母为 0 怎么办?

说明某个数组没有方差,相关系数无法定义。实现中应返回 NaN、报错或按业务约定处理,不能直接除以 0。

为什么 PLCC 高但 RMSE 仍可能大?

PLCC 关注线性趋势,预测值如果整体缩放或偏移,相关性可能仍高,但绝对误差会变大。