一 问题引入
假设一个房屋销售数据如下:
由上表可以得出一个图:
图中的蓝色点,表示已经存在的数据。但是若出现一个未统计在内的数据,例如红色点,那么我们如何得知其销售价格呢?
常用的解决办法是利用数学,我们根据给定的数据元素,模拟一个模型来尽量的拟合数据的总体趋势,例如:
拟合模型:蓝色直线;大部分的给定数据在直线的对应位置。面对未知的红色点xi,预测销售价格为yi;
二 常用概念和符号
训练样本:训练样本(Traing Data )Xi = ,模型的输入数据;
训练样本集(Traing Set): X =
输出结果: yi;
模拟的模型函数:y = h(x);
三 学习过程
如图:我们根据给定的训练样本集,利用机器学习的方法 ,拟合出估计函数h(x) ,然后新的数据则可以利用h(x)预测出新的估计值;
四 线性回归:
线性回归假设:特征与结果满足线性关系,特征对结果的影响可以调整其前面的参数;
为训练样本的特征Feature, 假设θ为调整参数,得到估计函数:
(1)。
我们还可以假设 = 1 ,那么估计函数:
(2)
估计函数,其输入可以看作是n+1维的,输出为一维的;
调整,以便是估计函数的输出最接近真实的样本输出值y。我们就需要一个机制去评估
,一般对该评估机制称之为“损失函数(Loss Function)”,来描述
好不好的程度;那么到底选择什么样的损失函数呢?
假设根据特征的预测结果与实际结果有误差,那么预测结果
与真实结果
满足下式:
(3)
其中满足高斯分布 ,即
。
那么,故式子(3)得出
(4)。
由式(4),令为随机变量,那么气服从高斯分布
;
结合式子(4),对于给定的x,估计令所有的
最大;利用最大似然估计方法:
推导:
(5)
为了使得上式最大,那么我们就需要令最小。
故最终得到损失函数:(6);
假设训练样本只有一个特征向量,损失函数为:
,
我们需要:。
利用梯度下降法:
1) Start With Some;
2) Keep Changing To Reduce
until we hopefully wnd up with a minimum;
当函数的极值点为多个时,梯度下降法得到的为局部极小值;
但是当目标函数为凸(Convex)函数时,得到的就是全局最小值,在此线性回归中的目标函数J()为凸函数,不用担心娶不到最小值;
如图:
算法描述:
(7)
注意:
批处理(Batch Gradient Decent):
每次迭代会计算所有样本的梯度之和,若样本数量过大,导致算法执行慢;
Stochastic Gradient Decent:
每次只用一个样本进行迭代,虽然每次迭代不是往最大的方向上走的,但是最终会收敛到最优值;
由上述例子中的损失函数:,利用梯度下降法得出了公式(7);
那么当样本集为m个,每个样本有n个特征分量时:
为第i个样本的第j个特征分量;
故针对损失函数:(8)
用梯度下降法求最优值:
(9)
Logistic Regission:
选用Logistic()函数将输出结果映射为0或1;
函数 ;
结合上述函数:
(10)
满足二值分布:
(11)
同样在利用梯度下降法求最优值时:
(12)