逻辑回归中,假设函数hypothesis hθ(x)hθ(x)为:
hθ(x)=g(θTx)=11+e−θTx=g(θTx+b)hθ(x)=g(θTx)=11+e−θTx=g(θTx+b)
当hθ(x)=g(θTx)≥0.5hθ(x)=g(θTx)≥0.5, 即θTx≥0θTx≥0, 此时意味着预估y=1y=1;
当hθ(x)=g(θTx)<0.5hθ(x)=g(θTx)<0.5, 即θTx<0θTx<0, 此时意味着预估y=0y=0.
所以我们认为θTx=0θTx=0是一个决策边界,当它大于0或小于0时,逻辑回归模型分别预测不同的分类结果。
假设函数hypothesis就是y=1的概率:
{P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1−hθ(x){P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1−hθ(x)
损失函数与梯度下降
损失函数loss function与代价函数cost function的区别与联系
<https://blog.csdn.net/uestc_c2_403/article/details/77387780>
1.损失函数(Loss
function)是定义在单个训练样本上的,也就是就算一个样本的误差,比如我们想要分类,就是预测的类别和实际类别的区别,是一个样本的哦,用L表示
2.代价函数(Cost
function)是定义在整个训练集上面的,也就是所有样本的误差的总和的平均,也就是损失函数的总和的平均,有没有这个平均其实不会影响最后的参数的求解结果。
常见的损失函数 <https://blog.csdn.net/bitcarmanlee/article/details/51165444>
机器学习或者统计机器学习常见的损失函数有如下四种:
1. 0-1损失函数(0-1 loss function)
2. 平方损失函数(quadratic loss function)
3. 绝对值损失函数(absolute loss function)
4. 对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likehood loss function)
构造代价函数求出参数的值
构造代价函数
根据上面的内容,我们可以得到逻辑回归的对数似然损失函数cost function:
cost(hθ(x),y)={−log(hθ(x))−log(1−hθ(x))if y=1if y=0cost(hθ(x),y)={−log(hθ(x))
if y=1−log(1−hθ(x))if y=0
稍微解释下这个损失函数,或者说解释下对数似然损失函数:
当y=1时,假定这个样本为正类。如果此时hθ(x)=1hθ(x)=1
,则单对这个样本而言的cost=0,表示这个样本的预测完全准确。那如果所有样本都预测准确,总的cost=0
但是如果此时预测的概率hθ(x)=0hθ(x)=0,那么cost→∞。直观解释的话,由于此时样本为一个正样本,但是预测的结果P(y=1|x;θ)=0,
也就是说预测 y=1的概率为0,那么此时就要对损失函数加一个很大的惩罚项。
当y=0时,推理过程跟上述完全一致,不再累赘。
将以上两个表达式合并为一个,则单个样本的损失函数可以描述为:
cost(hθ(x),y)=−yilog(hθ(x))−(1−yi)log(1−hθ(x))cost(hθ(x),y)=−yilog(hθ(x))−(1−yi
)log(1−hθ(x))
因为yiyi只有两种取值情况,1或0,分别令y=1或y=0,即可得到原来的分段表示式。
全体样本的代价函数可以表示为:
cost(hθ(x),y)=∑i=1m−yilog(hθ(x))−(1−yi)log(1−hθ(x))cost(hθ(x),y)=∑i=1m−yilog(hθ
(x))−(1−yi)log(1−hθ(x))这就是逻辑回归最终的代价函数表达式。
代价函数确定了,接下来的问题就是机械计算的工作了。常见的方法是用梯度下降法。
上述代价函数可以用极大似然估计求得:
由
{P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1−hθ(x){P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1−hθ(x)有
P(yi|xi)={hθ(xi)1−hθ(xi)yi=1yi=0P(yi|xi)={hθ(xi)yi=11−hθ(xi)yi=0
将两个式子整合到一起
P(yi|xi)=(hθ(xi))yi(1−hθ(xi))1−yiP(yi|xi)=(hθ(xi))yi(1−hθ(xi))1−yi
联合似然函数为
L=∏i=1mP(yi|xi)=∏i=1m(hθ(xi))yi(1−hθ(xi))1−yiL=∏i=1mP(yi|xi)=∏i=1m(hθ(xi))yi(1−
hθ(xi))1−yi
取对数
l=∑i=1m(yilog(hθ(xi))+(1−yi)log(1−hθ(xi)))l=∑i=1m(yilog(hθ(xi))+(1−yi)log(1−hθ(
xi)))
最大化似然函数LL等价于最小化−L−L,等价于最小化−l−l,−l−l可作为代价函数。
求出参数的值
统计学习方法都是由模型,策略,和算法构成的,即统计学习方法由三要素构成,可以简单表示为:
方法=模型+策略+算法
https://blog.csdn.net/lookqlp/article/details/51161640
<https://blog.csdn.net/lookqlp/article/details/51161640>
一般回归问题的步骤是:
1. 寻找预测函数(h函数,hypothesis)
2. 构造损失函数(J函数)
3. 使损失函数最小,获得回归系数θ
而第三步中常见的算法有:
1. 梯度下降
2. 牛顿迭代算法
3. 拟牛顿迭代算法(BFGS算法和L-BFGS算法)
其中随机梯度下降和L-BFGS在spark mllib中已经实现,梯度下降是最简单和容易理解的。
逻辑回归梯度下降法详解 <https://blog.csdn.net/lookqlp/article/details/51161640>
J(θ)=−1ml(θ)=−1mlogL(θ)=−1m∑i=1m(yilog(hθ(x))+(1−yi)log(1−hθ(x)))J(θ)=−1ml(θ)=−
1mlogL(θ)=−1m∑i=1m(yilog(hθ(x))+(1−yi)log(1−hθ(x)))
同样是取极小值,我们把如上的J(θ)作为逻辑回归的代价函数。Andrew
Ng的课程中,上式乘了一个系数1/m,我怀疑就是为了和线性回归的损失函数保持一致吧。
梯度下降θ的更新过程,走梯度方向的反方向:
注:上面计算过程的第三步用到了sigmoid函数g(z)g(z)的性质:g′(z)=g(z)(1−g(z))g′(z)=g(z)(1−g(z)).
因此更新过程可以写成:
θj:=θj−α1m∑i=1m(hθ(xi)−yi)xjiθj:=θj−α1m∑i=1m(hθ(xi)−yi)xij
那迭代多少次停止呢,当cost变化小于一定值时停止。
参考:https://blog.csdn.net/han_xiaoyang/article/details/49123419
<https://blog.csdn.net/han_xiaoyang/article/details/49123419>
热门工具 换一换