多变量 KNN 预测
multivariate KNN prediction
因此,如果我的数据具有 1 个预测下一个结果的特征,我就有适用于 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
为了训练,您正在使用
X = np.array(df.ix[:, 2:6])
即具有 6 - 2 = 4 列的矩阵,这意味着邻居是 4 元组。
为了进行预测,您正在使用
u = df['Close'].iloc[-1]
这是一个标量。
最近邻未定义,sklearn很不爽
因此,如果我的数据具有 1 个预测下一个结果的特征,我就有适用于 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
为了训练,您正在使用
X = np.array(df.ix[:, 2:6])
即具有 6 - 2 = 4 列的矩阵,这意味着邻居是 4 元组。
为了进行预测,您正在使用
u = df['Close'].iloc[-1]
这是一个标量。
最近邻未定义,sklearn很不爽