python K近邻算法的手动实现

  1. 范围法计算最近有几个点,比较点数,判断数据哪类
    第一步:导入原始数据

在这里插入图片描述
第二步:计算点数

在这里插入图片描述
在这里插入图片描述
第三步:比较点数
在这里插入图片描述
2.K近邻法计算K个点的距离和,比较总距离,判断数据哪个点。
第一步:还是以(2,5)为基准点,分别算出距离。
在这里插入图片描述
第二步:比较距离总和大小
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的k近邻算法(k-nearest neighbors algorithm)是一种基本的分类和回归方法,它通过衡量数据之间的距离来预测新数据的类别。下面是一个简单的Python代码实现k近邻算法: ```python import numpy as np # 计算两个样本之间的欧氏距离 def euclidean_distance(x1, x2): return np.sqrt(np.sum((x1 - x2)**2)) class KNN: def __init__(self, k=3): self.k = k def fit(self, X, y): self.X_train = X self.y_train = y def predict(self, X): y_pred = [self._predict(x) for x in X] return np.array(y_pred) def _predict(self, x): # 计算样本x与所有训练样本之间的距离 distances = [euclidean_distance(x, x_train) for x_train in self.X_train] # 根据距离排序,获取最近的k个训练样本的类别 k_indices = np.argsort(distances)[:self.k] k_nearest_labels = [self.y_train[i] for i in k_indices] # 统计最近k个样本中出现次数最多的类别 most_common = np.argmax(np.bincount(k_nearest_labels)) return most_common ``` 在上面的代码中,首先定义了一个计算欧氏距离的函数`euclidean_distance`,它用于衡量两个样本之间的距离。然后定义了一个`KNN`类,其中`fit`方法用于接收训练数据和标签,`predict`方法用于接收待预测样本并返回预测结果,`_predict`方法用于预测单个样本的类别。 在使用k近邻算法时,首先需要创建`KNN`对象并调用`fit`方法传入训练数据和标签。然后可以调用`predict`方法传入待预测样本,它会返回预测结果。 这只是一个简单的k近邻算法实现,可能存在一些缺陷和改进的空间。但它可以作为理解k近邻算法的基础,并可以根据具体需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值