Coursera机器学习(Andrew Ng)笔记:回归与分类问题

机器学习初学者,原本是写来自己看的,写的比较随意。难免有错误,还请大家批评指正!对其中不清楚的地方可以留言,我会及时更正修改

回归与分类问题

单特征量线性回归问题

线性代数基础

矩阵通常表示做 Rm×n
向量Vector是一个 n×1 矩阵,记做 Rn
identity Matrix: 单位矩阵,对角线全为1的矩阵。记做 In×n
对单位矩阵有 A×I=I×A=A
Matrix inverse: 矩阵的逆,如果 A 是一个m×m的方阵,如果它有逆,则有 AA1=A1A=I ,则 A1 成为矩阵A的逆。没有逆的矩阵成为奇异矩阵(singular)或退化矩阵(degenerate)

matlab or Octava 基础

多元线性回归问题

n = 特征量features的个数
x(i) = 第i个训练数据,表示成一个n维的向量
x(i)j = 第i个训练数据的第j个特征值
则预测函数可以表示为

hθ(x)=θ0+θ1x1+θ2x2++θnxn

方便起见,定义 x0=1 ,则
X=x0x1x2xnRn+1            θ=θ0θ1θ2θnRn+1

此时,预测函数可写作
hθ(x)=θTX

代价函数cost function记做
J(θ)===12mi=1m(hθ(x(i))y(i))212mi=1m(θTx(i)y(i))212mi=1m(j=0nθjx(i)jy(i))2

则此时的梯度下降(Gradient descent)算法更新为
Repeat{
θj:=θjαθjJ(θ)=θjα1mmi=1(hθ(x(i))y(i))x(i)j   when n0
}
或者直接写成向量的形式:
θ:=θα1mmi=0(hθ(x(i))yi)x(i)Rn+1
注:当上式可以写成 θ:=f(α)θ=(1g(α))θ 的形式时,通常要求 0<f(α)<1/2 时的 α 是比较合适的,它不会有振荡
特征缩放 Feature Scaling
当特征值的量级相差很大时(如房子尺寸与居室数目),代价函数的轮廓图会变成瘦长的椭圆形,导致梯度下降算法运行十分缓慢(来回振荡)。在这种情况下,一种有效的方法就行进行特征缩放,如将特征量的取值范围控制在 [0,1] ,通常情况下,控制每个参数在大约 [1,1] 的范围内。
xj:=xjμjsj[1,1]

其中, μj 可以理解为平均值或取值范围的中间值, sj 为该特征量的取值范围大小。
学习速率 Learning Rate
一个典型的收敛判别是一次迭代的差值小于 103 ,实际上,选取一个这样的阈值是很困难的。
在选取学习速率 α ,通常选取一个较小的 α ,然后3倍增加,如
…. 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1, ….

特征和多项式回归(Polynomial regression)

正规方程(Normal Equation)

其提供了一种求 θ 的解析方法,相比于使用迭代的方法,可以一次性求解 θ 的最优值。
在最小化 J(θ) 过程中,一种数学方式是使 θjJ(θ)=0
θ=(XTX)1XTy ,其中 Xm×(n+1), ym×1
对于m个训练数据,n个特征的情况

x(i)=x(i)0x(i)1x(i)2x(i)nRn+1        X=(x(1))T(x(2))T(x(3))T(x(m))T        y=y(1)y(2)y(3)y(m)

构造完 Xy 后,就可以使用上面的公式计算 θ 了。
使用这里的 Xy ,也可以用来计算代价函数:
J(θ)=12m(Xθy)T(Xθy)
使用正规方法时,可以不对特征量进行归一化

Gradient DescentNormal Equation
需要选择参数 α 不需要选择参数
需要很多次迭代不需要迭代
适合n比较大的情况需要进行矩阵运算,不适合b比较大的情况

特征量小于1w时,通常可使用正规方法,大于1w时,使用梯度下降方法
-正规方程不可逆-
不可逆的情况很少见,在octava中,有两个函数pinv() 和 inv() 用来求逆。
不可逆的常见两种原因:
1 冗余特征:如房间的平方英尺和平方米。
2 太多特征:例如m

分类问题

逻辑回归算法

逻辑回归算法的输出值满足: 0hθ1 ,实质上是一个分类算法。

hθ(x)=g(θTx),   g(z)=11+ez

g(z)称为S型函数(sigmoid function)或逻辑函数(logistic function),即
hθ(x)=11+eθTx

解释: hθ(x) =对于新输入样本x,y=1的概率。即
hθ(x)=P(y=1 | x;θ)
- 决策边界(decision boundary)-
z=θTx0 时, g(z)0.5 ,即预测函数 hθ(x)0.5 ,对应的预测结果是1。
样本分界线称为决策边界
- 代价函数-
一般的,代价函数可写作:
J(θ)=1mi=1mCost(h(i)θy(i))

对于线性回归问题,有
Cost(hθ(x),y)=12(hθ(x)y)2 ,由于 hθ(x) 是线性的,所以代价函数是一个凸函数。但对于逻辑回归来说, hθ(x) 显然是非线性的,因此要寻找一个不同的代价函数,方方便我们使用相关算法找到最优解。即
Cost(hθ(x),y)={log(hθ(x))  if. y=1log(1hθ(x))  if. y=0

为了避免将代价函数写成两行,新的代价函数可以表示为
Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))

亦即
J(θ)=1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

接下来,我们寻找合适的 θ ,使得 minθJ(θ) ,同样的
Repeat{
θj:=θjαθjJ(θ)=θjα1mmi=1(hθ(x(i))y(i))x(i)j   when n0
}

多类别分类问题

比如有k个类别,对应的分类y值为{1,2,3…k}。把每个y=i看做一个正类别,求出 h(i)θ(x) ,对于每个输入x做分类预测,选择满足 maxih(i)θ(x) 的类别。

高级优化方法

过度拟合问题

解决过度拟合问题的常用方法
-减少特征数目-手动选择保留部分特征或使用模型选择算法

正则化

-线性回归的正则化-
通过在代价函数上加上对参数的惩罚项,在不需要减少参数数量的情况达到正则化的目的。
对线性回归问题,有

J(θ)=12mi=1m(hθ(x(i))y(i))2+λj=1nθ2j

对应的梯度下降计算 θ 的方法为:
Repeat{
θ0:=θ0α1mmi=1(hθ(x(i))y(i))x(i)0
θj:=θjα[(1mmi=1(hθ(x(i))y(i))x(i)j)+λmθj]
     =θj(1αλm)α1mmi=1(hθ(x(i))y(i))x(i)j
}
可以看到,在前面一项中 1αλm<1 ,第二项和不适用正则化的梯度下降算法是相同的。
- 正规方程-
使用正则化之后的正规方程变为
θ=(XTX+λL)1XTy
其中,L是一个 (n+1)×(n+1) 的矩阵,且
L=0111

如果 m<n 的话, XTX 是不可逆的,但加上 λL 后, XTX+λL 是可逆的
- 逻辑回归的正则化-
使用正则化后的逻辑回归的代价函数写作
J(θ)=1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]+λ2mj=1nθ2j

同样的,我们需要分开计算 θ0 和剩余的参数
Repeat{
θ0:=θ0α1mmi=0(hθ(x(i))y(i))x(i)0
θj:=θjα[(1mmi=1(hθ(x(i))y(i))x(i)j+λmθj)]j{1,2n}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值