二元逻辑回归的原理、公式和代码示例

释放双眼,带上耳机,听听看~!
二元逻辑回归是一种常用的监督学习算法,基于线性回归模型和sigmoid函数对输出进行转换以获得概率估计。本文详细讲解了算法的原理、模型表达式和代价函数,并提供了Python代码示例实现二元逻辑回归。

当我们面对一个二元分类问题时,二元逻辑回归是一种常用的监督学习算法。它基于线性回归模型,并使用逻辑函数(也称为 sigmoid 函数)对输出进行转换,以获得概率估计。以下是对二元逻辑回归的详细讲解,包括算法原理、公式和代码示例。

算法原理

给定一个训练集,其中包含输入特征向量 x 和相应的二元标签 y (0 或 1),我们的目标是学习一个适当的模型,该模型能够根据输入特征预测出标签的概率。

二元逻辑回归使用以下假设和模型表达式:

  • 假设:给定输入特征 x,对应标签 y 的条件概率服从伯努利分布。
  • 模型表达式:hθ(x)=11+e−θTxh_theta(x)=frac{1}{1+e^{-theta^Tx}}

其中,hθ(x)h_theta(x) 是模型的预测输出,表示预测输入 x 为正例的概率;θtheta 是模型的参数向量。

为了学习参数 θtheta,我们需要定义一个代价函数(损失函数),并通过最小化代价函数来优化参数。二元逻辑回归中常用的代价函数是对数损失函数(logistic loss):

J(θ)=−1m∑mi=1[y(i)log⁡(hθ(x(i)))+(1−yi)log⁡(1−hθ(x(i)))]J(theta) = -frac{1}{m}textstylesum_{m}^{i=1}[y^{(i)}log(h_theta(x^{(i)}))+(1-y^i)log(1-h_theta(x^{(i)}))]

其中,m 是训练样本的数量,x(i)x^{(i)}y(i)y^{(i)} 分别表示第 i 个训练样本的输入特征和标签。

为了最小化代价函数,可以使用梯度下降法或其他优化算法来更新参数 θtheta

代码示例

下面是一个使用 Python 和 NumPy 实现二元逻辑回归的简单示例:

import numpy as np

def sigmoid(z):
    return 1 / (1 + np.exp(-z))

def logistic_regression(X, y, num_iterations, learning_rate):
    m, n = X.shape
    theta = np.zeros(n)

    for i in range(num_iterations):
        z = np.dot(X, theta)
        h = sigmoid(z)
        gradient = np.dot(X.T, (h - y)) / m
        theta -= learning_rate * gradient

    return theta

# 示例数据
X = np.array([[1, 3], [1, 4], [1, 5], [1, 2]])
y = np.array([1, 1, 0, 0])

# 添加偏置项
X = np.concatenate((np.ones((X.shape[0], 1)), X), axis=1)

# 训练模型
num_iterations = 1000
learning_rate = 0.1
theta = logistic_regression(X,y, num_iterations, learning_rate)

# 使用训练好的参数进行预测
def predict(X, theta):
X = np.concatenate((np.ones((X.shape[0], 1)), X), axis=1)
predictions = sigmoid(np.dot(X, theta))
return (predictions >= 0.5).astype(int)

# 预测新样本
new_data = np.array([[1, 6], [1, 1]])
predictions = predict(new_data, theta)
print(predictions)

在上面的代码示例中,首先定义了一个 sigmoid 函数来进行激活函数的计算。然后,使用 logistic_regression 函数进行模型的训练,其中需要指定训练数据 X 和标签 y,以及迭代次数和学习率。训练过程中使用梯度下降法更新参数。最后,使用 predict 函数对新样本进行预测,并输出预测结果。

请注意,这只是一个简单的示例,实际中可能需要更多的数据预处理、模型评估和调参等步骤来提高模型的性能和鲁棒性。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

AI代理和自主AI的发展和应用

2023-12-22 17:11:14

AI教程

中国电信在2023MWC上海展示科技创新与赋能产业数字化转型的成果

2023-12-22 17:20:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索