水晶球APP 高手云集的股票社区
下载、打开
X

推荐关注更多

柴孝伟

买进就值,越来越值,时享价...


邢星

邢 星 党员,国...


石建军

笔名:石天方。中国第一代投...


揭幕者

名博


洪榕

原上海大智慧执行总裁


小黎飞刀

黎仕禹,名博


启明

私募基金经理,职业投资人


李大霄

前券商首席经济学家


桂浩明

申万证券研究所首席分析师


宋清辉

著名经济学家宋清辉官方账号...


banner

banner

机器学习笔记002 | 怎么预测和以及怎么准确预测

止一之路   / 2017-09-06 08:27 发布


1

对于监督学习,根据目标是否连续,分为回归(regression)问题和分类(classfication)问题。

如果我们想要预测的目标是连续的结果,那么学习的问题就是回归问题;如果我们想要预测的目标是少数不连续的结果,那么学习的问题就是分类问题。

这里首先说说回归问题。

给出一系列的数据,来预测房子的价格,就是要解决回归问题。

房价图片

房价图片

我们根据一系列房价的数据,然后得到回归曲线,就是上图中的蓝线。

然后再根据回归曲线,来预测房子的价格。例如这里,预测房子的价格大概在333.33百万左右:

100平米房子价格预测

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在不同取值1、0.5、0下得到的结果,其中绿线就是预测误差。

我们很直观地就可以看到,θ1 = 1 的时候,误差最小,而θ1 = 0 的时候,误差最大。

我们在代价函数对应的结果:

代价函数曲线

代价函数曲线

同样在 θ1 = 1 的时候,函数的值是最小的。

那么怎么找到θ0和θ1这样的参数,使得J( θ1 , θ2 ) 的结果最小,使得回归函数尽可能准确呢?

那是算法需要做的事情了。

文章提前发布在**:止一之路