机器学习极大似然函数
时间: 2024-12-26 21:19:27 浏览: 4
### 关于机器学习中的极大似然估计
#### 极大似然估计的概念
在统计学中,极大似然估计是一种用于估计给定分布参数的方法。该方法通过最大化似然函数来找到最有可能产生观测数据的参数值。似然函数的自变量是参数,其衡量的是在某种结果下某种参数的合理性(或这种参数出现的可能性)。似然函数本身的值并不重要,重要的是哪种参数的似然函数最大。一般而言,似然函数最大的参数对模型的解释性最强[^1]。
#### 对数似然函数的应用
直接优化似然函数可能在实际操作中遇到困难,因为这个函数通常是一些概率值的乘积,可能导致数值计算上的问题。因此,会经常对似然函数取对数,得到对数似然函数。由于对数函数是单调递增函数,所以优化对数似然函数得到的结果与优化原始的似然函数相同[^2]。
#### 实现极大似然估计的一个例子——逻辑回归
逻辑回归是一个典型的利用极大似然估计来进行参数求解的例子,主要用于解决二分类问题。以下是基于Python实现简单逻辑回归并使用极大似然估计寻找最优参数的过程:
```python
import numpy as np
from scipy.optimize import minimize
def sigmoid(z):
"""Sigmoid function"""
return 1 / (1 + np.exp(-z))
def log_likelihood(params, X, y):
"""
计算负对数似然函数
:param params: 参数向量
:param X: 特征矩阵
:param y: 标签向量
"""
m = len(y)
predictions = sigmoid(np.dot(X, params))
cost = (-1/m) * (np.dot(y.T, np.log(predictions)) + np.dot((1-y).T, np.log(1-predictions)))
return cost.flatten()
def fit_logistic_regression(X, y):
initial_params = np.zeros(X.shape[1])
result = minimize(fun=log_likelihood,
x0=initial_params,
args=(X, y),
method='BFGS',
options={'disp': True})
return result.x
# 假设这里已经有了训练集的数据 X_train 和标签 y_train
# optimal_theta = fit_logistic_regression(X_train, y_train)
```
此代码片段展示了如何定义sigmoid激活函数以及相应的负对数似然损失函数,并调用了`scipy.optimize.minimize()`去最小化这个损失函数从而获得最佳拟合参数。
阅读全文