数据科学统计与数学终极备忘录
在数据科学领域,深入理解数据的统计和数学基础对于恰当地应用和解释机器学习方法至关重要。
前言
本文属于搬运内容,致敬原作者:Andre Ye!原文链接在文章末尾。
在数据科学领域,深入理解数据的统计和数学基础对于恰当地应用和解释机器学习方法至关重要。
内容简介
- 分类器指标:混淆矩阵、敏感性(召回率)、特异性、精确率、F1分数。了解它们的定义、使用场景及实现方法。
- 回归器指标:MAE、MSE、RMSE、MSLE、R²。它们的定义、使用场景及实现方法。
- 统计指标:相关系数、协方差、方差、标准差。如何使用和解释这些指标。
- 分布类型:三种最常见的分布及其识别方法。
分类器指标
分类器指标用于评估机器学习分类器(将每个训练样本划分为若干离散类别的模型)的性能。

混淆矩阵
混淆矩阵是一种矩阵,用于展示分类器在标签上的预测情况。它包含四个单元,分别对应预测值和实际值为真或假的组合。许多分类器指标基于混淆矩阵,因此建议熟记其结构。
敏感性/召回率 (Sensitivity/Recall)
敏感性是指被正确预测为正类的样本数量,计算公式为:

(其中 FN 表示假阴性)。
敏感性在正确预测正类至关重要的场景中非常有用,例如医疗诊断。尽管假阳性可能会造成问题,但假阴性(如错误诊断为“无癌症”)往往更加致命。因此,提升模型的敏感性有助于优先正确分类正类。
特异性 (Specificity)
特异性是指被正确预测为负类的样本数量,计算公式为:
(其中 FP 表示假阳性)。
特异性在准确分类负类比正类更重要的场景中十分有用。
精确率 (Precision)
精确率与敏感性相反,敏感性衡量实际为正类的样本中被正确预测的比例,而精确率衡量被预测为正类的样本中实际为正类的比例:

精确率和召回率共同提供了模型性能的全面视角。

F1 分数
F1 分数结合了精确率和召回率,其公式为:

由于使用调和平均数,F1 分数对极端值更加敏感,而算术平均数对所有误差权重相同。
检测/准确率 (Detection/Accuracy Rate)
准确率是正确分类样本的比例,计算公式为:

此准确率平等对待正类和负类样本,而不是优先考虑某一类。
选择 F1 分数还是准确率?
- F1 分数:当错误分类(假阳性和假阴性)需要重点关注时使用,例如在类别不平衡的情况下(如癌症诊断中,负类远多于正类)。
- 准确率:当模型目标是优化整体性能时使用,适合类别较为平衡的数据。
实现指标的方法

在 sklearn 中,相关指标的名称为:
- 混淆矩阵:
confusion_matrix - 敏感性/召回率:
recall_score - 精确率:
precision_score - F1 分数:
f1_score - 准确率:
accuracy_score - 平衡准确率(适用于类别不平衡):
balanced_accuracy_score
回归器指标
回归指标用于评估模型在连续尺度上的预测性能,例如预测房屋价格。
平均绝对误差 (Mean Absolute Error, MAE)
MAE 是最常见且易于解释的回归指标之一。它通过计算每个数据点的预测值与真实值之间的差值(绝对值),然后取这些差值的平均值来评估模型误差。公式为:

中位绝对误差 (Median Absolute Error)
中位绝对误差是评估平均误差的另一种方法。它的优点在于通过关注误差的中位数值,将误差分布拉低,从而减少极高或极低误差的影响。然而,这也意味着中位绝对误差忽略了 MAE 中会被计算的极端误差。
均方误差 (Mean Square Error, MSE)
MSE 是另一种常用的回归指标,它会对较大的误差赋予更高的权重。例如,误差为 2 的数据点会被加权为 4,而误差为 5 的数据点会被加权为 25。MSE 的计算公式为:

MSE 比 MAE 更关注大误差,因为误差的平方增加了它们的影响。
均方根误差 (Root Mean Square Error, RMSE)
RMSE 通过对 MSE 开平方提供了一种更具解释性的指标。它与 MAE 类似,因其单位和原始数据相近而便于理解,同时仍然对较大的误差赋予更高的权重:

对数均方误差 (Mean Squared Logarithmic Error, MSLE)
MSLE 是 MAE 的一种变体。由于对数性质,MSLE 只关注百分比差异。例如,对于小值之间的小差异(如 4 和 3)与大值之间的大差异(如 1200 和 900),MSLE 会给予相同的权重。这使其特别适用于某些比例关系重要的回归任务。
决定系数 (R²)
R² 是一种常用的回归指标,用于衡量模型对因变量方差的解释程度。其值介于 0 到 1 之间,值越接近 1,模型的拟合效果越好。公式为:

其中,yˉ 是实际值的均值。R² 能很好地反映数据与回归模型的拟合程度。
实现指标的方法

以下是对应的指标名称:
- 平均绝对误差:
mean_absolute_error - 中位绝对误差:
median_absolute_error - 均方误差:
mean_squared_error - 均方根误差:
root_mean_squared_error - 对数均方误差:
mean_squared_log_error - 决定系数:
r2_score
统计指标
数据科学中四大主要统计度量

相关性 (Correlation)
相关性是衡量两个变量如何一起波动的统计指标。
- 正相关:两个变量一起波动,即一个变量的正变化伴随着另一个变量的正变化。
- 负相关:两个变量呈相反方向波动,即一个变量的正变化伴随着另一个变量的负变化。
相关系数(Correlation Coefficient)范围在 -1 到 +1 之间,也被称为 R 值:
- R = +1:完全正相关。
- R = -1:完全负相关。
- R = 0:无相关性。

在 Pandas 中计算相关性
通过 Pandas DataFrame 的 .corr() 方法可以计算相关系数。
以下是一个示例:
import pandas as pd
seq1 = [0, 0.5, 0.74, 1.5, 2.9]
seq2 = [4, 4.9, 8.2, 8.3, 12.9]
table = pd.DataFrame({'a': seq1, 'b': seq2})
correlation_table = table.corr()
print(correlation_table)
输出的相关性表格中,序列 a 和 b 的相关系数为 0.95。
相关性表是对称的,当一个序列与自身比较时,其相关性为 1。

协方差 (Covariance)
协方差与相关性类似,用于衡量函数在变量线性变换时保持其形式的属性。然而,协方差与相关性有以下不同:
- 协方差可以取任意值,而相关性限制在 -1 到 +1 之间。
- 协方差具有单位,受中心值或比例变化的影响,因此不如相关性直观。
协方差虽然单独使用较少,但在许多统计公式中非常重要,是值得了解的指标。
在 Python 中,可以使用 numpy.cov(a, b)[0][1] 计算协方差,其中 a 和 b 是要比较的序列。
例如:
import numpy as np
a = [0, 0.5, 0.74, 1.5, 2.9]
b = [4, 4.9, 8.2, 8.3, 12.9]
covariance = np.cov(a, b)[0][1]
print(covariance)
方差 (Variance)
方差衡量随机变量偏离其均值的平方期望值,直观上表示数据点离均值的散布程度。
在 Python 中,可以通过 statistics 库的 statistics.variance(list) 方法计算方差:
import statistics
data = [0, 0.5, 0.74, 1.5, 2.9]
variance = statistics.variance(data)
print(variance)
标准差 (Standard Deviation)
标准差是方差的平方根,是一种更直观的度量,用于表示分布的散布程度。
在 Python 中,可以通过 statistics 库的 statistics.stdev(list) 方法计算标准差:
standard_deviation = statistics.stdev(data)
print(standard_deviation)
标准差比方差更易于解释,因为其单位与原始数据一致。
分布类型
在数据分析中,了解数据分布类型非常重要,这可以帮助你选择合适的统计和机器学习方法。
尽管数学上存在许多种类的分布,大多数分布可以归类为以下三种主要分布类型:

均匀分布 (Uniform Distribution)
均匀分布是最简单的分布,其特征是完全平坦或真正随机。
例如,将一个骰子掷6000次,记录每次掷出的点数(从1到6),会得到一个接近平坦的分布,每个点数大约出现1000次。
均匀分布的应用:
均匀分布具有许多有用的性质。例如,二战期间,盟军利用均匀分布的统计属性解决了德国坦克问题,从而挽救了无数生命。
更多内容:
How Data Science Gave the Allied Forces an Edge in World War II
正态分布 (Normal Distribution)
正态分布是一种非常常见的分布,其形状类似于一个曲线(通常被称为“钟形曲线”)。除了在数据科学中的常见应用外,自然界中的许多现象(例如 IQ 或工资)也符合正态分布。
正态分布的特点:
- 68%的数据位于均值的一个标准差范围内。
- 95%的数据位于均值的两个标准差范围内。
- 99.7%的数据位于均值的三个标准差范围内。
在机器学习中的重要性:
许多机器学习算法要求数据服从正态分布。例如,逻辑回归要求残差服从正态分布。这可以通过 residplot() 可视化和识别。
更多关于统计模型的信息和示例,可以参考 相关链接。
泊松分布 (Poisson Distribution)
泊松分布可以看作是正态分布的广义形式,它是一种离散概率分布,用于描述在固定时间或空间区间内发生特定事件的概率。
泊松分布的特点:
- 事件发生的速率是已知且恒定的。
- 每个事件的发生是独立的,与上一次事件发生的时间无关。
通过改变参数 λ(事件的平均发生率),泊松分布可以调整均值的位置,生成左偏或右偏的数据。
泊松分布在建模事件发生频率(例如客户到访、网络流量等)时非常有用。
感谢阅读,希望今天你更博学了!