我已将股票价格和日期数作为输入数据。
大约有1365个输入数据,但我的模型无法预测 m
(斜率)和 b
的正确值我的回归问题,在TensorFlow中使用渐变下降优化器。
我也尝试为学习率( 0.0000000001, .., 0.1 )
采用不同的值,但没有一个有效。
import matplotlib.pyplot as plt
import pandas as pd
import tensorflow as tf
import numpy as np
batch_size=8
ds=pd.read_csv("FB.csv",sep=",",header=None)
x_data=np.array(ds[0].values)
y_true=ds[1].values
x_data=np.array(x_data)
m=tf.Variable(2.2)
b=tf.Variable(0.5)
x_act=tf.placeholder(tf.float32,[batch_size])
y_act=tf.placeholder(tf.float32,[batch_size])
y_model=m*x_act + b
error=tf.reduce_sum(tf.square(y_act-y_model))
optim=tf.train.GradientDescentOptimizer(learning_rate=0.0000001)
train=optim.minimize(error)
init=tf.global_variables_initializer()
with tf.Session() as sess:
batches=1700
for i in range(batches):
rand_ind = np.random.randint(len(x_data),size=batch_size)
sess.run(init)
feed = {x_act:x_data[rand_ind],y_act:y_true[rand_ind]}
sess.run(train,feed_dict=feed)
model_m,model_b=sess.run([m,b])
model_m
model_b
y_ans=(model_m*len(x_data)+1) + model_b
y_ans
答案 0 :(得分:1)
在交易,量化建模和机器学习方面花费了超过20年的经验,增加了对外汇交易的决策支持,在你开始投入时间和精力之前我很少能帮助你理解方向错误。上面报告的线性回归模型存在下面详述的缺陷,如果转向少数更复杂的自回归模型(ARMA / ARIMA),甚至LSTM工具,那么不将被挽救将不保存一个天真的,跳过的或低估的系统识别(因为在技术控制论中称它为常见)。简单地说,任何模型设置,试图灌输一些模型行为和抽象来自非TA行为模式切换,主要是盲目和单一的处理复杂(几乎超混沌,在扩展的Lyapunov意义上)多智能体生态系统
因为你的假设是完全错误的。
没有这样的股票,表现为线性模型,而你的指示严格相反,
你问你的线性模型 yPREDICTED = m.X + b
找到 m
和 b
的 m
这样惩罚错误的总和就很小了。
找到了这样的 b
和 m
,其惩罚错误总和最小,学习者,你有预先 - 选择使用,已完成它的角色。
对,这意味着,您可以在数学上确定,没有其他b
和m.X + b
,这将产生较少的惩罚错误总和,计算如下:根据您选择的方法,在观察到的示例的可用(及其相同的使用部分)上。
如果你忘记意识到这种具有讽刺意味的东西,你就会开始盲目地相信,线性模型会统治现实世界(我们在第二次见证时确实没有)。
所以 YGWYT - Y ou G et W 帽子 Y ou的Ť强>雨
如果您训练线性模型m.X + b
,,除了最不正确的线性模型m.X + b
之外别无他法,您不会感到惊讶。
这意味着,所有预测必须系统地错误,只需坚持最不正确的线性模型m.X + b
Q.E.D。