分类准确度的计算方式:
分类正确的样本数 / 总样本数
自己封装的类, 与sklearn同接口:
(新加了score(X_test, y_test)函数,不关心predict的具体值是多少(predict函数在score中调用),只关心模型的准确度)
# from sklearn.neighbors import KNeighborsClassifier
import numpy as np
from math import sqrt
from collections import Counter
from .metrics import accuracy_score
class KNNClassifier:
def __init__(self, k):
"""初始化KNN分类器"""
assert k >= 1, "k must be valid"
self.k = k
self._X_train = None
self._y_train = None
def fit(self, X_train, y_train):
"""根据训练数据集X_train和y_train训练KNN分类器"""
print(X_train.shape[0])
print(y_train.shape[0])
assert X_train.shape[0] == y_train.shape[0]#, \ "the size of X_train must be equal to y_train"
assert self.k <= X_train.shape[0]#, \ "the si