斯坦福公开课《机器学习》笔记1——监督学习、线性回归

一、监督学习和无监督学习

1.监督学习(supervised learning)

监督学习,利用一些带标签的数据集对模型进行训练,获取最佳参数。 

1)回归问题

主要用于连续型的输出,例如预测房价等,模型有线性回归,非线性回归等。

问题示例:预测房屋价格,房屋面积与房屋价格的数据

2)分类问题

主要用于离散型的输出,例如对产品的正反面评价,如逻辑回归等。

问题示例:有肿瘤数据预测肿瘤是良性还是恶性

分类问题又有单特征分类和多特征分类

2.无监督学习(unsupervised learning)

无监督学习,利用一些无标签的样本对模型直接进行自训练。

1)聚类问题

有一个数据集,判定该数据集包含几个不同的聚类。

二、线性回归

1.单变量线性回归(Linear regression with one variable)

1)假设函数(hypothesis function)

用x来表示输入变量(特征量),用y来表示输出变量(目标变量),即预测结果。则(x,y)来表示一个训练样本。

我们用函数h表示从x到y的函数映射,即为假设函数。

例如,可以预测y关于x的线性函数hθ(x)=θ0+θ1*x。

这个模型被称为线性回归(linear regression)模型,由于只有一个变量,又称作单变量线性回归。

2)代价函数(cost function)

用来衡量假设函数相对数据集的准确性。

1>均方误差(Mean squared error)

在线性回归中,最常用的是均方误差,具体就是预测值和实际值差的平方求和。


其中m为数据集中样本个数,1/2m只是方便计算。

3)目标(Goal)


寻找一条最佳拟合直线,其实就是最小化J(θ0,θ1)。

4)梯度下降(Gradient Descent)

为了最小化代价函数,可以使用梯度下降(Gradient Descent)这种算法,算法如下:


注意,两参数要同时更新。

α表示学习速率。如果α 太小的话,梯度下降到全局最低点会很慢。如果α太大,它会导致迈出很大一步,无法收敛,甚至发散。 
微分项的作用:让梯度下降朝着正确方向进行。并且,每做一次梯度下降,新的导数会变小一点点,θ更新的幅度就会变小

梯度下降也可以收敛到局部最低点。

2.多元线性回归及多元线性回归的梯度下降(Multivariate Linear regression)

hθ(x)=θ0+θ1*x1+θ2*x2+θ3*x3+θ4*x4+θ5*x5

n表示特征变量个数,其中n=5。

x0=1,则假设函数可以表示为θ转置乘以X。


损失函数,梯度下降如下:


损失函数化简如下:



3.梯度下降中的使用技巧

1)特征缩放(feature skill)

当有多个特征时,应确保这些特征处在一个相近的范围。

使循环数目更少,梯度下降更快收敛。


经验看来,特征的取值约束。如果一个特征在-1<=x<=1的范围,另一个最多在-3<=x<=3或-1/3<=x<=1/3是可以接受的。

方法:

1> 除以特征最大值

x/范围

2> 特征均一化(mean normaization)

(x-x均值)/范围

2)确定学习速率α

判断梯度下降是否已经收敛:

1> 自动收敛算法,J(θ)减小的值是否小于一个阈值ε

2> J(θ)相对于迭代次数的曲线图

注:

α过大会导致曲线上升或是波动不收敛。

可绘制J(θ)相对于迭代次数的曲线图,尝试α值为0.001,0.003,0.01,0.03,0.1,0.3,1……,直到找到一个值,不能再增大啦。

3)选择特征的方法

4.多项式回归(Polynomial Regression)

多项式回归是一种非线性回归,他包含多种特征,如果特征值域相差较大,特征的归一化就尤其重要了。



选择特征时,可以根据训练样本的整体趋势或反复测试选择最佳模型。


5. 正规方程法(Normal Equation)

1)求解θ最优值


一步求解θ最优值

1> 数学微分求偏导

2> 正规方程法


这种方法不需要特征归一化。

2)梯度下降与正规方程法优缺点:

梯度下降:

优点:适用于特征数量较多的机器学习。

缺点:需要选择合适的学习率α而且需要多次迭代运算。

正规方程:

优点:不需要选择合适的学习率α和迭代运算。

缺点:当特征数量较多时,运算量较大,不适用。


当特征数目较小时,使用正规方程法。如n为100,1000,10000以内时。(因为正规方程法空间复杂有n*n,时间复杂有n^3)

当特征数目较大时,使用梯度下降法。如n为10^6时。

3)不可逆

不可逆情况还是很少见的。

但是出现时如何处理?


1> 存在冗余特征

2> 删除一些特征或使用正规化

4)向量矩阵计算实现


1>

hθ(x)=θTX

θT=[θ0,θ1,θ2,θ3,θ4,θ5……] (行向量)

X=[X0;X1;X2;X3;X4;X5……] (列向量)

2>

θ=θ-αδ

δ=1/m∑(hθ(x(i))-y(i))x(i)=1/m∑(θTX(i)-y(i))x(i)



猜你喜欢

转载自blog.csdn.net/badmushroom/article/details/79759496