主页 > imtoken下载手机版 > 看看我是如何使用“线性回归”和“梯度下降”来预测比特币价格的
看看我是如何使用“线性回归”和“梯度下降”来预测比特币价格的
作者|marciok
来源 | GitHub
你能瞥见比特币的一些价格走势吗?
在本文中,我将展示如何将梯度下降与线性回归相结合,使用比特币价格及其谷歌搜索作为数据源。
我们假设谷歌搜索比特币的次数与比特币价格之间存在某种关系。 如果我们用 x 轴上的搜索次数和 y 轴上的价格绘制图表,我们会注意到存在一个线性模式,即搜索越多比特币工作原理及计算过程,比特币的价格就越高。
y 轴代表美元价格,x 代表搜索次数
本文的重点是展示梯度下降的工作原理,并不能准确预测比特币价格的涨跌。
我们首先绘制一条遵循线性模式的线,为了准确预测,该线靠近数据点。
首先,使用等式绘制直线:y = mx + b,其中 m 是直线的斜率,b 是直线与 y 轴的交点。
我们怎样才能找到最优值? 有一种称为梯度下降的技术可以帮助我们找到最优值。
什么是梯度下降?
梯度下降是一种优化技术,有助于减少误差函数产生的误差,其中误差函数是误差平方和。
可以想象,整条线是使用 m 和 b 的猜测值绘制的,其中误差是点到线的距离的平方和除以点数。
如何减少错误?
我们可以随机猜测 m 和 b 的值并检查错误是否减少,但这种方法并不明智。
换句话说,如果我们先找到一些导数,我们就可以知道错误值移动的速度有多快,因此我们可以巧妙地更新这些值 。 想象一个球向下移动。 底部是我们要去的地方。 导数值可以告诉我们如何更新数据,使其更接近底部。
在这种情况下,y 轴是误差,x 轴是 m 或 b,而不是图中的 w
我们会做什么:
1.提取比特币价格和谷歌搜索量;
2. 将价格与搜索日期相匹配;
3.设置超参数:初始值比特币工作原理及计算过程,学习率,m和b的初始值;
4.计算误差,检查我们的算法;
5、计算梯度:求m的导数和b的偏导数;
6. 乘以学习率并更新与当前 m 和 b 的差值。
然后将所有数据放在一起并绘制生成的最佳线:
使用 m 和 b 的最佳值,我们可以画出最接近点的线,并且由于梯度下降,我们还可以更新所需方向的值并降低错误率,从而生成一条适合我们需要的线。
有兴趣的读者可以去github查找完整的推导过程:
%20Bitcoin%20prices%20with%20Google%20search%20.ipynb
往期热点文章