-
机器学习笔记002 | 怎么预测和以及怎么准确预测
止一之路 / 2017-09-06 08:27 发布
1
对于监督学习,根据目标是否连续,分为回归(regression)问题和分类(classfication)问题。
如果我们想要预测的目标是连续的结果,那么学习的问题就是回归问题;如果我们想要预测的目标是少数不连续的结果,那么学习的问题就是分类问题。
这里首先说说回归问题。
给出一系列的数据,来预测房子的价格,就是要解决回归问题。
房价图片
我们根据一系列房价的数据,然后得到回归曲线,就是上图中的蓝线。
然后再根据回归曲线,来预测房子的价格。例如这里,预测房子的价格大概在333.33百万左右:
100平米房子价格预测
那么怎样才能得到这样一个回归曲线呢?
对于房子的面积和价格之间的关系,我们可以列一个表格:
房产面积与房价之间的关系
xi代表着房子的面积,看做输入变量,yi代表着房子的价格,看做输出结果。
( xi , yi )就是一组训练数据,例如这里,( x1 , y1 ) 就是( 80 , 200 ) 。
m是训练数据的数量,这里一共是16行,也就是16组训练数据。
那么( xi , yi ) ; i = 1 , … , m 就是训练数据集。
机器学习,就是根据这样的训练数据集,学习并得到预测方法h(x),然后用h(x)来对目标进行预测。
整个过程如下:
机器学习的过程
对于上面的房价预测模型,回归方程可能如下:
hθ(x) = θ0 + θ1x
其中θ0和θ1是其中的参数。
2
对于预测的结果,存在一个准确性的问题。
怎么才能让预测的结果尽可能准确呢?
还是用上面预测房子为例,如果根据每一个房子的面积预测得到的价格 h(xi) ,和房子的真实价格yi的差异最小,那这样的预测模型不是相对准确么。
放在回归方程里面,就是每一个h(xi)和yi之间的差异( h(xi) - yi )加起来最小。
为了让这个值尽可能小,这里使用预测结果和真实结果之间的差的平方:( h(xi) - yi )2,其中hθ(xi) = θ0 + θ1xi。
然后,我们把每一个预测结果和真实结果之间差的平方加起来,就得到了这样的一个公式:
差的平方之和
然后将这个等式除以m(样本数量,就是上面16组数据中的16),得到平均结果:
等式中还多除以了2,是为了方便以后计算,起到抵消作用。
J( θ0 , θ1 )就是这里的代价函数(Cost Function),又被称为平方误差函数。
对于大部分线性回归问题来说,平方误差函数是比较常用的代价函数。
我们说代价函数J( θ0 , θ1 ) 结果的越小,那么回归模型hθ(x)的预测就越准确。
我们举个栗子,为了方便计算,这里将θ0 设置为0,那么预测函数就是:h(xi) = θ1xi
例如你看下图:
θ1在不同取值下的结果
这是θ1在不同取值1、0.5、0下得到的结果,其中绿线就是预测误差。
我们很直观地就可以看到,θ1 = 1 的时候,误差最小,而θ1 = 0 的时候,误差最大。
我们在代价函数对应的结果:
代价函数曲线
同样在 θ1 = 1 的时候,函数的值是最小的。
那么怎么找到θ0和θ1这样的参数,使得J( θ1 , θ2 ) 的结果最小,使得回归函数尽可能准确呢?
那是算法需要做的事情了。
文章提前发布在**:止一之路