因此,如果我有一个功能来预测下一个结果的数据,那么我有适用于knn.predict()的代码。为了将其放到上下文中,我有股票数据(公开、高、低、收盘),其中我使用"Open“作为"X”数据,"Close“作为" Y”数据,knn.predict将预测Y的下一个值。
当我尝试对我的X数据使用"Open,High,Low“列(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发布于 2018-05-03 20:49:02
为了训练,你用
X = np.array(df.ix[:, 2:6])也就是说,一个6-2=4列的矩阵,意味着邻居是4-元组.
为了预测,你用
u = df['Close'].iloc[-1]这是一个标量。
最近的邻居没有定义,而滑雪板是非常不快乐的。
https://stackoverflow.com/questions/50163386
复制相似问题