线性回归(sklearn)拟合数据形状误差

杰西·克莱默

我有一个关于 sklearn 的线性回归模型的问题..

我想使用多个特征拟合线性回归。现在我的 X 是一个 np.matrix,我的 Y 是一个 np.array。

我的 X 看起来像这样(打印的)X.shape -> (21, 3):

[[ 8.68269590e-03 -2.83226292e-03  1.91826382e-01]
 [ 5.85903392e-03 -5.68809929e-03  2.21862758e-01]
 [ 2.90920454e-03 -1.24549359e-03  1.71619892e-01]
 [ 7.71491867e-04  1.74288704e-03  2.70315213e-03]
 [-2.44583484e-03 -4.73496469e-05 -1.25966777e-01]
 [-4.16023564e-03 -2.09644321e-03 -4.91722645e-02]
 [-3.22298365e-03 -3.55366669e-03 -1.67993225e-02]
 [-2.79712919e-03 -1.94070947e-03 -1.70873725e-01]
 [-2.76366703e-03 -4.98257755e-04 -2.52336769e-01]
 [-3.65153430e-03 -3.89128554e-03 -2.03762730e-01]
 [-6.07841812e-03 -8.89479214e-03 -1.54953118e-01]
 [-7.55809682e-03 -1.13395249e-02 -2.29260955e-01]
 [-7.46617379e-03 -5.70467322e-03 -2.01416145e-01]
 [-7.82348527e-03  3.58732358e-04 -1.47799157e-01]
 [-8.68110057e-03 -3.98060036e-05 -1.17156978e-01]
 [-9.13439934e-03  3.21795372e-03 -4.17922611e-02]
 [-6.64659597e-03  5.79326182e-03 -7.08715900e-02]
 [-3.28840696e-03  2.57177260e-03 -1.34971930e-01]
 [-1.38119572e-04  2.25318751e-03 -6.03902835e-02]
 [ 4.53278359e-03  2.40625868e-03  1.38175436e-01]
 [ 5.95225669e-03  1.00742943e-03  1.75614285e-01]]

我的 Y 看起来像这样(打印) Y.shape -> (21, 1):

[[ 0.00472189]
 [ 0.00134158]
 [-0.01183452]
 [-0.00712723]
 [ 0.01007362]
 [ 0.00373918]
 [-0.00832614]
 [-0.02623798]
 [-0.00381873]
 [ 0.0068726 ]
 [-0.01438412]
 [ 0.00898785]
 [ 0.0100893 ]
 [-0.00321919]
 [ 0.00827624]
 [ 0.00486361]
 [-0.01065365]
 [ 0.00741757]
 [ 0.01037663]
 [ 0.00230243]
 [-0.00169308]]

但是,sklearn 抛出以下异常:

ValueError: shapes (1,1) and (3,1) not aligned: 1 (dim 1) != 3 (dim 0)

我用谷歌搜索并尝试了多种方法,但没有成功。我来自不同的编程背景,所以 python 对我来说有点陌生。

你们能指出我解决这个错误的正确方向吗?

编辑:我的代码:

training_chart = self.prices[-self.TRAINING_DATA_SIZE:]
x = []
y = []
n = 12
for i, price in enumerate(training_chart[n:]):
    history = training_chart[i:i+n]
    price_change = (price - history[-1]) / history[-1]

    sma_12 = indicators.SMA(history, 12)
    sma_8 = indicators.SMA(history, 8)
    sma_6 = indicators.SMA(history, 6)
    sma_4 = indicators.SMA(history, 4)
    rsi = indicators.RSI(history, 12)[-1]

    long_term_ma_index = (sma_8 - sma_12) / sma_12
    short_term_ma_index = (sma_4 - sma_6) / sma_6

    y.append(price_change)
    x.append(long_term_ma_index)
    x.append(short_term_ma_index)
    x.append(rsi / 100 - 0.5)

x = np.matrix(x).reshape(-1, 3)
y = np.array(y).reshape(-1, 1)

print x
print x.shape
print y
print y.shape 

model = LinearRegression()
model.fit(x, y)

编辑 2:完整回溯:

Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/Users/jessekramer/Code/trading-bot/pytrader/main.py", line 145, in <module>
    main(sys.argv[1:])
  File "/Users/jessekramer/Code/trading-bot/pytrader/main.py", line 53, in main
    bot.run()
  File "pytrader/runners/backtest.py", line 16, in run
    self.strategy.tick(candlestick)
  File "pytrader/bots/strategies/linear_regression.py", line 24, in tick
    next_price = model.predict(self.current_price)
  File "/Users/jessekramer/VirtualEnv/trading/lib/python2.7/site-packages/sklearn/linear_model/base.py", line 256, in predict
    return self._decision_function(X)
  File "/Users/jessekramer/VirtualEnv/trading/lib/python2.7/site-packages/sklearn/linear_model/base.py", line 241, in _decision_function
    dense_output=True) + self.intercept_
  File "/Users/jessekramer/VirtualEnv/trading/lib/python2.7/site-packages/sklearn/utils/extmath.py", line 140, in safe_sparse_dot
    return np.dot(a, b)
ValueError: shapes (1,1) and (3,1) not aligned: 1 (dim 1) != 3 (dim 0)
简·K

看回溯,问题好像是在调用predict方法的时候出现的

next_price = model.predict(self.current_price)

你需要确保它self.current_price有正确的形状---shape=(whatever, 3)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

sklearn线性回归似乎无法正确拟合

来自分类Dev

如何使用三个自变量拟合线性回归模型并使用sklearn计算均方误差?

来自分类Dev

缺少数据的误差线性回归

来自分类Dev

大数据的sklearn线性回归

来自分类Dev

ValueError:尝试将sklearn的线性回归器拟合到熊猫数据框实例时使用matmul

来自分类Dev

多次拟合 sklearn 线性回归分类器是添加数据点还是替换它们?

来自分类Dev

回归后如何保留拟合数据的xts格式?

来自分类Dev

在强制曲线形状的同时拟合数据点

来自分类Dev

如何检查线性回归模型对数据的拟合程度?

来自分类Dev

不同数据集上的线性回归拟合(增强)

来自分类Dev

Sklearn - 线性回归

来自分类Dev

回归拟合的标准误差不匹配

来自分类Dev

约束线性最小二乘法不拟合数据

来自分类Dev

numpy中的线性回归斜率误差

来自分类Dev

标准差/线性回归误差

来自分类Dev

标准偏差/线性回归误差

来自分类Dev

Xmgrace:使用误差线进行线性回归

来自分类Dev

用numpy拟合数据

来自分类Dev

scikit拟合数据错误

来自分类Dev

熊猫+ sklearn线性回归失败

来自分类Dev

在R中拟合线性回归模型

来自分类Dev

如何在同一数据中拟合两个线性回归?

来自分类Dev

线性拟合,x和y都有误差

来自分类Dev

用积分功能拟合数据

来自分类Dev

曲线拟合数据问题

来自分类Dev

如何使用Keras过度拟合数据?

来自分类Dev

通过多种功能拟合数据

来自分类Dev

尝试使高斯+直线拟合数据

来自分类Dev

使更好的高斯拟合数据点?