【发布时间】:2018-10-14 06:14:36
【问题描述】:
所以,如果我的数据具有 1 个特征来预测下一个结果,我就有适用于 knn.predict() 的代码。为了将其置于上下文中,我有股票数据(开盘价、最高价、最低价、收盘价),其中我使用“开盘”作为“X”数据,“收盘”作为“Y”数据,knn.predict 将预测 Y 的下一个值.
当我尝试对我的 X 数据使用“打开、高、低”列(3 个特征)时,我收到以下错误:
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 的大小不同,但我不明白如何修复它。如果 X 和 Y 的大小必须相同,如何使用 KNN 进行多特征分析?
部分代码:
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
【问题讨论】:
标签: python pandas machine-learning scikit-learn knn