logistics regression步骤:
step1:
图1-hx.png 图2-g(z).png
我们可以从图2中得出:
当z>=0,g(z)>=0.5,h(x)=1;
当z<0,g(z)<0.5,h(x)=0;
hx=sigmoid(z)
step2:
cost function
图3-J(theta).png
计算代价函数
step3:
gradient descent
gradient_descent.png
同步更新theta
step4:
optimization algorithm
使用高级算法来计算出theta,得出minJ(θ)
需要传入的数据有:
QQ20180308-143158@2x.png
options = optimset(‘GradObj’, ‘on’, ‘MaxIter’, ‘100’);
initialTheta = zeros(2,1);
optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);
返回计算得出的theta。
- Regularized Linear Regression
然而有时候因为theta太多,会导致过拟合。
这时候就需要使用正则化,来防止过拟合。
就是在线性回归的cost function中添加theta^2*lambda的和
在这里新引入了lambda参数
如果lambda非常大,那么就会减小theta对函数的影响,
theta的值就越小,最终只剩theta(0),而hx就变成了一条直线,完全的欠拟合。
现在我们需要计算出theta的值,参照线性回归的gradient descent
我们把theta(0)单独提取出来,因为他不去改变特质值(x(0)=1)。
reg_gradient_descent.png
gradient descent在加入正则化之后的公式。
我们再对公式稍加整理得出:
theta_j_reg.png
-
Normal Equation
如果我们想要用正规方程求出theta
先回顾下在线性回归中的normal equation:
normal_equation.png
在正则化中,我们对方程做出修改:
normal_equation_reg.png
L是一个(n+1)*(n+1)的矩阵,其中第一行第一列的为0,也就是对theta(0)不做影响。
这样既可求出theta。
网友评论