Итак, у меня есть код, который работает для 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