如何利用TensorFlow实现线性回归(一)

本文建议阅读时间:10分钟

引入:

如果你知道房价和面积,那你很容易画出一条线描绘他们之间的关系,这很简单。现在我们评估房价时候加上地段,那就是在一个三维坐标里的关系。事实上,导致房价变动的因素太多了,这么一个高维度的计算,我们可以通过训练机器完成。

线性回归问题:

线性回归问题是tensorflow中最简单的模型,如果我们有x1~xn个变量,他们之间满足:

y =x1 * a1 + x2 * a2 + .. + xn * an

也就是 x1~xn 的一阶导数为常数,我们可以说这些变量之间存在线性关系。

在开篇引入的例子中,我们姑且用直线去预测房价,尽管这样并不准确,通过分析这个例子我们能很好的介绍完线性回归模型,这个是我主要的目的。在上面问题里,实际上就是已知 x1 - xn,想找到这样的 a1 - an 使得我们h(x)与实际的 y 最符合,为了评估这个最符合,我们用 J(θ) 评判,也叫代价函数:

J(θ)是实际值与函数值之差的平方,值越小代表他们越接近

我们先考虑房价与面积的关系,我按照 2万/平米造了出200条数据

200条仿真数据,大致是2万/平米,模型 y = 3.2 * x + 20

上述的数据可以用一元一次方程表示,我们要做的就是求出两个参数θ1、θ2:

通过matplotlib模块,我们可以仿真出 J(θ1,θ2) 的图像

接下来就是训练

经过10000次的训练结果基本和当初设定的参数无异。

这是一个很简单问题,有几个地方值得人去研究:

1.J(θ1,θ2)的仿真图, 这个花了我将近百分之九十的时间,如果是更高维度呢?

2.多维情况处理,我会试图用爬虫方式挖取上海今年的实际数据,用一个更高维度模型去分析数据,这将会变得更加有意思。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180511G04HFO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券