构建一个机器学习系统最重要的一部分就是找到一个方法来评估模型预测的质量,大部分的评估模型都在scikit-leaning中的metrics中。
使用准确率、精确率和召回率对分类器进行评分:
- accuracy_score:准确率。是指在测试数据集中,那些预测正确的数据点的数量除以整个测试数据集的大小,是最基本的评分函数。
- precision_score:精确率。例如在分别猫和狗的问题中,精确率描述的是分类器把包含狗的图片不分为猫的能力。
- recall_score:召回率。如上例中,召回率指的是分类器从所有包含猫的图片中检索猫的能力。
正样本和负样本:类别为1的数据点往往称为正样本,类别为0(或-1)的数据点称为负样本。
使用均方误差、可释方差和R方差对回归器进行评分:
- mean_squared_error:均方误差。计算训练数据集中数据点的预测值与真实值的平方误差,再在所有的数据点上计算他们的平均值。
- explained_variance_score:可释方差。描述了计算模型对于测试数据的方差或离散程度的己解释程度,可释方差常用相关系数来计算。
- r2_score:R方差。值与可释方差值密切相关,但使用无偏方差估计,也被称为决定系数。其实就是相关系数r的平方值!
实例:
# ——创建时间:2019.2.25——
import numpy as np
from sklearn import metrics
import cv2
# 分类器
np.random.seed(42) # 设立随机数种子为特定值
y_ture = np.random.randint(0, 2, size=5)
print(y_ture)
y_pred = np.ones(5, dtype=np.int32) # 模拟预测的值
print(y_pred)
accuracy_score=np.sum(y_ture == y_pred)/len(y_pred) # 准确率
print("准确率:",accuracy_score)
# 使用sklearn计算准确率
accuracy_score1 = metrics.accuracy_score(y_ture,y_pred)
print("准确率2:",accuracy_score1)
precision_score = metrics.precision_score(y_ture,y_pred)
print("精确率:",precision_score)
recall_score = metrics.recall_score(y_ture,y_pred)
print("召回率:",recall_score) # 从模拟的结果来看,召回率完美