机器学习八股文
在机器学习和信息论中,熵(Entropy) 是一个用于衡量随机变量不确定性或信息量的概念。它最初由信息论的创始人克劳德·香农(Claude Shannon)提出,因此也称为香农熵(Shannon Entropy)。熵越高,表示系统的混乱度或不确定性越大;熵越低,表示系统越有序或不确定性越小。
熵的定义
对于一个离散的随机变量 X X X ,其可能的取值为 { x 1 , x 2 , … , x n } \{x_1, x_2, \dots, x_n\} {x1,x2,…,xn},每个取值的概率为 P ( x i ) P(x_i) P(xi),则熵的定义如下:
$$
H(X) = -\sum_{i=1}^{n} P(x_i) \log_2 P(x_i)
$$
其中:
-
H ( X ) H(X) H(X) 是随机变量 X X X 的熵。
-
P ( x i ) P(x_i) P(xi) 是随机变量 X X X 取值为 x i x_i xi 的概率。
-
l o g 2 log_2 log2 表示以2为底的对数,这是因为熵的单位通常以比特(bit)为单位。
直观理解
熵可以理解为对随机变量的平均信息量的度量。具体来说:
-
如果一个系统非常有序(例如,所有事件的概率都是确定的),那么系统的熵较低,甚至为0(如果只有一个确定的结果)。
-
如果系统非常混乱(例如,所有事件发生的概率相等且不可预测),那么系统的熵较高。
举个例子
假设有一个二分类问题,其中类别A的概率是0.8,类别B的概率是0.2。则该系统的熵可以计算为:
$$
H(X) = - (0.8 \log_2 0.8 + 0.2 \log_2 0.2)
$$
计算得出:
$$
H(X) \approx - (0.8 \times (-0.322) + 0.2 \times (-2.322)) = 0.721
$$
如果两个类别的概率都是0.5,则熵为:
$$
H(X) = - (0.5 \log_2 0.5 + 0.5 \log_2 0.5) = 1
$$
这表示当系统中两个事件的概率相等时,熵最大,系统的混乱度也最大。
熵在机器学习中的应用
-
决策树:在构建决策树(如ID3和C4.5)时,熵用于衡量数据集的纯度或不确定性。算法通过选择能最大化信息增益(即熵的减少量)的特征来分割数据,从而逐步减少系统的不确定性。
-
信息增益:信息增益是基于熵的一个概念,用于判断某个特征对于目标变量的不确定性减少的程度。信息增益越大,表示选择该特征进行分裂后,分类的不确定性减少得越多。
-
聚类:在一些聚类算法中,熵可以用于衡量聚类结果的好坏,例如,通过计算聚类中心与每个数据点之间的熵来评估聚类效果。
总结
熵是一个重要的概念,广泛应用于信息论和机器学习中,用于度量系统的混乱度或不确定性。通过理解熵,我们可以更好地选择特征、构建模型,并分析数据的内在结构。
在机器学习中,偏差(Bias) 和 方差(Variance) 是两个衡量模型预测误差的关键概念,它们共同影响着模型的性能。理解偏差和方差对于平衡模型的复杂度、避免过拟合和欠拟合至关重要。
什么是偏差(Bias)?
偏差衡量的是模型预测值与真实值之间的差距。它反映了模型本身的简化程度以及对训练数据的拟合能力。偏差越大,表示模型对数据的拟合程度越差,往往表现为欠拟合。
- 高偏差:模型对数据的拟合能力不足,过于简化,不能很好地捕捉数据中的模式和规律,导致系统性误差较大。比如,使用线性模型拟合非线性数据时,模型可能会出现高偏差,因为线性模型无法捕捉非线性关系。
什么是方差(Variance)?
方差衡量的是模型预测值的波动性,即模型对训练数据的敏感程度。方差越大,表示模型的预测结果对训练数据的变化非常敏感,表现为过拟合。
- 高方差:模型对训练数据过于敏感,即使是数据中的噪声也会被模型捕捉,从而导致模型在训练数据上表现很好,但在新数据上表现较差。这种情况通常出现在模型过于复杂的情况下,比如深度神经网络或高阶多项式回归。
偏差-方差权衡
在模型训练过程中,偏差和方差往往存在一种权衡关系:
-
低偏差的模型通常较复杂,能够很好地拟合训练数据,但可能会产生高方差,导致过拟合。
-
高偏差的模型通常较简单,对训练数据的拟合能力不足,可能会欠拟合,但方差较低,预测结果较为稳定。
高偏差 vs. 高方差
- 高偏差,低方差:
- 模型过于简单,无法捕捉数据的复杂模式(欠拟合)。
- 预测结果较为稳定,但与真实值偏差较大。
- 例子:使用线性回归模型拟合复杂的非线性数据。
- 低偏差,高方差:
- 模型过于复杂,捕捉到了训练数据中的噪声(过拟合)。
- 在训练集上表现很好,但在测试集或新数据上表现较差,预测结果不稳定。
- 例子:使用高阶多项式回归拟合少量数据点,模型可能会对每个点都拟合得很好,但在新数据上表现很差。
直观示例
假设我们有一个目标是在一个二维平面上射箭,箭靶的中心表示我们想要预测的真实值,而每次射箭的着落点表示我们模型的预测结果:
-
高偏差,低方差:箭通常集中在箭靶中心的某个偏移区域(不是靶心),但分布比较紧密。表示模型在系统性地错估真实值,但预测稳定。
-
低偏差,高方差:箭分布在靶心周围,但分布很散乱。表示模型预测结果与真实值差距小,但不稳定。
总结
-
偏差:反映模型对数据模式的简化程度,高偏差表示模型欠拟合。
-
方差:反映模型对数据的敏感性,高方差表示模型过拟合。
-
高偏差,低方差:模型太简单,无法捕捉数据的复杂模式,预测稳定但不准确。
-
低偏差,高方差:模型太复杂,捕捉了数据中的噪声,预测准确但不稳定。
在机器学习中,关键在于找到偏差和方差之间的平衡,选择一个既能有效捕捉数据模式,又不过于复杂导致过拟合的模型。