Регрессия со списком валют - PullRequest
       65

Регрессия со списком валют

0 голосов
/ 30 октября 2019

Я использую sklearn для прогнозирования валютных значений. У меня есть фрейм данных с 38 столбцами, которые представляют собой курсы различных валют, и 2761 строк, которые являются ежедневными наблюдениями. Когда я использую базовую линейную регрессию, все работает довольно хорошо (я думаю). Однако, когда я пытаюсь использовать GradientBoostingRegressor, я не могу получить правильную форму, независимо от того, что я пытаюсь.

Что здесь происходит? Почему один в порядке, а другой сломан? Я несколько дней чесал голову.

from sklearn.linear_model import LinearRegression
n = 1

X = rates[:-n]
y = rates[n:]

reg = LinearRegression().fit(X,y)

^^^ Это дает хорошие прогнозы.

from sklearn.ensemble import GradientBoostingRegressor
n = 1

X = rates[:-n]
y = rates[n:]

reg = GradientBoostingRegressor(loss="lad").fit(X,y)

^^^ У этого "плохая форма". Формы одинаковы: (2761, 38).

Для справки:

rates.tail()
Out[2]: 
               AUD     BDT     BND     BRL  ...     THB     USD     VND     ZAR
2019-10-21  1054.5  18.109  1126.9  373.00  ...  50.692  1533.7  6.6086  103.81
2019-10-22  1053.6  18.127  1127.1  371.89  ...  50.645  1535.3  6.6170  104.43
2019-10-23  1050.3  18.126  1126.3  376.28  ...  50.658  1535.2  6.6154  104.67
2019-10-24  1047.5  18.107  1125.3  380.14  ...  50.672  1533.6  6.6092  104.93
2019-10-25  1046.1  18.080  1123.6  379.01  ...  50.734  1531.4  6.6007  104.54

[5 rows x 38 columns]
reg = GradientBoostingRegressor(loss="lad").fit(X,y)
Traceback (most recent call last):

  File "<ipython-input-4-21ee59fafac1>", line 1, in <module>
    reg = GradientBoostingRegressor(loss="lad").fit(X,y)

  File "/home/s/.local/lib/python3.6/site-packages/sklearn/ensemble/gradient_boosting.py", line 1450, in fit
    y = column_or_1d(y, warn=True)

  File "/home/s/.local/lib/python3.6/site-packages/sklearn/utils/validation.py", line 760, in column_or_1d
    raise ValueError("bad input shape {0}".format(shape))

ValueError: bad input shape (2671, 38)

1 Ответ

0 голосов
/ 01 ноября 2019

Я ваша цель многомерная? Если нет, то я полагаю, что вы хотели написать

X = rates[:-n]
y = rates[-n:]

вместо

X = rates[:-n]
y = rates[n:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...