文章目录
逻辑回归
逻辑回归(Logistic Regression)是一种用于解决分类问题的统计学习方法。逻辑回归实际上是一种分类算法。
逻辑回归的目标是根据输入变量的线性组合,通过一个逻辑函数(也称作sigmoid函数)来预测输出变量的概率。
sigmoid函数的公式为:f(x) = 1 / (1 + e^(-x))
图片来自:激活函数(sigmoid、tanh、ReLU、softmax)
一、逻辑回归公式?
二、逻辑回归是一种线性分类器
如何判断是否为线性分类器?
- 模型形式:线性分类器使用线性模型进行分类。常见的线性分类器包括逻辑回归、线性支持向量机(SVM)等。
- 决策边界:线性分类器的决策边界是一个线性函数或线性方程。决策边界将特征空间划分成两个区域,每个区域对应不同的类别。例如,在二维特征空间中,决策边界可以是一条直线。
- 特征与类别的关系:线性分类器假设输入特征与类别之间存在线性关系。
三、逻辑回归的目标函数
将连乘变为连加【防止溢出】
将最大值问题变为最小值问题
优化算法:梯度下降
梯度下降(Gradient Descent)是一种常用的优化算法,用于求解目标函数的最小值。梯度下降的基本思想是通过迭代地更新参数的方式,沿着目标函数的负梯度方向逐步搜索最优解。
导数决定方向;伽马决定步长;
对逻辑回归使用梯度下降进行优化
补充一个小知识点:
对w的导数:
对b的导数:
梯度下降算法有两种常见的变体:
- 批量梯度下降(Batch Gradient Descent):每次迭代使用整个训练数据集来计算梯度,并更新参数。批量梯度下降的优点是收敛速度相对较快,但它需要在每次迭代时处理整个数据集,当数据集很大时,计算开销较大。
- 随机梯度下降(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的正则