【机器学习笔记02---逻辑回归(优化、参数和超参数评估)】


逻辑回归

逻辑回归(Logistic Regression)是一种用于解决分类问题的统计学习方法。逻辑回归实际上是一种分类算法。

逻辑回归的目标是根据输入变量的线性组合,通过一个逻辑函数(也称作sigmoid函数)来预测输出变量的概率。
sigmoid函数的公式为:f(x) = 1 / (1 + e^(-x))在这里插入图片描述
图片来自:激活函数(sigmoid、tanh、ReLU、softmax)


一、逻辑回归公式?

在这里插入图片描述

二、逻辑回归是一种线性分类器

如何判断是否为线性分类器?

  1. 模型形式:线性分类器使用线性模型进行分类。常见的线性分类器包括逻辑回归、线性支持向量机(SVM)等。
  2. 决策边界:线性分类器的决策边界是一个线性函数或线性方程。决策边界将特征空间划分成两个区域,每个区域对应不同的类别。例如,在二维特征空间中,决策边界可以是一条直线。
  3. 特征与类别的关系:线性分类器假设输入特征与类别之间存在线性关系。

三、逻辑回归的目标函数

在这里插入图片描述
将连乘变为连加【防止溢出】
在这里插入图片描述
将最大值问题变为最小值问题
在这里插入图片描述


优化算法:梯度下降

梯度下降(Gradient Descent)是一种常用的优化算法,用于求解目标函数的最小值。梯度下降的基本思想是通过迭代地更新参数的方式,沿着目标函数的负梯度方向逐步搜索最优解。
在这里插入图片描述
导数决定方向;伽马决定步长;

对逻辑回归使用梯度下降进行优化

补充一个小知识点:
在这里插入图片描述

对w的导数:
在这里插入图片描述

对b的导数:
在这里插入图片描述

梯度下降算法有两种常见的变体:

  1. 批量梯度下降(Batch Gradient Descent):每次迭代使用整个训练数据集来计算梯度,并更新参数。批量梯度下降的优点是收敛速度相对较快,但它需要在每次迭代时处理整个数据集,当数据集很大时,计算开销较大。
  2. 随机梯度下降(Stochastic Gradient Descent):每次迭代仅使用一个样本(或一小批样本)来计算梯度并更新参数。与批量梯度下降相比,随机梯度下降计算开销较小,但也容易受到噪声的干扰。为了平衡收敛速度和稳定性,通常会引入一些技巧,例如学习率调整、随机样本的顺序洗牌等。
class LogisticRegressionMedel(torch.nn.Module):
    def __init__(self):
        super(LogisticRegressionMedel,self).__init__()
        self.linear = torch.nn.Linear(1,1)
    def forward(self,x):
        y_pred = F.sigmoid(self.linear(x))
        return y_pred
model = LogisticRegressionMedel()
#损失
criterion = torch.nn.BCELoss(size_average = False)
optimizer = torch.optim.SGD(model.parameters(),lr=0.01)
for epoch in range(100):
    y_pred = model(x_data)
    loss = criterion(y_pred,y_data)
    print(epoch,loss.item())
    
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

正则化

正则化(Regularization)是一种用于减小模型过拟合(overfitting)风险的技术。

常见的正则化方法:

L1正则化(L1 Regularization):也称为Lasso正则化,它通过在目标函数中添加模型参数的L1范数作为正则化项,限制参数的绝对值之和。L1正则化有助于将某些参数压缩为零,从而实现特征选择和稀疏性。
L2正则化(L2 Regularization):也称为Ridge正则化,它通过在目标函数中添加模型参数的L2范数的平方作为正则化项,限制参数的平方和。L2正则化对参数进行平滑,使其尽量接近零,但不为零,因此可以减少模型的过拟合风险。
在这里插入图片描述

超参数评估方法:交叉验证

将数据集划分为两个互斥的部分,一部分用作训练集,另一部分用作验证集。

clf =  GridSearchCV(lr, param_grid= param, cv = 5, scoring = make_scorer(f1_score))
clf.fit(X_train, y_train)
print(clf.best_params_)
print(clf.best_score_)

{‘C’: 0.1, ‘penalty’: ‘l1’}
0.7635193054068152

例如👆,就是把训练数据分成5份,每块进行一次valid,最后求平均值;
在这里插入图片描述
用同样的方法,计算每个拉姆达的情况,得到最好的情况作为超参数

参数评估方法:MLE/MAP

(1)MLE:最大似然估计

MLE基于观测数据的似然函数,寻找能够使观测数据出现的概率最大化的参数值。它假设数据是由一个已知的概率分布生成的,并通过最大化似然函数来估计参数。
在这里插入图片描述

以逻辑回归为例:

(2)MAP:最大后验估计

MAP结合了观测数据和先验知识,通过最大化后验概率来估计参数。MAP考虑了先验概率,使用贝叶斯定理将观测数据与先验知识相结合,得到后验概率最大的参数估计。
先验:t=0时,即无数据时的概率
后验:随着训练数据变多,可以不断调整认识
在这里插入图片描述
p(D)是一个常数,可以忽略不计
MAP相当于MLE+pior

对于不同的分布方法,它的先验概率项是不同的:
(1)高斯分布

在这里插入图片描述
log(根号2pai&)就是一个常数了,可以忽略
在这里插入图片描述
这时相当于加了一个L2的正则项
(2)拉普拉斯分布
请添加图片描述

请添加图片描述
这时相当于加了一个L1的正则项

结论:
(1)当样本无穷大时,MLE=MAP;
(2)增加先验就相当于加了正则:其中,高斯的先验分布相当于L2正则,拉普拉斯分布相当于L1的正则

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值