Python3入门机器学习之2.4分类准确度

Python3入门机器学习

2.4 分类准确度

在上一节中,我们用这样一行代码来求预测的准确率:

sum(y_predict == y_test)/len(y_test)

我们可以将它封装成一个函数。
(1).封装求分类准确度的函数:
将它封装成一个函数,写在metrics(衡量指标)模块下,函数名为“accuracy_score”。具体的函数封装如下:

import numpy as np

def accuracy_score(y_true, y_predict):
    '''计算y_true和y_predict之间的准确率'''
    assert y_true.shape[0] == y_predict.shape[0], \
        "the size of y_true must be equal to the size of y_predict"

    return sum(y_true == y_predict) / len(y_true)

这样我们就可以直接调用这个函数,来求解分类的准确度,如下:
在这里插入图片描述
(2).进一步封装一个函数,不需要求预测值,就能得到准确率:
以上是用KNNClassifier预测出y_predict,再看它与真值之间的准确率是怎样的。不过有些时候我们对预测值是多少不感兴趣(不想求出它),我们只对模型的准确率感兴趣,这样我们可以在我们的kNN算法里进一步封装一个函数,也就是求这个kNN算法它的准确度是怎样的。封装如下:

    def score(self, X_test, y_test):
        '''根据测试数据集 X_test 和 y_test 确定当前模型的准确度'''
        y_predict = self.predict(X_test)
        return accuracy_score(y_test, y_predict)

这样我们就可以直接调用这个函数,来求解分类的准确度,如下:
在这里插入图片描述
(3).使用scikit-learn中的accuracy_score:
Python3入门机器学习之2.4分类准确度_第1张图片

你可能感兴趣的:(Python3入门机器学习,python,算法,机器学习,人工智能)