吴恩达机器学习笔记(七)

原创博客,转载请注明出处!

第七章 Logistic回归

y取值个数有限的分类,我们用y=1或0表示其两种分类

如果用线性回归方法直线拟合数据,有时是幸运的,得到了比较好的拟合

但,在X轴一个比较大的位置添加个训练样本,假设函数反而变差,

另外,如果输出值大于1或者小于0,又将如何处理?

因此,不得不引入新的假设函数来处理logistic回归

3、决策界限

找到一个界限来分类

4、代价函数

由于假设函数的改变,如果仍然用线性回归的代价函数,将会出现非凸函数,非凸函数有很多局部最优值

于是有新的代价函数

logistic回归算法的Cost(h(x),y)={-log(h(x))     ,y=1
                                                        -log(1-h(x))    ,y=0 }
                        简化:Cost(h(x),y)=-y log(h(x)) - (1-y)log(1-h(x))

梯度下降法求代价函数最小

6、高级优化

共轭梯度法BFGS和L-BFGS算法:
有一个智能内循环()线搜索算法,它可以自动尝试不同的学习速率α并自动选择一个好的学习率α
Octave里的fminunc函数(无约束最小化函数)

Octave里的调用方法,(这就是加强版的梯度下降方法)

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

fminunc()是Octave里无约束最小化函数,调用这个函数时,需要传入一个存有配置信息的变量options。上面的代码中,我们的设置项中’GradObj’, ‘on’,表示设置梯度目标参数为打开状态(on),这也意味着你现在确实要给这个算法提供一个梯度。’MaxIter’, ‘100’代表设置最大迭代次数为100次。

initialTheta是我们给出的一个θ的猜测初始值。

然后我们调用fminunc这个函数,传入三个参数,其中第一个参数@costFunction这里的@符号代表指向之前我们定义的costFunction函数的指针。后面两个参数分别是我们定义的thetatheta初始值和配置信息options。

当我们调用这个fminunc函数时,它会自动的从众多高级优化算法中挑选一个来使用(可以把它当做一个可以自动选择合适的学习速率α的梯度下降算法)。

最终函数会有三个返回值,分别是满足最小化代价函数J(θ)的θ值optTheta,costFunction中定义的jVal的值functionVal,以及标记是否已经收敛的状态值exitFlag,如果已收敛,标记为1,否则为0

costFunction函数代码如下

7、一对多

当逻辑结果有多个时,即一对多

可以采用一对余

三个分类器输入x,概率最高的那个即使预测值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值