【发布时间】:2017-06-07 02:43:03
【问题描述】:
我的数据训练:3 个特征(永久数据)
我的数据测试:它每次都会改变(2 个功能或 1 个功能),在我的示例代码中它现在是 2 个功能。
我想用不同的特征进行分类,因为它是不同的维度。我怎样才能做到这一点?在我的代码下面:
def classify(a):
xtrain = np.loadtxt(open("el.csv","rb"), delimiter=",", usecols= (0,1,2), skiprows=1)
print xtrain
>>[[ -56. -82. -110.]
[-110. -110. -110.]
[ -58. -110. -79.]
[ -56. -110. -110.]
[ -57. -83. -110.]
[ -63. -110. -110.]
[-110. -110. -110.]]
ytrain = np.loadtxt(open("el.csv","rb"), delimiter=",", usecols= (3,), dtype=int, skiprows=1)
print ytrain
>>[1 1 2 2 3 3 4]
xtest = np.asarray(a)
xtest = xtest.reshape([1,-1])
print xtest
>>[['-83' '-56']]
knn = neighbors.KNeighborsClassifier(n_neighbors=7, weights='distance') #Fuzzy K-Nearest Neighbor
knn.fit(xtrain, ytrain)
results = knn.predict(xtest)
print results
错误是:
ValueError:X 和 Y 矩阵的维度不兼容:X.shape[1] == 2 而 Y.shape[1] == 3
【问题讨论】:
标签: python numpy scikit-learn knn