Logistic Regression

logistics regression步骤:

step1:


Logistic Regression_第1张图片
图1-hx.png
Logistic Regression_第2张图片
图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


Logistic Regression_第3张图片
gradient_descent.png

同步更新theta

step4:
optimization algorithm
使用高级算法来计算出theta,得出minJ(θ)
需要传入的数据有:


options = optimset(‘GradObj’, ‘on’, ‘MaxIter’, ‘100’); 
initialTheta = zeros(2,1); 
optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);

返回计算得出的theta。

  • Regularized Linear Regression

然而有时候因为theta太多,会导致过拟合。
这时候就需要使用正则化,来防止过拟合。

Logistic Regression_第5张图片
regularization.png

就是在线性回归的cost function中添加theta^2*lambda的和
在这里新引入了lambda参数
如果lambda非常大,那么就会减小theta对函数的影响,
theta的值就越小,最终只剩theta(0),而hx就变成了一条直线,完全的欠拟合。

Logistic Regression_第6张图片
gradient_descent.png

现在我们需要计算出theta的值,参照线性回归的gradient descent
我们把theta(0)单独提取出来,因为他不去改变特质值(x(0)=1)。


Logistic Regression_第7张图片
reg_gradient_descent.png

gradient descent在加入正则化之后的公式。

我们再对公式稍加整理得出:


theta_j_reg.png
  • Normal Equation
    如果我们想要用正规方程求出theta
    先回顾下在线性回归中的normal equation:


    Logistic Regression_第8张图片
    normal_equation.png

在正则化中,我们对方程做出修改:


Logistic Regression_第9张图片
normal_equation_reg.png

L是一个(n+1)*(n+1)的矩阵,其中第一行第一列的为0,也就是对theta(0)不做影响。
这样既可求出theta。

你可能感兴趣的:(Logistic Regression)