返回

最大似然估计:用概率诠释线性回归的目标优化

人工智能

线性回归:从最大似然估计的角度理解优化目标

线性回归是机器学习和统计建模中广受欢迎的基本算法。它旨在建立一个预测因变量(y)与一组自变量(x)之间的关系。然而,其优化目标——最小二乘法——常常让初学者一头雾水。

本文将从一个独特的角度——最大似然估计 ——来阐释线性回归的优化目标。我们将看到,这种概率性的视角如何为理解这个关键概念提供清晰的见解。

什么是最大似然估计?

最大似然估计 (MLE) 是一种统计方法,用于根据观测数据推断模型参数。其基本思路是找到一组参数,使得观察到的数据在这些参数下发生的概率最大。

线性回归中的最大似然估计

对于线性回归模型,MLE 优化目标为:

MLE = argmax (β0, β1, ..., βn) ∏(i=1 to N) P(y_i | x_i, β)

其中,β0、β1、...、βn 是模型参数,y_i 是给定自变量 x_i 的观测因变量,P(y_i | x_i, β) 是在模型参数 β 下观测到 y_i 的概率。

似然函数与高斯分布

在大多数情况下,线性回归假设误差项(y_i 和 β0 + β1x1i + ... + βnxni 之间的差值)服从正态分布,也称为高斯分布。在这种情况下,似然函数变为:

P(y_i | x_i, β) = (1 / √(2πσ^2)) * exp[-(y_i - β0 - β1x1i - ... - βnxni)^2 / (2σ^2)]

其中,σ^2 是误差项的方差。

最小化平方和的等价性

通过对上述似然函数取对数并忽略常数项,我们得到:

log(MLE) = - (1 / (2σ^2)) ∑(i=1 to N) (y_i - β0 - β1x1i - ... - βnxni)^2 + C

其中,C 是一个常数。

令 log(MLE) 最大化等价于最小化平方和:

SSE = ∑(i=1 to N) (y_i - β0 - β1x1i - ... - βnxni)^2

这正是我们熟悉的线性回归最小二乘法优化目标。

直观解释

最大似然估计从概率的角度解释了线性回归的优化目标。通过最大化观测数据的似然函数,我们本质上是在寻找一组模型参数,使得在这些参数下观察到数据的概率最大。

最小化平方和目标等价于找到一条拟合线,使得所有数据点到该线的距离之和最小。这与我们直观上希望拟合线尽可能接近所有数据点是一致的。

代码示例

为了更好地理解,这里有一个使用 Python 的线性回归最大似然估计的代码示例:

import numpy as np
import scipy.optimize

def likelihood(params, x, y):
  beta0, beta1, beta2 = params
  y_pred = beta0 + beta1 * x[:, 0] + beta2 * x[:, 1]
  return np.prod(1 / np.sqrt(2 * np.pi * np.var(y)) * np.exp(-(y_pred - y)**2 / (2 * np.var(y))))

def minimize_nll(x, y):
  params0 = [0.0, 0.0, 0.0]
  result = scipy.optimize.minimize(lambda params: -likelihood(params, x, y), params0)
  return result.x

x = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]])
y = np.array([2, 4, 6, 8, 10])

params = minimize_nll(x, y)
print(params)

结论

通过最大似然估计的视角,我们获得了对线性回归优化目标的更深刻理解。我们了解到,最小化平方和的目标等同于最大化观测数据的似然函数,从而找到最能解释数据的模型参数。这种概率性的解释为理解和应用线性回归提供了有价值的见解。

常见问题解答

  1. 什么是最小二乘法?

最小二乘法是一种优化目标,旨在找到一组模型参数,使得所有数据点到拟合线的距离之和最小。

  1. 最大似然估计与最小二乘法的区别是什么?

最大似然估计从概率的角度最大化观测数据的似然函数,而最小二乘法最小化数据点到拟合线的距离之和。

  1. 为什么线性回归中使用高斯分布?

高斯分布是误差项的一个常见假设,因为它符合许多实际应用的经验观察。

  1. 最大似然估计在机器学习中的其他应用是什么?

最大似然估计广泛应用于各种机器学习算法,包括逻辑回归、朴素贝叶斯和隐马尔可夫模型。

  1. 如何使用 Python 进行线性回归的最大似然估计?

可以使用 SciPy 等库来优化线性回归的负对数似然函数,从而找到最大似然估计参数。