KNN基于Numpy的python实现

博客介绍了如何从头开始使用numpy实现KNN算法,并将其与sklearn库的KNN算法进行性能和准确率的比较。作者展示了自定义KNN算法在鸢尾花数据集上达到约90%的准确率,但运行速度较慢。相比之下,sklearn的KNN实现速度更快,准确率相同。最后,通过混淆矩阵展示了测试集上的分类效果。

学了KNN以后,不用SKlearn现成的包,基于numpy自己实现了一下KNN算法。可以按照顺序把代码贴进去,自己跑一下试试。

导入需要的包

import time #调用时间,显示算法运行时间
import os
import math
import numpy as np
import scipy as sp
import pandas as pd
# 使np矩阵不显示科学计数
np.set_printoptions(suppress=True)

主体KNN代码

class KNN(object):
    """
    Classifier implementing the k-nearest neighbors vote.
    Parameters
    ----------
    n_neighbors: int, required, default=None
        Number of neighbors to use by default for :meth:`kneighbors` queries.
    ----------
    
    function1-fit: Fit the model by k-nearest neighbors.
    Parameters
    ----------
    X_train: train dataset
    y_train: label of X_train
    ----------
    
    function2-predict: return x_test's classification result after KNN process.
    Parameters
    ----------
    y : x_test
    ----------
    """
    
    def __init__(self,n_neighbors):
        self.n_neighbors=n_neighbors
        self._X_train = None 
        self._y_train = None
        
    def fit(self,X_train,y_train):
        self._X_train=X_train
        self._y_train=y_train
        return self 
            
    def predict(self
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值