自实现KNN算法

本文介绍了自实现的KNN算法,包括算法原理、距离计算方式以及标准化处理。通过对比sklearn库的KNN算法,展示了手动实现的预测结果,并提供了标准正确值进行验证。KNN算法作为简单的分类方法,易于理解和实现。
摘要由CSDN通过智能技术生成

自实现KNN算法:

KNN原理:
由你的"邻居"来推断出你的类别
定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)
的样本中的大多数属于某一个类别,则该样本也属于这个类别。
两个样本的距离可以通过如下公式计算,又叫欧式距离
比如说,a(a1,a2,a3),b(b1,b2,b3)
公式-欧式距离:√((?1−?1)^2 +(?2−?2)^2+ (?3−?3)^2)

KNN算法需要做标准化处理

我还利用sklearn 中 KNN算法进行了对比,数据使用的也是sklearn中的load_iris,还使用了sklearn中的标准化和数据集分割函数。这些都可以进一步自己实现。

KNN算法算是最简单的一个算法了。

import numpy as np
import math
from collections import Counter

from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

"""
#手动实现KNN算法
class My_knn():
    def __init__(self,k):
        #数据初始化
        self.k = k           # k 就是KNN的超参数,就是找到离预测的点最近的k个点,进行分类判断
        self.X_train = None  # 训练集的特征值
        self.Y_train = None  
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值