学了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

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

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



