吴恩达机器学习笔记三_Logistic Regression

Logistic Function

Logistic Function 针对某一类问题往往会比线性回归更加有效。如下图:

假如使用线性回归处理的话,针对离散值,如上图最右边一点,会导致线性函数向X轴正向倾斜,预测结果出现较大的改动。这个就不是一类很好的分类函数了,因为它对离散值敏感。

通过分析,我们可以知道它是一个二元问题。针对二元问题可以使用特殊的模型,如下:

这个Logistic Function或另称Sigmoid Function,与之前所说的线性回归方程最大的不同就在:(0<=h_ heta(X)<=1)。从曲线中也可以看出,它对之前提到的离散值不敏感,不容易出现过拟合的情况。

下面是Logistic Function的函数:

[g(z)=frac{1}{1+e^{-z}} ]

Decision Boundary

这里记录Decision Boundary,即决策边界,算是一个新知识点。

个人的理解是,Decision Boundary存在于在分类问题中,即它用于划分类与类之间的分界线;而线性回归问题更偏向预测分析,这应该是两类问题最大的不同点。如下:

可以看到,( heta)的值决定了边界的位置。对于非线性的分类问题,我们还可以通过增加( heta)的维度来拟合。

从上图也可以看出,( heta)的维度越高,它能拟合的形状越细腻。但也容易猜想到,它的维度越高,对计算量和数据量的要求也更高,同时也更容易出现过拟合的问题。

Cost Function

Logistic Regression问题中,对分类函数参数( heta)的选择也是通过Cost Function最小化来实现的。但如果直接采用线性回归里的形式,就会出现多个局部最优点的问题:

为了避免出现这种情况,这里的Cost Function采用以下形式:

大概是因为代价函数是对数形式的,所以Logistics Regression又被翻译为对率回归,当然,它本质还是一个二元分类问题。

这里简要记录以下Logistics Function和Cost Function:

[J( heta) = frac{1}{m}sum_{i=1}^mCost(h_ heta(x^{(i)}), y^{(i)}) ]

[Cost(h_ heta(x), y) = -ylog(h_ heta(x)) - (1-y)log(1-h_ heta(x)) , y = (0, 1) ]

[h_ heta(x) = frac{1}{1+e^{- heta T x}} ]

其中第一个函数就是代价函数最小化所使用的梯度下降函数,形式上和线性回归问题大概类似。

Advanced Optimization

这里NG列举了其他方法来实现代价函数的最小化。他的建议是,尽可能地使用各工具包中的优化方法,而不是自己去写。最近也在学数值分析,确实一个好的优化方法在实现原来目标的情况下,可以减少大量运算时间和内存。

引用参考

Coursera机器学习笔记(五) - Logistic Regression

原文地址:https://www.cnblogs.com/ChanWunsam/p/9743445.html