分类问题(classification problems)
y=0 or 1
回归分析/逻辑分析(logistic regression):
目标:令h(x)位于[0,1]之间
逻辑函数/S型函数:
图像:
x=0,y=0.5;x=正无穷,y=1;x=负无穷,y=0;
概率角度:P(y=0|x;θ)+P(y=1|x;θ)=1,P(y=1|x;θ)表示在给定x数值时y=1的概率。
由图可知,要使得h>0(y=1),就要z>0,所以是theta定义了决策边界,而训练集用于拟合参数theta
一对多问题(One-vs-all)
若有个分类,则将问题分成n个1/0简单分类问题。每个简单分类问题中,1代表n类中的一类,0代表剩余的n-1类。
计算出每个简单分类问题y=1的概率,最终概率即为n个概率中该分类概率最大的。
高级优化算法(Advanced Optimization)
如:BFGS(变尺度法)、L-BFGS(限制变尺度法)、Conjugate gradient(共轭梯度法)
优点
- 不用手动选择α,内部有智能的线性搜索算法(line search),可以自动尝试各种α
- 速度比梯度下降法快
- 缺点只有复杂
在Matlab使用高级优化算法
1 | function [jVal, gradient] = (theta) |
1 | options = optimset('GradObj', 'on', 'MaxIter', 100); %储存option的数据结构,'GradObj', 'on'设置梯度目标参数为on打开,'MaxIter', 100最大迭代次数。 |
运行结果中exitFlag=1表示已经收敛,此时functionVal的值接近0
θ必须是二维及以上列向量
过度拟合(overfitting)
图一表示未拟合(underfitting)或者HIgh bios(高偏差);图三表示表示过度拟合或者高方差(hegh variance)。
定义:在有很多数据的情况下,曲线可能很好的拟合已有曲线。但是无法泛化(generate)新数据。
解决:1.减少选取的变量数。人工选取更重要的变量或者用模型选择算法自动选择变量。
2.正规化(regularization)
保存所有变量,不过减少数量级或者θ(j)的大小
正规化
通过’惩罚’某些参数,可以使得曲线更加接近合适的曲线。为了使正规化更好的运行,需要选择合适的λ参数。
同样,正规化改变了J(θ),也要改变梯度下降和正规方程算法中θ的递归式。在正规方程算法中,只要λ>0,则矩阵可逆。
正文结束
一点吐槽:用了chrome和印象笔记快两年了,今天才发现印象笔记剪藏chrome插件有多好用,coursera上的文本基本都能一键收藏啊,还不用每次为了做笔记辛苦弄公式传图片。
大概以后就可以少写很多笔记了吧(各种偷懒)。