Week 3
3.1 logistic回归模型
分类问题
为什么分类不用回归来做?

超过0和1的部分没法解释;受个别数据的影响较大。
logistic函数

决定边界
对于logistic回归:
y取到1或0

决定边界即为=0.5的值
Cost function
为了求theta的值我们定义cost function,当函数取得最小值我们就得到了最优的参数值。logistic回归的cost function不能跟线性回归的一样定义,因为这样定义的cost function不是convex的,很容易取到local optima。
定义的cost function如下:

简化的cost function
可以把前面的cost function化简到一个式子里:

它的向量化表示为:

梯度下降应用
梯度下降算法:

问题:这里的微分怎么求???

参数更新的向量表示:

进阶优化算法
为了优化theta,除了梯度下降算法以外,还有其他的算法是"Conjugate gradient", "BFGS", 和 "L-BFGS" 。它们通常更复杂,也更快。
编写代码的思路是,先完成下面这个函数

再利用自带的 "fminunc()" optimization algorithm 和 "optimset()" function求解

3.2 多分类
多分类问题
当分类问题中类别超过两个时,分类问题可以这样描述:

我们需要分成三类时,就做三次logistic分类:

hθ(x)对于每个i是:当输入为x,取到的y为第i类的概率
x的类别为取到最大概率的y
3.3 解决过拟合问题
过拟合
下面三个图分别代表了underfiting,just right,overfitting:

通常解决方法有下面两种:

cost function

我们希望取到左图的theta而不是右图,想法是把后两个参数的系数变得很大
最后的cost function形式如下:

正则化线性回归
正则方法既可以用于线性回归,也可以用于logistic回归。
正则化后的线性回归cost function变成了:

再用梯度下降算法求它的最小值:

而用normal equation来求值,我们得到:

正则化logistic回归
同线性回归一样,对logistic回归进行正则化以后梯度下降算法变成了:

在matlab中,我们用进阶的优化算法来代替梯度下降算法:

网友评论