案例1:根据自己编写的分类器和切分函数计算分类的准确率。
新建一个matrics.py,将计算预测准确度封装成一个函数get_accuracy:
import numpy as np
def get_accuracy(y_test, y_predict):
"""
计算预测值的准确度
:param y_test: 分类结果的目标值
:param y_predict: 算法预测的结果向量
:return: 准确度比例
"""
assert y_test.shape[0] == y_predict.shape[0], "预测值和目标值的大小必须相等"
return sum(y_predict == y_test) / len(y_test)
在自己的分类器中添加一个计算分数的方法score:
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: