技术贴:如何用「线性回归」和「梯度下降」预测比特币价格区块链

链天下官微 2018-08-18 23:51
分享到:
导读

怎么才能找到最佳值?有一种称为GradientDescent(梯度下降)的技术可以帮助我们找到最佳值。

技术贴:如何用「线性回归」和「梯度下降」预测比特币价格

能否窥探到比特币价格走势的一些情况?

在本文中,我将展示梯度下降如何与线性回归相结合,整个过程我将采用比特币价格及其在Google上的搜索次数作为数据来源。

我们假设谷歌搜索比特币的次数与比特币的价格之间存在某种关系。如果我们绘制一个图表,其中x轴是搜索次数、y是价格,我们可以注意到:这中间存在着线性模式,搜索次数越多,比特币价格呈现上涨的结果。

技术贴:如何用「线性回归」和「梯度下降」预测比特币价格

y轴代表美元价格,x代表搜索数量

本文重点在于展示梯度下降的工作原理,并不能准确预测比特币价格涨跌。

我们先绘制一条遵循线性模式的线,为了准确预测,线与数据点接近。

首先,用等式绘制出线条:y = mx b,其中m是线斜率,b是线与y轴相交的交点位置。

我们怎么才能找到最佳值?有一种称为Gradient Descent(梯度下降)的技术可以帮助我们找到最佳值。

什么是梯度下降?

梯度下降是一种优化技术、有助于减少误差函数产生误差的技术,此处的误差函数是误差平方的总和。

技术贴:如何用「线性回归」和「梯度下降」预测比特币价格

可以设想一下,整条线是用m和b的猜测值绘制的,其中的误差是点到线的距离平方之和,再除以点数。

如何减少误差?

我们可以随机猜测m和b的值,并检查下错误是否减少,但这种方法并不理智。

换一种方法,我们先求出部分导数的话就可以知道误差值的移动速度,因此我们可以巧妙地更新这些值,想象一个球向下移动,底部是我们想要到达的地方,导数值可以告诉我们如何更新数据以便更接近底部。

技术贴:如何用「线性回归」和「梯度下降」预测比特币价格

在本例中,y轴是误差,x轴是m或b,而不是图中的w 

我们要做什么:

1、 提取比特币价格和谷歌搜索数量;

2、 将价格与搜索日期相匹配;

3、 设置超参数:初始值、学习率,m和b的初始值;

4、 计算误差,检查我们的算法;

5、 计算梯度:求m的导数和b的偏导数;

6、 乘以学习率,并更新与当前m和b的差值。

接着将所有数据放在一起,绘制所得的最佳直线:

技术贴:如何用「线性回归」和「梯度下降」预测比特币价格

使用m和b的最佳值,我们可以画出接近最多点的线,由于梯度下降,我们也能够照需要的方向更新数值并降低错误率,从而生成适合我们想要的线。

Github完整推演过程:

https://github.com/marciok/bitcoin-prices-and-gradient-descent/blob/master/Predicting Bitcoin prices with Google search .ipynb

误差 价格 梯度 比特币 绘制
分享到:

1.TMT观察网遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2.TMT观察网的原创文章,请转载时务必注明文章作者和"来源:TMT观察网",不尊重原创的行为TMT观察网或将追究责任;
3.作者投稿可能会经TMT观察网编辑修改或补充。


专题报道