第7章 模型评估

7.1 分类模型评估

1、二分类

  混淆矩阵中对角线的元素代表正确分类的数量;

  非对角线元素代表错误分类的数量。

所以最为理想的模型(拿测试集来看),应该是一个对角阵。若无法得到对角阵,对角线上的数字之和如果占统治地位也是可以的。

片面的追求查准率可能会降低召回率

2、多分类

recall参数中的average()的取值:

  binary表示二分类

  micro表示多元混淆矩阵中的第一种方法

  macro表示的是一种不加权的平均

  weighted表示加权的平均

3、 反应分类效果的图及ROC曲线阈值的选取

(1)ROC、AUC

选取标准:让TPR尽可能的大,FPR尽可能的小,所以选取其拐点

AUC表示的是ROC曲线下的面积,可以直接反应ROC曲线像左上方靠近的程度。

如何做ROC曲线?

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html#sklearn.metrics.roc_curve

xy_lst = [(X_train, Y_train), (X_validation, Y_validation), (X_test, Y_test)]

import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve,auc,roc_auc_score
f = plt.figure()

for i in range(len(xy_lst)):
    X_part = xy_lst[i][0]
    Y_part = xy_lst[i][1]
    Y_pred = mdl.predict(X_part)
    # Y_pred = mdl.predict_classes(X_part)#用predict()时输出的是连续值,使用predict_classes()时输出的是分类标注
    # print(i)
    print(Y_pred)
    Y_pred = np.array(Y_pred[:,1]).reshape((1,-1))[0]
    # from sklearn.metrics import accuracy_score, recall_score, f1_score
    # print(i, ‘---:‘, ‘Nural Network‘, ‘准确率:‘, accuracy_score(Y_part, Y_pred),
    #       ‘召回率:‘, recall_score(Y_part, Y_pred),
    #       ‘F1分数:‘, f1_score(Y_part, Y_pred))
    f.add_subplot(1,3,i+1)
    fpr,tpr,thresholds = roc_curve(Y_part,Y_pred)
    plt.plot(fpr,tpr)
    plt.shaow()
    #这两个函数功能一样
    print(‘Nural Network‘,‘AUC‘,auc(fpr,tpr))
    print(‘Nural Network‘,‘AUC Score‘,roc_auc_score(Y_part,Y_pred))
    ‘‘‘
    Nural Network AUC 0.9610879734019506
    Nural Network AUC Score 0.9610879734019506
    Nural Network AUC 0.961721658936862
    Nural Network AUC Score 0.961721658936862
    Nural Network AUC 0.9637020039792525
    Nural Network AUC Score 0.9637020039792525
    ‘‘‘

(2)增益图与KS图

其中KS图中关注的是,TPR曲线与FPR曲线的差距,这个差距反映了对正类样本的区分度。

原文地址:https://www.cnblogs.com/Cheryol/p/11442812.html

时间: 2024-07-30 07:07:52

第7章 模型评估的相关文章

机器学习总结之第二章模型评估与选择

机器学习总结之第二章模型评估与选择 2.1经验误差与过拟合 错误率 = a个样本分类错误/m个样本 精度 = 1 - 错误率 误差:学习器实际预测输出与样本的真是输出之间的差异. 训练误差:即经验误差.学习器在训练集上的误差. 泛化误差:学习器在新样本上的误差. 过拟合:学习器把训练样本学的"太好",把不太一般的特性学到了,泛化能力下降,对新样本的判别能力差.必然存在,无法彻底避免,只能够减小过拟合风险. 欠拟合:对训练样本的一半性质尚未学好. 2.2评估方法 (在现实任务中,还需考虑

第二章 模型评估

1. 评价指标的局限性 准确率(Accuracy) 精确率(Precision) 召回率(Recall) 均方根误差(Root Mean Square Error, RMSE) 1.1 准确率 准确率: 指分类正确的样本占总样本个数的比例 Accuracy = \frac{n_{correct}}{n_{total}} 准确度的问题: 当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素. 例如:当负样本占99%,分类器把所有样本都预测为负样本也可以获得99%的准确率.

第二章 模型评估与选择

2.1  经验误差与过拟合 错误率和精度:通常我们把分类错误的样本占样本总数的比例称为“错误率”(error rate),即如果在m个样本中有a个样本分类错误,则错误率E=a/m:相应的,1-a/m称为“精度”.(accuracy).即“精度=1-错误率”. 误差:学习期的实际预测误差和样本的真实输出之间的差异称为“误差”(error) 训练误差/经验误差:学习器在训练集上的误差称为“训练误差”(training error)或 “经验误差”(expircial error) 泛化误差(gene

西瓜书第二章--模型评估与选择

2.1 经验误差与过拟合 错误率:错分样本的占比 精度:分对样本的占比,与错误率是互补的. 误差:样本真实输出与预测输出之间的差异.学习器在训练集上的误差称为训练误差或经验误差,在新样本上的误差称为泛化误差. 由于事先并不知道新样本的特征,我们只能努力使经验误差最小化: 很多时候虽然能在训练集上做到分类错误率为零,但多数情况下这样的学习器并不好 过拟合:学习器把训练样本学习的“太好”,将训练样本本身的特点 当做所有样本的一般性质,导致泛化性能下降: 解决措施:1.优化目标加正则项 :2.earl

【机器学习123】模型评估与选择 (上)

第2章 模型评估与选择 2.1 经验误差与过拟合 先引出几个基本概念: 误差(error):学习器的实际预测输出与样本的真实输出之间的差异. 训练误差(training error):学习器在训练集上的误差,也称"经验误差". 测试误差(testing error):学习器在测试集上的误差. 泛化误差(generalization error):学习器在新样本上的误差. 错误率(error rate):分类错误的样本数占样本总数的比例. 精度(accuracy) = 1 – 错误率.

数据挖掘导论 第4章 分类:基本概念、决策树与模型评估

第4章 分类:基本概念.决策树与模型评估 分类(classification):分类任务就是通过学习得到一个目标函数(target function)f,把每个属性集x映射到一个余弦定义的类标号y.目标函数也称为分类模型(classification model). 属性可以是离散的或者连续的,但类标号必须是离散的,这正是分类与回归(regression)的关键特征.回归是一种预测建模任务,其中目标属性y是连续的. 分类计数非常适合预测或描述二元或标称类型的数据集,对于序数分类,分类技术不太有效

【机器学习 第2章 学习笔记】模型评估与选择

1.训练误差:学习器在训练集上的误差,也称“经验误差” 2.泛化误差:学习器在新样本上的误差 显然,我们的目标是得到在新样本上表现更好的学习器,即泛化误差要小 3.过拟合:学习器把训练样本学的太好了,导致泛化性能下降(学过头了...让我联想到有些人死读书,读死书,僵化,不懂得变通和举一反三) 原因:学习能力过于强大,把一些不太一般的特性也学了进来 针对措施:不好解决,是机器学习面临的关键障碍 4.欠拟合:就是连训练集都没学好,更别说泛化了(有点管中窥豹,盲人摸象的意思). 原因: 学习能力低下

《数据挖掘导论》 - 读书笔记(5) - 分类:基本概念、决策树与模型评估 [2016-8-21]

第4章 分类:基本概念.决策树与模型评估 分类任务就是确定对象属于哪个预定义的目标类.分类问题是一个普遍存在的问题,有许多不同的应用.例如:根据电子邮件的标题和内容检查出垃圾邮件,根据核磁共振扫描的结果区分肿瘤是恶性的还是良性的,根据星系的形状对它们进行分析. 本章介绍分类的基本概念,讨论诸如模型的过分拟合等关键问题,并提供评估和比较分类技术性能的方法.尽管本章主要关注一种称作决策树归纳的技术,但是本章讨论的大部分内容也适用于其他的分类技术. 4.1 预备知识 分类任务的输入数据是记录的集合.每

隐马尔可夫模型模型评估及最优路径的matlab实现

自己根据算法编写了两个简单的matlab代码,应用于例子中的数据取得了正确的解,这里并没有考虑速度优化的问题,请大家不吝指教: 1.模型评估 HMM模型如下,试根据前向算法计算产生观察符号序列O={ABAB}的概率. 状态转移概率矩阵 a = [0.4 0.6 0 ; 0   0.8 0.2; 0   0    1 ]; 观测矩阵: o= [0.7 0.3 0.7 0.3; 0.4 0.6 0.4 0.6; 0.8 0.2 0.8 0.2]; 初始概率矩阵: pi = [1 0 0]; 例题中的