逻辑回归是一种有监督的分类模型,常用于二分类。
线性模型的公式是y(x)=θ0+θ1x1+θ2x2+...+θnxny(x)=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_ny(x)=θ0+θ1x1+θ2x2+...+θnxn,及y(x)=θTxy(x)=\theta^Txy(x)=θTx。将线性模型带入sigmod函数就是用于二分类的逻辑回归:y(x)=11+e−θTxy(x)=\frac{1}{1+e^{-\theta^T x}}y(x)=1+e−θTx1,这里y(x)y(x)y(x)的取值范围是(0,1),根据某个阈值可以将y(x)y(x)y(x)分为0和1。这里的y(x)y(x)y(x)是模型根据输入特征xxx的预测值,和数据的真实值进行比较可以判断模型预测的准确性。
逻辑回归函数的θ\thetaθ需要根据训练数据进行求解,θ\thetaθ的取值可以决定模型对数据的拟合效果,所以以θ\thetaθ为参数的模型在训练集上的预测准确率越大越好。
因此使用损失函数这个评估指标来衡量以θ\thetaθ为参数的模型拟合训练集时造成的信息损失的大小,用这个指标来衡量θ\thetaθ的优劣。
损失函数大小的含义:损失函数越小,模型在训练集上的拟合效果越好。逻辑回归的损失函数的公式如下:
J(θ)=−∑i=1m(yi∗log(yθ(xi))+(1−yi)∗log(1−yθ(xi))) J(\theta)=-\sum_{i=1}^{m}(y_i*log(y_{\theta}(x_i))+(1-y_i)*log(1-y_{\theta}(x_i))) J(θ)=−i=1∑m(yi∗log(yθ(xi))+(1−yi)∗log(1−yθ(xi)))
推导过程:
现在有mmm个样本的数据集,其中一个样本iii由特征向量xix_ixi和真实标签yiy_iyi组成。和一个由参数θ\thetaθ组成的逻辑回归模型
对样本iii的预测有如下结果:
-
样本iii被预测为1的概率:P1=P(yi^=1∣xi,θ)=yθ(xi)P_1=P(\hat{y_i}=1|x_i,\theta)=y_\theta(x_i)P1=P(yi^=1∣xi,θ)=yθ(xi)
-
样本iii被预测为0的概率:P0=P(yi^=0∣xi,θ)=1−yθ(xi)P_0=P(\hat{y_i}=0|x_i,\theta)=1-y_\theta(x_i)P0=P(yi^=0∣xi,θ)=1−yθ(xi)
当P1P_1P1的值是1时,代表样本被预测为1
当P0P_0P0的值时1时,代表样本被预测为1
如果假设样本的真实标签是1则
- P1=1,P0=0P_1=1,P_0=0P1=1,P0=0预测真确
- P1=0,P0=1P_1=0,P_0=1P1=0,P0=1预测错误
将这两种情况整合到一个同时可以代表P1,P0P_1,P_0P1,P0式子中:
P(yi^∣xi,θ)=P1yi∗P01−yi
P(\hat{y_i}|x_i,\theta)=P_1^{y_i}*P_0^{1-y_i}
P(yi^∣xi,θ)=P1yi∗P01−yi
- 如果样本的真实标签是1,P(yi^∣xi,θ)=P1=1P(\hat{y_i}|x_i,\theta)=P_1=1P(yi^∣xi,θ)=P1=1
- 如果样本的真实标签是0,P(yi^∣xi,θ)=P0=1P(\hat{y_i}|x_i,\theta)=P_0=1P(yi^∣xi,θ)=P0=1
如果样本的标签值和预测值一样就代表模型的拟合效果好,此时P(yi^∣xi,θ)=1P(\hat{y_i}|x_i,\theta)=1P(yi^∣xi,θ)=1但P(yi^∣xi,θ)P(\hat{y_i}|x_i,\theta)P(yi^∣xi,θ)是对单个样本iii而言的,对于一个有mmm个样本的训练集而言有mmm个P(yi^∣xi,θ)P(\hat{y_i}|x_i,\theta)P(yi^∣xi,θ)
P=∏i=1mP(yi^∣xi,θ)=∏i=1m(P1yi∗P01−yi)=∏i=1m(yθ(xi)yi∗(1−yθ(xi))1−yi)
P=\prod_{i=1}^{m}P(\hat{y_i}|x_i,\theta)\\
= \prod_{i=1}^{m}(P_1^{y_i}*P_0^{1-y_i})\\
=\prod_{i=1}^{m}(y_\theta(x_i)^{y_i}*(1-y_\theta(x_i))^{1-y_i})
P=i=1∏mP(yi^∣xi,θ)=i=1∏m(P1yi∗P01−yi)=i=1∏m(yθ(xi)yi∗(1−yθ(xi))1−yi)
两边同时取对数
logP=log∏i=1m(yθ(xi)yi∗(1−yθ(xi))1−yi)=∑i=1mlog(yθ(xi)yi∗(1−yθ(xi))1−yi)=∑i=1m(logyθ(xi)yi+log(1−yθ(xi))1−yi)=∑i=1m(yilog(yθ(xi))+(1−yi)log(1−yθ(xi)))
logP=log\prod_{i=1}^{m}(y_\theta(x_i)^{y_i}*(1-y_\theta(x_i))^{1-y_i})\\
=\sum_{i=1}^{m}log(y_\theta(x_i)^{y_i}*(1-y_\theta(x_i))^{1-y_i})\\
=\sum_{i=1}^{m}(logy_\theta(x_i)^{y_i}+log(1-y_\theta(x_i))^{1-y_i})\\
=\sum_{i=1}^{m}(y_ilog(y_\theta(x_i))+(1-y_i)log(1-y_\theta(x_i)))
logP=logi=1∏m(yθ(xi)yi∗(1−yθ(xi))1−yi)=i=1∑mlog(yθ(xi)yi∗(1−yθ(xi))1−yi)=i=1∑m(logyθ(xi)yi+log(1−yθ(xi))1−yi)=i=1∑m(yilog(yθ(xi))+(1−yi)log(1−yθ(xi)))
得到的就是交叉熵函数,对logPlogPlogP取负,得到最后的损失函数
J(θ)=−∑i=1m(yi∗log(yθ(xi))+(1−yi)∗log(1−yθ(xi)))
J(\theta)=-\sum_{i=1}^{m}(y_i*log(y_{\theta}(x_i))+(1-y_i)*log(1-y_{\theta}(x_i)))
J(θ)=−i=1∑m(yi∗log(yθ(xi))+(1−yi)∗log(1−yθ(xi)))
这里需要注意损失函数是求解最优θ\thetaθ的函数,所以这里的自变量是θ\thetaθ
以上就是求解逻辑回归中损失函数的过程,然后需要根据损失函数求解最优的θ\thetaθ,可以使用梯度下降的方法。求解的θ\thetaθ虽然在训练集中的拟合效果非常的好,但可能会出现过拟合的现象,可以使用L1、L2正则化,降低过拟合的影响。
逻辑回归是一种用于二分类的模型,通过线性模型结合sigmoid函数实现。损失函数J(θ)用于评估模型在训练集上的拟合效果,其公式为J(θ)=−i=1∑m(yi∗log(yθ(xi))+(1−yi)∗log(1−yθ(xi))),损失越小,拟合越好。求解最优θ通常采用梯度下降,并可通过正则化防止过拟合。
1027

被折叠的 条评论
为什么被折叠?



