监督学习:(又叫回归问题),给出数据集,来判断某个数据是某种情况的概率。
回归是指出我们的目标是预测一个连续的输出值。
分类问题是预测一个离散值的输出。
无监督学习:数据集内的数据含义不明确,会将数据分为不同的聚类(聚类算法)。
可用于:1.一个客户集,自动划分客户群。2.facebook好友分组。3.垃圾邮件分类。
线性回归:
线性回归函数: hθ(x) = θ0 + θ1x 数字是下标
代价函数(误差平方代价函数)
对于大多数回归问题都适用,优化目标是将J(θ)最小化。
梯度下降算法:
梯度下降算可以用来最小化函数J(不仅仅是回归函数)。
思路:
1.先给θ初始化为0
2.不停地一点点调整θ,来找到J(θ)的最小值或局部最小值
梯度下降算法公式:
:= 是赋值 减号后面是求偏导,点切线(斜率)
在局部最低时,偏导为0
单个特征的迭代公式:
α是学习率,用来控制以多大的幅度进行更新数据
在有多个特征时的迭代公式:
第i行training example (x^(i),y^(i))
最后一个xj(i) i是下标,也就是第几组, x,y分别是对应的数据, j是当前这一行的第J个数
hθ(x) = θ^T *x θ^T的意思是转置矩阵 x是每一个特征变量
特征缩放:如果特征值差距过大或过小,可能会花费很长的时间,所以特征值/特征最大值,控制在-1~1之间
特征值范围控制在-3~3和-1/3~1/3之间,则可以接受。
均值归一化:
公式:(xn−μn)/Sn μn为平均值 Sn为最大值−最小值,这样的话,为了使他们具有为0的特征值。
如何判断梯度下降算法是否正常工作:
画一个θ与迭代步数的图,y通常是Min(J(θ)),x为迭代步数
如果出现w型波浪或者y随x的增大而增大,则最常见的解决方法是缩小α。
通常α的取值:
....... 0.0001,0.003,0.01,0.03,0.1,0.3,1,3..... 差距是3倍,每次画曲线观察,
如果是多项式回归:hθ(x) = θ0 + θ1x1 + θ2x2 + θ3x3 数字都是下标
x1 = y, x2 = y^2 ,x3 = y^3。也就是说,看成线性回归来做,这时,特征(均值)归一化就很重要了。