многомерный прогноз КНН - PullRequest
0 голосов
/ 03 мая 2018

Итак, у меня есть код, который работает для knn.predict (), если у меня есть данные, которые имеют 1 функцию для прогнозирования следующего результата. Чтобы поместить это в контекст, у меня есть данные о запасах (Open, High, Low, Close), где я использую «Open» в качестве данных «X» и «Close» в качестве данных «Y», а knn.predict прогнозирует следующее значение Y .

Когда я пытаюсь использовать столбцы «Open, High, Low» (3 функции) для моих данных X, я получаю следующую ошибку:

File "sklearn\neighbors\binary_tree.pxi", line 1294, in sklearn.neighbors.kd_tree.BinaryTree.query
ValueError: query data dimension must match training data dimension

Я полагаю, что это из-за моих X.shape и Y.shape, где размер X не совпадает с размером Y, но я не понимаю, как это исправить. Как вы используете KNN для многофакторного анализа, если X и Y должны быть одинакового размера?

Некоторые из кодов:

df = df[['Date','Time', 'Open', 'High', 'Low', 'Close']]
df.head()

# Predictor Variables
df['Open'] = df.Open
df['High'] = df.High
df['Low'] = df.Low
df['Close'] = df.Close
df = df.dropna()
#Data = np.delete(arr = df, obj=0, axis = 0)
X = np.array(df.ix[:, 2:6])
#X.head()
print X.shape

# Target Variable
Y = np.where(df['Close'].shift(-1)>df['Close'],1,-1)
#print (Y)

#Predict
u = df['Close'].iloc[-1]
#print u
new_prediction = knn.predict(u)
print new_prediction

1 Ответ

0 голосов
/ 03 мая 2018

Для обучения вы используете

X = np.array(df.ix[:, 2:6])

т.е. матрица с 6 - 2 = 4 столбцами, что означает, что соседями являются 4 кортежа.

Для прогнозирования вы используете

u = df['Close'].iloc[-1]

который является скаляром.

Ближайший сосед не определен, а sklearn очень несчастен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...