学习网站:
数据驱动方法
KNN(例如采用L1曼哈顿距离)
代码如下:
import numpy as np
class NearestNeighbor:
def train(self,X,y):
self.Xtrain=X
self.ytrain=y
def predict(self,X):
# 第一维
num_test=X.shape[0]
# 使训练集和测试集类型匹配
Ypred=np.zeros(num_test,dtype=self.ytrain.dtype)
for i in range(num_test):
distances=np.sum(np.abs(self.Xtrain-X[i,:]),axis=1)
min_index=np.argmin(distances)
Ypred[i]=self.ytrain[min_index]
return Ypred
训练时间很短,测试时间很长
k的选择是个问题