(3)Logistic Regression and Regularization

来源:互联网 发布:java循环 编辑:程序博客网 时间:2024/04/29 23:02

Machine Learning系列,转载自

http://blog.csdn.net/xuexiang0704/article/details/8903907


以下内容源自coursera上的machine learning,同时参考了Rachel-Zhang的博客(http://blog.csdn.net/abcjennifer)


前面两节讲的主要是线性回归的(单特征和多特征):最主要的步骤就是得出cost function,求出令cost function最小的的参数theta。至于如何求呢?有两种方法,一种是梯度下降,一种是normal equation。






%%%%%%%%%%%%%%%%%%首先是第一部分Logistic Regression%%%%%%%%%%%%%%%


下面讲的是,对于分类问题怎么做?

(一)先探究分类问题可以用线性回归的方法还是其他方法呢?







那为什么logistic regression的Hypothesis就是0-1的范围呢?







搞清楚了原因,我们就需要更深了解下logistic regression的Hypothesis了

(二)Hypothesis Representation






如果是分两类的话,需要在X维空间中画出一挑线或者一个平面(X由training data的特征数决定)

我们这里以只有两个特征为例。来熟悉熟悉这样一条线,定义为decision boundary

(三)decision boundary(这里有两种情况,一种是线性的,一种是非线性的)

1.线性的decision boundary



2.非线性的decision boundary






在linear regression中有cost function。在logistic regression中的cost function是怎么样呢?

(四).cost function




前面四小部分就是坐logistic regression的准备工作,

归结下前四部分的总体思想:

1.分类问题用logistic regression,而不用线性回归;

2. 为什么用logistic regression呢。因为其中用到了sigmoid函数;

3. 为了将类别分开,定义一个decision boundary。他就是将类别分开的线(可以是直线也可以是曲线);

4. 如同线性回归,为了验证算法是否好,定义cost function。为了得到好的结果,我们需要最小化cost function。








OK,这就是四部分的大致思想,下面介绍后面的,也是logistic regression最重要的部分。

(五)Simplified Cost Function and Gradient Descent

这部分是logistic regression 的核心,可能比较乱,耐心看看噢^_^









%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

(PS:这里补充一下,有些可能会对的化简存在疑惑,这里推导下面的过程:)(会的人这部分可以跳过了)

Q:

  


A:


视频中的结果是不是少了一个1/m?退到结果是有的吧?!


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
















以上对于logistic regression就介绍完了,有没有一点点感觉呢?

下面的两部分就是:

1.不用logistic regression还可以用什么呢?

2.前面讲的都是分两类的,多类的怎么办呢?

相对应的题目就是:

(六)Advanced Optimization:

(七)Multiclass Classification


这两部分,我觉得http://blog.csdn.net/abcjennifer/article/details/7716281看看也就差不多了,毕竟不是重点。我就不截图了,因为有现成的可以用的代码,大家可以参考。











%%%%%%%%%%%%%%%下面的第二大部分:Regularization%%%%%%%%%%%%%%%%%%%%%

是针对线性回归logistic regression 过拟合的情况的解释和解决办法。




(一)过拟合问题








上面给了两种解决过拟合的办法,我们下面主要讲第二种,regularization

那应该如何修改linear regression和logistic regression的算法才能避免overfitting的问题呢?

在这之前,我们需要先修改cost function,因为不论是linear regression还是logistic regression都是基于cost function的。

(二)cost function

有没有发现cost function后面的加的,是从下标1开始的,实际上,从theta(0)还是theta(1)相加没有根本上的差别!





上面讲了cost function的修改,那么具体到算法的步骤是怎么样的,求导以后会怎么样呢?

先讲linear regression的

(三)Regularized Linear Regression

因为在做linear regression有两种方法,一为梯度下降;二为normal equation

1.用梯度下降时,怎么让

 

linear

 

 regression变成 

 

Regularized Linear Regression


2.用normal equation时,怎么让

 

linear

 

 regression变成 

 

Regularized Linear Regression

(这里的证明我也证不来)





讲完将linear regression 变成 Regularized Linear Regression

就要讲

Logistic 

 

regression 变成 

 

Regularized Logistic Regression

(四)Regularized Logistic Regression

同样因为,logistic regression时有两种方法。一为梯度下降;二为advanced algorithm


1.

用梯度下降时,怎么让

 

logistic

 

 regression变成 

 

Regularized logistic Regression


2.用advanced algorithm时,怎么让

 

logistic

 

 regression变成 

 

Regularized logistic Regression