L(β) = -log(∏(Φ(β^T x_i)^{y_i}(1-Φ(β^T x_i))^{1-y_i}))和其对 β的一阶导函数编写出python代码
时间: 2024-03-25 22:35:54 浏览: 15
好的,下面是代码实现:
```python
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
def log_likelihood(beta, x, y):
"""
计算logistic回归的对数似然函数
:param beta: 回归系数
:param x: 特征矩阵
:param y: 标签
:return: 对数似然函数值
"""
ll = np.sum(y*np.log(sigmoid(np.dot(x, beta))) + (1-y)*np.log(1-sigmoid(np.dot(x, beta))))
return -ll
def log_likelihood_gradient(beta, x, y):
"""
计算logistic回归对数似然函数的梯度
:param beta: 回归系数
:param x: 特征矩阵
:param y: 标签
:return: 对数似然函数的梯度
"""
grad = np.dot(x.T, sigmoid(np.dot(x, beta))-y)
return grad
```
其中,sigmoid函数用于将实数映射到(0,1)之间,log_likelihood函数计算对数似然函数值,log_likelihood_gradient函数计算对数似然函数的梯度。需要传入的参数包括回归系数beta、特征矩阵x和标签y。