本文建议阅读时间: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.多维情况处理,我会试图用爬虫方式挖取上海今年的实际数据,用一个更高维度模型去分析数据,这将会变得更加有意思。
领取专属 10元无门槛券
私享最新 技术干货