https://www.jianshu.com/p/209d73fcb17b
【逻辑回归函数模型】
1、线性回归连续性不适合离散目标拟合
2、sigmod(S型函数1/(1+e**-z)输出值始终落在[0,1]的特征
【逻辑回归损失函数】
1、预测函数:
g(x) = 1/(1+e**-h(x)),其中z为h(x)=θ(0)+θ(1)*x
2、损失函数:
J(θ) = (1/m)*∑(−y * ln(g(x)) − (1 − y) * ln(1 − g(x))
(1)、J(θ)=(1/2m)*∑(g(x(i))-y(i))**2为凹函数,无法计算全局最优解且方程求解难度大
(2)、固设计为能够巧妙满足场景的损失函数
3、梯度:
▽J(θ)= x′*(g(θ)-y)/m
数学推导:
= (1/m)*[−y * ln(g(θ)) − (1 − y) * ln(1 − g(θ))]′
= (1/m)*[(−y * g(θ)**-1 − (1 − y) * (1 − g(θ))**-1*(-1)]*g′(θ)
= (1/m)*[[g(θ)-y)*[e**h(θ)]/[g(θ)**2]*[(-1)*[g(θ)**2]*(-1)*[e**-h(θ))*x]
= x*(g(θ)-y)/m
指数求导:lnx′=1/x
(e**nx)′=n*e**nx
【判定边界】
其实决策边界就是我们s型函数x=0的一条线,就是θ′X=0这条线:
1、线性边界
θ(0) + θ(1)*x(1) + θ(2)*x(2) = 0
=> x(2) = -(θ(0) + θ(1)*x(1))/theta(2)
线性方程为:y = -(θ(0) + θ(1)*x)/theta(2)
2、高阶边界
θ(0) + θ(1)*(x(1)**(1))*(x(2)**(n-1)) +...+ θ(m)*(x(1)**(n-1))*(x(2)**(1)) = 0
等高线表达
【正则化(约束化)】
1、目标:解决过拟合,约束模型参数较小,函数曲线平缓(导数较小),还可以防止特征丢失
2、正则项:
J(θ)=(1/2m)*[∑(g(x(i))-y(i))**2 + λ∑θ**2]
3、正则项约束数学本质:
(1)、损失函数等高线曲线上θ取值差异很大
(2)、正则项保证取得平方和最小的模型函数参数
【高级算法】
共轭梯度法 BFGS (变尺度法) 和L-BFGS (限制变尺度法)
initial_theta = zeros(n, 1);
options = optimset('GradObj', 'on', 'MaxIter', 400);
[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
【参考文档】
Coursera吴恩达机器学习课程 总结笔记及作业代码——第3周逻辑回归
https://blog.csdn.net/qq_27008079/article/details/70648957?utm_source=blogxgwz0
吴恩达 机器学习笔记七(lecture 7)(正则化Regularization)
https://blog.csdn.net/cheneykl/article/details/78685384