1. KNN分类
class KNN:
def __init__(self,k):
"""初始化 """
self.k=k
def fit(self,X,y):
"""训练方法
X:类数组类型(二维) 待训练的样本特征(属性)
y:(一维) 样本的目标值(标签)"""
self.X=np.asarray(X)#转化为ndarray数组类型
self.y=np.asarray(y)
def predict(self,X):
X=np.asarray(X)
result=[]
for x in X:
#对于测试集中的每一个样本,依次与训练集中的所有样本求距离
dis=np.sqrt(np.sum((x-self.X)**2,axis=1))
#返回数组排序后的索引,也是每个元素在原数组(排序之前)中的索引
index=dis.argsort()
#只取前K个
index=index[:self.k]
#返回数组中每个元素出现的次数。元素必须是非负整数。
count=np.bincount(self.y[index])
#返回出现次数最多的元素的索引,该索引就是我们判断的类别.加入resul数组
result.append(count.argmax())
return np.asarray(result)
def predict2(self,X

最低0.47元/天 解锁文章
2199

被折叠的 条评论
为什么被折叠?



