根据上节机器学习 -- KNN算法(数据集的拆分),这里实现数据集拆分函数化的实现,以及计算预测准确率。
1. 首先需要导入需要的模块和包:
import numpy as np
from sklearn import datasets
from knn import KNNClassifier # 使用自己的分类器
2. 之前实现的自己的分类器如下:
# knn.py
class KNNClassifier:
# 初始化KNN分类器
def __init__(self, k):
assert k >= 1, "k必须为合法值"
self.k = k
# 以_开头代表私有变量,外界不能访问
self._X_train = None
self._y_train = None
def fit(self, X_train, y_train):
"""
根据训练集训练分类器
:param X_train: 用户传入的训练集特征值
:param y_train: 用户传入的训练集目标值
:return: self自身对象
"""
assert X_train.shape[0] == y_train.shape[0], \
"训练集X必须和y的大小一致"
assert