barriers / 阅读 / 详情

监督分类kappa系数多少合格

2023-08-04 15:27:50
TAG: kappa ka
共11条回复
左迁

监督分类kappa系数的合格标准是0.6以上。

Kappa系数是用来评估分类器的性能的一种指标。它的取值范围是-1到1之间,其中-1表示完全不一致,0表示随机一致,1表示完全一致。因此,当Kappa系数大于0.6时,表示分类器的性能是比较好的。

但是,需要注意的是,Kappa系数并不是绝对准确的评估指标,它也有一定的局限性。例如,当分类器在某些类别上的表现很好,但在其他类别上表现较差时,Kappa系数可能会高估分类器的性能。因此,在使用Kappa系数来评估分类器性能时,需要同时考虑其他指标,如准确率、召回率和F1值等。

为了提高分类器性能,可以采取一些实际的解决方法和对策。例如,可以增加训练数据的数量,优化特征提取方法,使用更加复杂的模型,或者进行模型融合等。同时,也需要注意数据质量的问题,比如数据标注的准确性和一致性等。

在实际应用中,需要根据具体情况来选择合适的评估指标,并采取相应的对策来提高分类器的性能。同时,也需要不断优化算法和改进技术,以满足不断变化的需求和挑战。

余辉

监督分类的Kappa系数可以用来评估模型的分类效果,一般来说,Kappa系数越高,模型的分类效果就越好,反之则越差。但是对于Kappa系数的合格标准并没有一个统一的标准,一般情况下,Kappa系数大于0.6可以认为是较好的分类效果,而大于0.8则是非常好的分类效果。

Kappa系数的计算方法是基于混淆矩阵的,混淆矩阵是分析模型分类效果的一种表格形式,它可以反映出模型在不同类别下的分类结果。根据混淆矩阵可以计算出Kappa系数,Kappa系数的值越接近1,说明模型的分类效果越好,反之则越差。

在实际应用中,我们可以通过交叉验证等方法来评估模型的分类效果,并计算Kappa系数来判断模型的好坏。如果Kappa系数低于0.6,可以考虑重新调整模型参数或者增加更多的训练数据来提高模型的分类效果。同时,也可以考虑采用其他的评估指标来衡量模型的分类效果,比如准确率、召回率、F1值等。

总之,Kappa系数可以作为监督分类模型分类效果的一个重要评估指标,但是并没有一个统一的合格标准,需要根据具体情况进行评估和判断。同时,我们也需要结合其他的评估指标来综合评估模型的分类效果,以便更好地优化模型,并提高分类效果。

小菜G

在监督分类中,Kappa系数是用来评估分类器分类结果的一种常用指标,Kappa系数的取值范围是-1到1,一般来说,Kappa系数的取值越高,分类器的分类结果越可靠,Kappa系数的取值范围及其含义如下:

-1.0 到 0.0,表示分类器的分类结果不可靠,结果不如随机分类的结果。

0.0 到 0.20,表示分类器的分类结果不太可靠,结果一般不如随机分类的结果。

0.20 到 0.40,表示分类器的分类结果一般可靠,结果略好于随机分类的结果。

0.40 到 0.60,表示分类器的分类结果比较可靠,结果好于随机分类的结果。

0.60 到 0.80,表示分类器的分类结果很可靠,结果很好,分类器的分类效果比较好。

0.80 到 1.0,表示分类器的分类结果非常可靠,结果非常好,分类器的分类效果非常好。

因此,一般来说,Kappa系数在0.6到0.8之间是比较合格的,Kappa系数大于0.8则是非常好的分类结果,Kappa系数小于0.6则需要进一步优化分类器的分类效果。需要注意的是,Kappa系数的合理取值范围也可能因应用场景的不同而不同。

可乐

Kappa系数是评估监督学习中分类器性能的一种常用指标,它可以衡量分类器所做出的分类决策与实际分类之间的一致性程度。通常情况下,Kappa系数的取值范围为[-1,1],其中1表示分类器的分类结果与实际分类完全一致,0表示分类器的分类结果与随机分类等价,-1表示分类器的分类结果与实际分类完全相反。

针对Kappa系数的合格标准,具体取决于具体的应用场景和任务要求。一般而言,Kappa系数的取值越高,分类器的性能就越好。对于绝大多数分类任务来说,Kappa系数在0.6到0.8之间被认为是比较理想的结果,而大于0.8的Kappa系数则被认为是非常出色的结果。

需要注意的是,Kappa系数的计算仅仅考虑分类器的分类结果和实际分类结果之间的一致性,而并不涉及分类器的准确率、召回率等其他重要性能指标。因此,在实际应用中,我们需要综合考虑多个指标来评估分类器的性能,以确保分类器在各个方面都具有良好的表现。

南yi

Kappa系数(Kappa Coefficient)是衡量分类任务预测结果与真实值之间一致性的统计量。它的取值范围为-1到1,数值越高表示分类器的性能越好。

通常,Kappa系数在0.81-1.00之间被认为是优秀的,0.61-0.80之间被认为是良好的,0.41-0.60之间被认为是一般的,0.21-0.40之间被认为是较差的,0.00-0.20之间则被认为是极差的。

但是,评估一个Kappa系数是否合格还需要同时考虑实际应用场景和模型需求。例如在一些领域中,高于0.5已经可以满足大部分的需求。因此,建议结合具体情况来评估Kappa系数的合格性。

clou

监督分类的Kappa系数用于评估分类算法的质量和准确性。通常认为,Kappa系数在0.8以上被认为是优秀的结果,可以被视为分类算法的良好表现。如果Kappa系数低于0.6,则可能需要重新评估算法或重新选择特征。因此,对于监督分类算法而言,达到一个合格的Kappa系数代表着分类的准确性和可信度都比较高。

我不懂运营

Kappa系数值在0.6到0.8之间被认为是很好的或者强的,可以被视为一个较好的分类。如果Kappa系数值高于0.8,则表明分类的效果非常好。而如果Kappa系数值低于0.6,则分类的效果较差,需要进一步优化和改进。但需要注意的是,Kappa系数并不适用于所有类型的分类问题,因此在使用Kappa系数时需要谨慎。

里论外几

Kappa系数是统计学中用于衡量分类预测准确度的一种指标。通常情况下,Kappa系数值在0.6到0.8之间被视为良好的预测质量,而超过0.8则被视为非常好。在实际应用中,Kappa系数的合格标准会有所不同,具体因素包括分类问题的难易程度、工作要求的严格程度以及使用的数据样本大小等。总之,即便Kappa系数数值高,也需要结合实际情况进行判断。

meira

监督分类kappa系数的合格标准取决于具体应用场景和需求,一般来说,kappa系数越高代表模型的准确性越高。在某些应用场景中,0.8以上的kappa系数可能已经可以满足需求,而在某些更为严格的场景中,可能需要达到0.9以上的kappa系数才能认为是合格的。因此,需要根据具体应用场景和需求来确定kappa系数的合格标准,以评估模型的准确性。

nicehost

在监督分类任务中,我们通常使用kappa系数来评估模型的性能。Kappa系数基于矩阵理论,可以解决准确率在数据分类不平衡时带来的问题,在数据集平衡的情况下数值通常在0.4-1之间。在使用Kappa系数之前,我们需要对数据集进行分层交叉验证,并将结果进行平均。在实践中,一般认为Kappa系数在0.6以上代表了良好的模型性能。

蓓蓓

监督分类kappa系数多少合格

0.4元

去回答

相关推荐

画混淆矩阵看不清怎么办

1、首先准备纸笔,先画出混淆矩阵。2、其次填入信息。3、最后把混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个表里展示即可。
2023-08-04 09:08:141

混淆矩阵有什么用?

混淆矩阵可以得出分类正确和错误的样本数量
2023-08-04 09:08:221

matlab混淆矩阵字体大小怎么改

1、首先打开Matlab软件,找到文件菜单。2、然后找到Preference选项,点击Font选项再点击custom选项。3、最后在右侧界面中选择要调节哪个窗口区字体的大小。
2023-08-04 09:08:321

请问 tabulate area 如何做混淆矩阵分析?

input zone 选择分类影像,input class 选择参考/真实影像,即可得到以面积为单位的混淆矩阵,将矩阵中的所有数字除以一个像元的面积即可得到以像元为单位的混淆矩阵。
2023-08-04 09:08:391

envi怎么打开保存的混淆矩阵

在设置中点击了混淆矩阵的按钮。设置里面选择打开混淆矩阵,点击那个按钮,从而可以打开保存着的混淆矩阵,这样就可以进行分类划分。保存是从一个平台上保存在手机或电脑的客户端上面,把这个转移。
2023-08-04 09:08:481

用r语言中利用rsnns得到的准确度混淆矩阵,缺少一类.是什么原因

以一个二分类问题作为研究对象,图1的混淆矩阵显示了一个分类器可能会遭遇的所有情况,其中列(positive/negative)对应于实例实际所属的类别,行(true/false)表示分类的正确与否(注,这里的混淆矩阵的结构跟[2]中的定义并不一样,但实际说明的问题是一致的)
2023-08-04 09:09:091

评价-分类算法的评价指标

对于二元分类,通常可以输出混淆矩阵,看预测的情况,并从中总结出一些指标,给予评价。 混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。具体评价指标有总体精度、制图精度、用户精度等,这些精度指标从不同的侧面反映了图像分类的精度。在人工智能中,混淆矩阵(confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。在图像精度评价中,主要用于比较分类结果和实际测得值,可以把分类结果的精度显示在一个混淆矩阵里面。混淆矩阵是通过将每个实测像元的位置和分类与分类图像中的相应位置和分类相比较计算的。 以二元分类举例,混淆矩阵为: 每个样本会对应一个预测值和一个实际标签值,从上图可以知道,实际为1分类,预测结果也是1分类的有100个,而实际是0,预测是1的有3个,以此类推。 为了方便记忆,混淆矩阵的各个单元格有一个统一的称呼: True很好理解,就是预测对了的,Positive代表的意思是实际分类为1的值,Negative代表的是实际分类为0的值。括号里面的就是简称了,这在后面会有用处。 假定1为正样本,0为负样本,则混淆矩阵的各个单元格表述如下: 真正率(true prositive rate, TPR) 或灵敏度(sensitivity)定义为被模型正确预测的正样本比例,为: 同理可得其他: 从直观印象上来说,判断一个分类模型是不是准确,肯定是直接判断分类模型的正确率,这样就可以对模型有一个大概的评价,但是在某些时候,这么做并不靠谱: 假如我有一组产品,其中正品率可能是99.5%,次品率是0.5%,我的预测模型得到的结果是正品99%,次品1%,如果用正确率来算,是相当可观的,但是实际上次品的预测差距是整整1倍,很难说这是一个好的模型。 这种不同类的样本数量完全不成比例的情况,叫做不平衡类(倾斜类)。 对于这种分类,可以根据混淆矩阵来设计一些指标,从而评估模型,精准率就是其中之一: 精准率从公式上看,表达的意思就是预测为正样本的样本中,有多少是真正为正的,代表了预测的精确程度 。以下面的混淆矩阵为例: 所以精准率就是0.9804。 同上,召回率也是从混淆矩阵中总结出来的指标: 表达的意思则是,实际为正样本的个数中,有多少被成功的预测了 (有点类似于我现在从事行业的回收率,姑且这么理解吧) 还是上面的矩阵,那么召回率就是 事实上一个模型大部分时候是很难做到精确率和召回率两全的,有可能追求完美的精确率但是召回率很低,反之也一样,为了同时最大化精确率和召回率,可以用F1值对分类模型进行评价: 这个值肯定是在小于1的范围以内,原则上越大越好了。 ROC曲线是显示分类算法真正率和假正率之间折中的一种可视化方法,把真正率(TPR)作为y轴,假正率(FPR)作为x轴。 设定一个阈值,阈值之上的样本为正样本,之下为负样本,阈值降低,则真正率越高,假正率也会越高(因为判断正样本的条件宽松了),所以ROC曲线应该是x轴和y轴同时增长的,如图: 如果是一个随机分类,则ROC曲线应该是沿着对角线的,如果是分类算法,那么图像越靠近左上角,模型效果越好(假正率很低的时候真正率高)。 AUC是ROC曲线下方的面积,很显然,面积越大越好,如果模型是完美的,那么面积等于1,如果是随即分类,那么就是0.5。 以上这几种常用方法都是二元分类的方法,其中有一些也可以扩展到多分类,另外还有多分类专用的评价方法。 转自 https://www.zhihu.com/question/56403549/answer/151310817 应用多分类问题,把每个类别单独视为”正“,所有其它类型视为”负“,考虑如下的混淆矩阵: Kappa统计是比较两个或多个观测者对同一事物,或观测者对同一事物的两次或多次观测结果是否一致,这个系数的取值范围是[-1,1],实际应用中,一般是[0,1],这个系数的值越高,则代表模型实现的分类准确度越高。 Kappa统计数字的意义如下: 其中,p0表示为总的分类准确度; pe表示为 其中, 代表第i类真实样本个数, 代表第i类预测出来的样本个数。 对于该表中的数据,则有: 海明距离也适用于多分类的问题,简单来说就是衡量预测标签与真实标签之间的距离,取值在0~1之间。距离为0说明预测结果与真实结果完全相同,距离为1就说明模型与我们想要的结果完全就是背道而驰。 它与海明距离的不同之处在于分母。当预测结果与实际情况完全相符时,系数为1;当预测结果与实际情况完全不符时,系数为0;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。 我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况。 铰链损失(Hinge loss)一般用来使“边缘最大化”(maximal margin)。损失取值在0~1之间,当取值为0,表示多分类模型分类完全准确,取值为1表明完全不起作用。 参考: https://www.jianshu.com/p/573ba75aec94
2023-08-04 09:09:451

ROC曲线原理实例分析 【1】

在选择诊断试验时,许多研究者会在灵敏度和特异度之间进行艰难的取舍。那么,是否可以综合考虑灵敏度和特异度的特点,根据一个指标评价诊断试验的准确性呢?受试者工作特征曲线(receiver operating characteristic curve,简称ROC曲线),用来描述诊断试验的内在真实程度,应用十分广泛。 ROC曲线是以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的。每一个点都对应诊断试验的一个截点,我们将这些可能的点连接起来即可制作出经验ROC曲线(empirical ROC curve)。该方法可以帮助研究者简单、直观地分析诊断试验的临床准确性,选择更加合适的截点。 一、背景介绍 在介绍ROC曲线之前,首先来介绍一下预测模型的背景。 (一)预测模型建模流程简介 1.利用数据中的训练集进行模拟的生成。 2.利用测试集进行模型的评测。 3.将评测的结果反馈给生成模型。 4.若评测结果比较满意,进行生成模型的输出,否则重新生成。 那么测试集如何评测预测模型?这里引出混淆矩阵的概念。 (二)混淆矩阵 混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,常用来预测模型的准确率。 图1 混淆矩阵 P:样本中的正例,n:样本中的负例 Y:通过模型预测出来样本中的正列,N:通过模型预测出来样本中的负列 TP(True Positives):本来是正列,通过模型预测出来也是正列FP(False Positives):本来是负列,通过模型预测出来也是正列预测模型准确率accuracy=(TP+TN)/(P+n) (三)案例分析 表1 原始数据 从表1可以看出,有20个观测值,结局有1和0两种状态,分别代表着阳性和阴性。类似于Logistic回归当中某个人是否患疾病,患病为1,不患病为0。预测概率是通过Logistic回归预测的结果。那怎么去预测这组概率的准确率呢? 从表2中可以看出前6个数据预测结局为阳性,其他14个数据预测结局为阴性。计算它的混淆矩阵如表3,真实结局中有10个1和10个0。但是预测结局的阳性数有6个,其中有5个是真实阳性,有1个是真实阴性。第三个观测值结局本来是阴性的,但预测结局是阳性的,这个观测值预测错误。同理,预测结局的阴性数有14个,其中有9个是真实阴性,有5个是真实阳性。第九个观测值结局本来是阳性的,但预测结局是阴性的,这个观测值预测错误。 表3 混淆矩阵表 真阳率是指本来是阳性的,预测出的结果也是阳性的。假阳率是指本来是阴性的,但预测出的结果是阳性的。从表3中可以看出,在真实阳性数这一竖列中,预测正确的观测值有5个,所以真阳率(TPR)=5/P=5/10=0.5。在真实阴性数这一竖列中,预测正确的观测值有1个,所以假阳率(FPR)=1/n=1/10=0.1。 同理真阴率(TNR)=9/10=0.1,假阴率(FNR)=5/10=0.5。 表4 真阳率和假阳率 从表4可以看出,以0.54为阈值,作出来的混淆矩阵真阳率为0.5,假阳率为0.1。真阳率和假阳率是以每一次相应的预测概率为阈值,算出混淆矩阵而得到的。 将1-20每个样本的评分均作为分类器的判定阈值,可以得到20组TPR和FPR的有序数对。然后以TPR和FPR为两个坐标轴建立一个直角坐标系,就可以得到图2。 图2 TPR和FPR的有序数对 二、ROC曲线概念 ROC曲线:受试者工作特征曲线(receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve)。 采用真阳性率和假阳性率作出的曲线,适用于诊断试验结果为连续变量。试验的真阳性率(Sen)为纵坐标(Y),假阳性率(1-Spe)为横坐标(X),坐标轴上的率值由0 1或0% 100%。 图3 ROC曲线示意图横轴FPR:1-TPR,1-Specificity,FPR越大,预测正类中实际负类越多。纵轴TPR:Sensitivity,TPR越大,预测正类中实际正类越多。理想目标:TPR=1,TPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45°对角线越好,Sensitivity、Specificity越大效果越好。 三、最佳阈值的确定——约登指数 约登指数(Youden index,YI):是评价筛查试验真实性的方法,假设其假阴性和假阳性的危害性同等意义时,即可应用约登指数。约登指数=灵敏度Sensitivity+特异度Specificit-1=[a/(a+c)+d/(b+d)]-1。指数越大说明筛查试验的效果越好,真实性越大。从表中可以看出,真阳率与假阳率的差值就是约登指数,最大的约登指数为0.4,0.4对应的预测概率为0.54,大于0.54认为是阳性的,小于0.54认为是阴性的。0.54就是最佳阈值。 四、AUC概念 AUC(Area Under Curve)值为ROC曲线下方的面积大小。显然,AUC越大,预测效果越好。AUC=1,是完美分类器,采用这个预测模型时,不管设定什么截断点都能得出完美预测。绝大多数预测的场合,不存在完美分类器。0.5<AUC<1,优于随机猜测。这个预测模型妥善设定截断点的话,能有预测价值。AUC=0.5,跟随机猜测一样(例:抛硬币),模型没有预测价值。AUC<0.5,比随机猜测还差,但只要总是反预测而行,就优于随机预测。 图4 包含AUC值的ROC曲线 [参考资料]( https://mp.weixin.qq.com/s?src=11&timestamp=1584533576&ver=2224&signature=6PwC6AuccTKFKXc0sXP0Cp7rEVSF3Qp2QFHfyfE 7Bq3d1cN-XspGn-EV2gqpTVgaS2q 1ZBqgxp7bx3zDNkhfOxz7DM62BCpshh*EiK7oj9QD517iKBdoR58gaYLBMM&new=1 )
2023-08-04 09:09:541

envi监督分类后,进行混淆矩阵精度验证,除了总体精度和kappa系数,怎么看各分类的精度大小??

如下,还有生产者精度和用户精度 Class Reference Classified Number Producers Users Name Totals Totals Correct Accuracy Accuracy ---------- ---------- ---------- ------- --------- ----- Unclassified 0 0 0 --- --- forest 3 1 1 33.33% 100.00% grass 5 4 3 60.00% 75.00% yanshi 22 22 20 90.91% 90.91% ruotu 9 8 5 55.56% 62.50% nongzuowu 11 15 10 90.91% 66.67% river 0 0 0 --- --- Totals 50 50 39Overall Classification Accuracy = 78.00%生产则精度=正确分类数/某类别总数用户精度=正确分类数/(正确分类数+错分到某类别总数)当然是生产则精度和用户精度都大最好 当然是最大似然法最好,马氏距离、最小距离法都是最大似然法的简化。平行管道法也不如最大似然法。
2023-08-04 09:10:091

分类精度评价

通过比较原始遥感图像和经过MNF变换后的图像(图2.4)及其经过MNF_SAM(图版1.1)、SVM(图版1.2)、MNF_SVM(图版1.3)分类后的分类结果,可以明显地发现基于最小噪声分类的支持向量机算法(MNF_SVM)最接近真实的地物信息,支持向量机算法的分类结果也好于光谱角制图法的分类结果。分类结果的精度是通过三种分类模型的混淆矩阵来进行计算的。MNF_SAM分类结果的混淆矩阵见表2.2,SVM分类结果的混淆矩阵见表2.3,MNF_SVM分类结果的混淆矩阵见表2.4。表2.2 MNF_SAM分类精度的混淆矩阵 (单位:像元数目/%)注:总体精度=8472/9368=90.44%;Kappa系数=0.89。表2.3 SVM分类精度的混淆矩阵 (单位:像元数目/%)注:总体精度=8896/9368=94.96%;Kappa系数=0.94。表2.4 MNF_SVM分类精度的混淆矩阵 (单位:像元数目/%)注:总体精度=8929/9368=95.31%;Kappa系数=0.95。从表2.2~2.4中可以明显的得出,MNF _ SAM的总体分类精度=8472/9368 =90.44%,Kappa系数=0.89;SVM的总体分类精度=8896/9368=94.96%,Kappa系数=0.94;MNF_SVM总体分类精度=8929/9368=95.31%,Kappa系数=0.95。即:(1)SVM的总体分类精度要比MNF_SAM的总体分类精度高4.53%,Kappa系数提高0.05;(2)MNF_SVM的总体分类精度要比MNF_SAM的总体分类精度高4.88%,Kappa系数提高0.06;(3)MNF_SVM的总体分类精度要比SVM的总体分类精度高0.35%,Kappa系数提高0.01。MNF_SAM分类结果显示树木和草地的地物分类有许多错误的分类点,在SVM的分类结果图中也有类似的错误,而它的错误信息要比MNF_SAM分类图少;但是这种现象在MNF_SVM分类图中虽然也存在,但是错误量极少。尽管MNF_SVM的分类方法不能做到百分之百的分类正确性,但是相对于MNF_SAM和SVM,不失为一种很好的分类方法,在三种分类方法中是最佳的一种。由此可见,无论从总体分类考虑还是具体地物类别考虑,MNF_SVM方法和SVM方法分类精度都高于MNF_SAM方法,这说明了SVM方法在高光谱影像分类中有着突出表现,同时MNF_SVM方法比SVM方法有更好的表现,其原因主要是因为MNF _SVM方法在分类前经过了MNF变换,去除了噪音波段,对原始信息进行了优化处理,选择了有效的特征信息参加分类,这不仅可以降低高光谱数据的维数,还可以在一定程度上克服Hughes现象,最终达到了高维信息的数据降维和高效利用以及高精度分类的目的。
2023-08-04 09:10:221

牢记分类指标:准确率、精确率、召回率、F1 score以及ROC

我们倾向于使用准确率,是因为熟悉它的定义,而不是因为它是评估模型的最佳工具!精度(查准率)和召回率(查全率)等指标对衡量机器学习的模型性能是非常基本的,特别是在不平衡分布数据集的案例中,在周志华教授的「西瓜书」中就特别详细地介绍了这些概念。为分类任务选择正确的衡量指标 倘若某人声称创建了一个能够识别登上飞机的恐怖分子的模型,并且准确率(accuracy)高达 99%。你相信吗?好了,有这么一个模型:将从美国机场起飞的所有乘客简单地标注为非恐怖分子。已知美国全年平均有 8 亿人次的乘客,并且在 2000-2017 年间共发现了 19 名恐怖分子,这个模型达到了接近完美的准确率——99.9999999%。这听起来确实令人印象深刻,但是我怀疑美国国土安全局不会在近期购买这个模型。尽管这个模型拥有接近完美的准确率,但是在这个问题中准确率显然不是一个合适的度量指标。 恐怖分子检测是一个不平衡的分类问题:我们需要鉴别的类别有两个——恐怖分子和非恐怖分子,其中一个类别代表了极大多数的数据点。另一个不平衡分类问题出现在当疾病在公众中的发病率很低时的疾病监测。在这两种情况下,正例类别——疾病或恐怖分子,远远少于负例类别的数量。这种问题是数据科学中比较常见的例子,其中准确率并不是评估模型性能的很好的衡量标准。 直观地说,我们知道在恐怖分子检测的问题中宣布所有的数据点为负例(非恐怖分子)是毫无裨益的,相反,我们应该聚焦于正例(恐怖分子)的识别。直觉告诉我们,我们应该最大化的是统计学上称为召回率或查全率(recall)的衡量指标,或者是最大化模型找到数据集中所有相关案例的能力。召回率的准确定义是:真正例除以(真正例+假反例)的和,如下图所示。真正例(true positives)是被真确分类的正例数据点,假反例(false negatives)是被错误分类的负例数据点。在恐怖分子检测的例子中,TP 是被正确识别的恐怖分子,FN 是模型误分类为非恐怖分子的恐怖分子的数据点。召回率可以被理解为模型找到数据集中所有感兴趣的数据点的能力。你可能注意到了这个等式中的一些细节:如果我们将所有的个体都预测为恐怖分子,那么模型的召回率就是 1.0!这样我们就得到了一个完美的模型吗?当然,不是!与数据科学中的绝大多数概念一样,在我们想要最大化的指标之间存在一个权衡。在召回率的例子中,当召回率增大的时候,精度就会减小。同样,直觉告诉我们,一个将 100% 的乘客标记为恐怖分子的模型可能是不可用的,因为我们必须禁止每一个乘客的飞行。统计学为我们提供了表达直觉的词汇:这个新的模型是低精度(precision)的,或者说较低的仅识别相关数据点的能力。 精度被定义为真正例除以(真正例+假正例)的和,如下图所示。假正例(FP)指的是模型将实际上是反例的样本误判为正例的情况,或者说,在我们的例子中指的是那些被模型判断为恐怖分子,而实际上不是恐怖分子的个体。召回率(查全率)表达的是模型找到数据集中相关实例的能力,而精度(查准率)表达模型找到的数据点中实际相关的比例。现在我们可以看到,第一个模型给所有的个体标上了非恐怖分子的标签,这个模型是不能使用的。尽管它有着近乎完美的准确率,但是它的精度和召回率都是零,因为没有 TP(真正例)!假设我们轻微地修改一下模型,然后将一个个体正确地识别为恐怖分子。现在,精度是 1(没有假正例,FP),但是召回率很低,因为实际上会有很多假反例(FN)。假设我们走到了另一个极端,将所有的乘客标记为恐怖分子,召回率就会是 1——我们将抓住每一个恐怖分子,但是精度会特别低,我们最终会拘留很多无辜的人。换言之,随着精度的增加,召回率会降低,反之亦然。结合精度和召回率 在某些情况中,我们也许需要以牺牲另一个指标为代价来最大化精度或者召回率。例如,在之前的例子中,在对患者进行随访检查的初步疾病筛查中,我们可能希望得到接近于 1 的召回率—我们想找到所有实际患病的患者。如果随访检查的代价不是很高,我们可以接受较低的精度。然而,如果我们想要找到精度和召回率的最佳组合,我们可以使用 F1 score 来对两者进行结合。 F1 score 是对精度和召回率的调和平均:我们使用调和平均而不是简单的算术平均的原因是:调和平均可以惩罚极端情况。一个具有 1.0 的精度,而召回率为 0 的分类器,这两个指标的算术平均是 0.5,但是 F1 score 会是 0。F1 score 给了精度和召回率相同的权重,它是通用 Fβ指标的一个特殊情况,在 Fβ中,β 可以用来给召回率和精度更多或者更少的权重。(还有其他方式可以结合精度和召回率,例如二者的几何平均,但是 F1 score 是最常用的。) 如果我们想创建一个具有最佳的精度—召回率平衡的模型,那么就要尝试将 F1 score 最大化。 可视化精度和召回率 我已经向你抛出了几个新术语,接下来我将通过一个例子向你展示它们在实际中是如何使用的。在使用之前,我们要简单地谈一谈精度和召回率的概念。 首先要介绍一下混淆矩阵(confusion matrix),给定一个模型的预测标签时,它可以被用来快速计算精度和召回率。二分类的混淆矩阵总共包含四个不同的结果:真正例(TP)、假正例(FP)、真反例(TN),以及假反例(FN)。列表示真实值,行表示预测值。行和列的交叉点指的就是这四种结果。例如,如果我们将一个数据点预测为正例,但是它实际上是反例,那么这就是一个假正例。用混淆矩阵计算精度和召回率需要找到矩阵中对应的值,并应用以下的等式进行计算。其他的用来展示分类模型性能的可视化技术是受试者特征曲线(ROC 曲线,Receiver Operating Characteristic curve)。别被这个复杂的名词吓到!这个思想是相当简单的:ROC 曲线展示了当改变在模型中识别为正例的阈值时,召回率和精度的关系会如何变化。如果我们有一个用来识别疾病的模型,我们的模型可能会为每一种疾病输出介于 0 到 1 之间的一个分数,为了将某个病人标记为患有某种疾病(一个正例标签),我们为每种疾病在这个范围内设置一个阈值,通过改变这个阈值,我们可以尝试实现合适的精度和召回率之间的平衡。 ROC 曲线在 Y 轴上画出了真正例率(TPR),在 X 轴上画出了假正例率 (FPR)。TPR 是召回率,FPR 是反例被报告为正例的概率。这两者都可以通过混淆矩阵计算得到。下图是一个典型的 ROC 曲线:黑色对角线表示随机分类器,红色和蓝色曲线表示两种不同的分类模型。对于给定的模型,只能对应一条曲线。但是我们可以通过调整对正例进行分类的阈值来沿着曲线移动。通常,当降低阈值时,会沿着曲线向右和向上移动。 在阈值为 1.0 的情况下,我们将位于图的左下方,因为没有将任何数据点识别为正例,这导致没有真正例,也没有假正例(TPR = FPR = 0)。当降低阈值时,我们将更多的数据点识别为正例,导致更多的真正例,但也有更多的假正例 ( TPR 和 FPR 增加)。最终,在阈值 0.0 处,我们将所有数据点识别为正,并发现位于 ROC 曲线的右上角 ( TPR = FPR = 1.0 )。 最后,我们可以通过计算曲线下面积 ( AUC ) 来量化模型的 ROC 曲线,这是一个介于 0 和 1 之间的度量,数值越大,表示分类性能越好。在上图中,蓝色曲线的 AUC 将大于红色曲线的 AUC,这意味着蓝色模型在实现准确度和召回率的权衡方面更好。随机分类器 (黑线) 实现 0.5 的 AUC。 回顾 我们已经介绍了几个判断模型性能的属性,每个属性的定义都不是很复杂,但是结合在一起就有点复杂了。让我们通过一个例子做一个快速的回顾来巩固一下这些思想。 对于二分类问题: 真正例(TP):实际上是正例的数据点被标记为正例 假正例(FP):实际上是反例的数据点被标记为正例 真反例(TN):实际上是反例的数据点被标记为反例 假反例(FN):实际上是正例的数据点被标记为反例 召回率和精度衡量指标: 召回率(R):分类模型识别所有相关实例的能力 精度(P):分类模型仅仅返回相关实例的能力 F1 score:使用调和平均结合召回率和精度的指标 召回率和精度的可视化: 混淆矩阵:展示分类模型的真实和预测标签的对应结果。 受试者特征曲线(ROC 曲线):画出真正例率(TPR)和假正例率(FPR),并将此作为模型归类正例阈值的函数。 曲线下面积(AUC):基于 ROC 曲线下方的面积,计算分类模型总体性能的指标。 实例应用 我们的任务是为 100 名病人诊断一种在普通人群中患病率是 50% 的疾病。我们将假设一个黑盒模型,我们输入关于患者的信息,并得到 0 到 1 之间的分数。我们可以改变将患者标记为正例 (有疾病) 的阈值,以最大化分类器性能。我们将以 0.1 为增量从 0.0 到 1.0 评估阈值,在每个步骤中计算 ROC 曲线上的精度、召回率、F1 score 以及在 ROC 曲线上的位置。以下是每个阈值的分类结果:模型在每个阈值下的结果 我们将以阈值为 0.5 为例计算对应的召回率、精度、真正例率、假正例率。首先我们得到混淆矩阵:阈值为 0.5 时的混淆矩阵 我们可以利用混淆矩阵中的数值来计算召回率、精度和 F1 score:然后计算真正例率和假正例率来确定阈值为 0.5 时,模型在 ROC 曲线上对应的点。 为了得到整个 ROC 曲线,我们在每个阈值下都进行这个过程。你可能会想,这是相当乏味的,所以,我们用 python 语言来代替手工计算。用来做这些计算的 Juoyter Notebook 放在了 github 上,每个人都可以看到。最终的 ROC 曲线如下所示,点上面的数字是阈值。在这里我们可以看到,所有的概念都汇集到一起了!在阈值等于 1.0 的点,我们没有将任何病人归类为患病,因此模型的召回率和精度都是 0。随着阈值的减小,召回率增加了,因为我们发现更多的患者患有该疾病。然而,随着召回率的增加,精度会降低,因为除了增加真正例之外,还会增加假正例。在阈值为 0.0 的时候,我们的召回率是完美的——我们发现所有的患者都患有这种疾病——但是精度很低,因为有很多假正例。通过更改阈值并选择最大化 F1 score 的阈值,我们可以沿着给定模型的曲线移动。要改变整个曲线,我们需要建立一个不同的模型。 在每个阈值下最终模型的统计量如下表:基于 F1 score,整体最佳的模型出现在阈值为 0.5 的地方。如果我们想要在更大程度上强调精度或者召回率,我们可以选择这些指标上最佳时对应的模型。 结论 我们倾向于使用准确率,因为每个人都知道它意味着什么,而不是因为它是完成任务的最佳工具!虽然更适合的度量指标 (如召回率和精度) 看起来可能很陌生,但我们已经直观地了解了为什么它们在某些问题 (如不平衡的分类任务) 中有着更好的表现。统计学为我们提供了计算这些指标的形式化定义和方程。数据科学是关于寻找解决问题的正确工具的学科,而且在开发分类模型时,我们常常需要超越准确率(accuracy)的单一指标。了解召回率、精度、F1 score 和 ROC 曲线使我们能够评估分类模型,并应使我们怀疑是否有人仅仅在吹捧模型的准确率,尤其是对于不平衡的问题。正如我们所看到的,准确率(accuracy)并不能对几个关键问题提供有用的评估,但现在我们知道如何使用更聪明的衡量指标! 原文参考:https://towardsdatascience.com/beyond-accuracy-precision-and-recall-3da06bea9f6c
2023-08-04 09:10:291

遥感软件中混淆矩阵是如何产生的

遥感混淆矩阵主要用于图像精度评价中,主要用于比较分类结果和地表真实信息。kappa系数常用来衡量精度的大小。在混淆矩阵中,有四个指标:总体精度,生产者精度,用户精度 总体精度。具体遥感专业软件ENVI操作,请参考wenku.baidu.com/view/dbe0cc0102020740be1e9bc6.html
2023-08-04 09:10:582

混淆矩阵的介绍

在人工智能中,混淆矩阵(confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。
2023-08-04 09:11:121

混淆矩阵相关指标(sen,spe,auc,recall,f1)计算(R语言)

ConfusionMatrix 由上表可以计算的指标有: 参考资料:
2023-08-04 09:11:341

遥感图像的岩性分类

在地面无植被覆盖的岩石裸露地区,利用不同岩石间光谱特性差异,可对岩性进行识别分类。例如在南极裸岩区,岩体无任何植被或其他地物覆盖,在南极拉斯曼丘陵裸岩区的米洛半岛试验区,用TM2,TM3,TM4,TM5,TM7五个波段的图像数据,收集片麻状花岗岩、正长花岗岩、富Fe-Al片麻岩、混合岩和条带状混合岩5 种岩石类型的样区。对样区统计结果,其均值和标准偏差如表8-1所示。利用各类岩石的均值绘制的光谱响应曲线如图8-3所示。从光谱响应曲线上分析,尽管5类岩石光谱亮度的变化相似,但类间相离还是较远的,尤其是TM3,TM4,TM5三个波段。第2类正长花岗岩与其他4类岩石的光谱变化和走向差别较大。因此利用它们的光谱特性是能将5类岩石区分和识别出来的。为此使用最大似然法自动分类,其分类的可信度见表8-2所示的混淆矩阵。从混淆矩阵中可以看出前3类岩石比较纯,而后两类岩石较杂。分类结果并经栅格数据-矢量数据变换后输出的岩性分类图如图8-4所示。经对在米洛半岛上布设的10条测线的检测比较,分布在米洛半岛东部的浅色片麻状花岗岩与条带状混合片麻岩的界线清楚,自动分类界线与实地界线吻合。区内超过30m2以上的暗色麻粒岩的条带和团块,在影像上有显示,但小于30m2时被划分入片麻状花岗岩。富Fe-Al片麻岩分布较广与条带状混合片麻岩在一起,但分类图界线与实地界线也能吻合。正长花岗岩和花岗伟晶岩两种岩脉的颜色和矿物成分相似,遥感图像难于区分,划归同一类。表8-1 五类岩石的光谱亮度均值和标准差图8-3 五类岩性的光谱响应曲线1—片麻状花岗岩;2—正长花岗岩;3—富Fe-Al片麻岩;4—混合岩;5—条带状混合岩表8-2 五类岩石分类结果的混淆矩阵岩性分类识别还可用热惯量卫星数据进行。岩石昼夜温差较大,各种岩石温度的日夜变化又不一样,则利用热惯量卫星白天和夜晚两次所采集的同一地区岩石热辐射测量值的变差可区分不同的岩石类型。图8-5为几种岩石和水的日夜温度变化。图8-4 米洛半岛岩性分布图图8-5 几种岩石和水的日夜温度变化
2023-08-04 09:11:421

混淆矩阵和热力图区别

表示方式和用途不同。1、表示方式。混淆矩阵是一个二维矩阵。热力图是一种色彩编码的二维图像。2、用途不同。混淆矩阵用于表示分类模型在预测时的正确和错误情况。热力图用于表示数据的分布情况。
2023-08-04 09:12:221

spss modelor 决策树 混淆矩阵怎么做

建立这个流程即可
2023-08-04 09:12:291

数据挖掘导论

指通过从大量数据中通过算法搜索隐藏与其中信息的过程。其中机器学习是支撑数据挖掘的主要手段。指让机器通过某种策略学习历史数据后通过建立模型能够进行一定的预测或者识别的能力。 模型中损失是对糟糕预测的惩罚,损失是一个数值。如果模型预测的越准确,则损失的越低。 训练模型表示通过有标签的样本学习所有的权重和偏差的理想值,尽可能的减少损失。 即为模型的y值,函数x最后对应的结论。 能够以有意义的方式汇总各种损失。 例如MSE(均方误差):指的是每个样本平均平方损失。使用数据集来训练模型时,一部分用来训练,另一部分则用于验证。 分为训练集、测试集。 通常将数据集的70%划分为训练集,30%为测试集。另外需要注意对于具有时序性的数据集,需要按照时间划分。 划分完数据集后,需要在训练集上调整,测试集上验证 借助于这种划分可以不断的调整模型,缺点是由于不断使用测试集调整模型,可能造成模型的过拟合。 因此为了解决上述情况,需要引入验证集。 通常将数据集划分为70%训练集,10%验证集,20%测试集。 缺点将浪费10%的数据 其基本思想即将训练集和 测试集调换。原先的测试集用来做训练集,原先的训练集用来做测试集。 其中k折交叉验证,这种动态验证方式可以降低数据划分带来的影响。 通过将数据集均匀的分成5份 不重复的取其中一份作为测试集,用其他四份作为训练集,之后计算该模型在测试集上的MSE 将5次的MSE平均得到最后的MSE 当模型建立好后模型的试用情况,泛化能力可以理解为模型对未知数据的预测情况。 过拟合指数据在训练集表现很好,但是在交叉验证和集和测试集上表现一般,即泛化能力较弱。 产生过拟合的条件包括:训练集数据较少,训练数据中噪声干扰大;模型过于复杂。 如何降低过拟合:1、获取更多的数据 2、选择合适的模型:根据奥卡姆剃刀法则:对于能够解释已知观测现象的假设中,我们应该挑选最简单的。 模型主要分为两大类:监督模型——分类模型、回归模型;无监督学习——从一堆数据中学习其中的统计规律,可以是类别、转化或者概率。 监督学习:指从对应的x、y关系中学习统计规律,然后预测新给出的x对应的y值 常见的监督学习:K—近邻(KNN)、线性回归(回归)、逻辑回归(分类模型)、支持向量机、决策树和随机森林、神经网络 常见的无监督学习:1、聚类算法:k-平均算法(k—means)、密度聚类算法、最大期望值算法;2、降维:主成分分析(PCA),关联规则学习——Apriori1、一级指标 a、混淆矩阵:混淆矩阵是分别统计分类模型归错类、归对类的观测值个数,然后把结果放置一个表中展示。 模型预测和实际结果一致为TP,即为真阳性;模型预测为是,实际为否为假阳性,其次为假阴性,真阴性。 模型中TP与TN数量越大越好。 面对大量数据时,混淆矩阵往往不够用。可以采取以下指标 准确率:(TP+TN)/(TP+TN+FP+FN)。分类模型中判断正确的结果占总观测值的比重。 精确率:TP/(TP+TN)表示预测为正的样本中有多少是对的 查全率:TPR=TP/(TP+FN)表示样本中有多少正例被正确预测 假正率:FPR=FP/(FP+FN) 表示被错误分到正样本中的真实负样本。 1、平均绝对误差MAE2、均方误差MSE3、均方根误差RMSE4、中位绝对误差
2023-08-04 09:12:391

统计分析中Kappa值的意义是什么?

Kappa值用于计算两观察者的吻合率。很多时候,我们直觉用准确率来判断,但当答案的分布很不均匀时,准确率不一定是一个好的量度值。kappa系数是一种衡量分类精度的指标。它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类地表真实像元总数与该类中被分类像元总数之积对所有类别求和的结果。再除以总像元数的平方减去某一类地表真实像元总数与该类中被分类像元总数之积对所有类别求和的结果所得到的 。结果分析kappa计算结果为-1~1,但通常kappa是落在 0~1 间,可分为五组来表示不同级别的一致性:0.0~0.20极低的一致性(slight)、0.21~0.40一般的一致性(fair)、0.41~0.60 中等的一致性(moderate)、0.61~0.80 高度的一致性(substantial)和0.81~1几乎完全一致(almost perfect)。
2023-08-04 09:12:541

ENVI 利用混淆矩阵测试分类精度,ROI选点应该选几个?非得要选择一百个点吗?

这个主要是经验吧,并没有具体的标准。一般情况下,随机点:一是要覆盖整个区域,不能集中于某片区域;二是要涵盖所有的地类类型,最好是包含每种地类类型中的不同地表情况。这就可以了,主要思想就是选点能够代表整个区域的情况。
2023-08-04 09:13:261

分类指标

评估结果用于反应模型的好坏,必须设计合适的评估指标来测量该模型的好坏。模型的好坏是相对的,使用不同的评估指标对模型的判定会得到不一样的结果。 评估指标根据任务类型可以分为:分类指标、回归指标、聚类指标和排序指标等,本文主要关注分类指标。 分类的评价指标一般是分类准确率(accuracy):对于给定的数据集,分类正确的样本数与总的样本数之比。准确率在二分类与多分类都能应用。 对于二分类常用的指标为精确率(precision)与召回率(recall)。 根据上图的混淆矩阵可以得出精确率与召回率的定义: TP—将正类预测为正类的样本数; FN—将正类预测为负类的样本数; FP—将负类预测为正类的样本数; TN—将负类预测为负类的样本数; 精确率定义为: 召回率定义为: 精确率可以理解为在所有预测为正类这个事件的准确率有多高,召回率可以理解为真正的正类有多少被挑选了出来。理想情况下,精确率和召回率都是越高越好,但是事实一般相反,精确率高的时候,召回率低;召回率高的时候,精确率低。因此需要结合实际业务看更关注哪一个指标来判定模型好坏,为了达到更好效果,设计了一些综合考虑精确率与召回率的指标,如 $F_1$ 值, $F_1$ 值是精确率和召回率的调和平均值: 精确率和召回率都高时, 值也会高。 [ROC曲线]作为常用的二分类评价指标,其全称为接收者操作特征曲线(Receiver Operating Characteristic)。该曲线纵坐标真正率(TPR),横坐标为假正率(FPR),其定义如下: 则ROC曲线位于横纵坐标阈值都为0-1之间,因此首先考虑4个特殊点(0,0)、(1, 1)、(0, 1)、(1, 0)。(0, 0)点表示TPR=FPR=0,即TP=FP=0,表示该分类器将所有样本都分为负类。同理,(1, 1)表示分类器将所有样本都分类为正类。(0, 1)点表示:FPR=0,TPR=1;意味着FP=0,FN=0,这样就是一个完美的分类器,正负类都分类完全正确。(1, 0)点表示TP=0, TN=0,这就是最糟糕的一个分类器,完美错过所有正确答案。综上,ROC曲线上的点越靠近左上方,那么该分类器就越好。 每一对TPR与FPR值可以描绘出一个点,为了得到一条ROC曲线,需要调整不同的预测概率,来得到不同TPR于FPR值对,这样就可以得到一条ROC曲线。AUC(Area under the Curve of ROC)即ROC曲线下的面积,取值越大说明正确率越高。 sklearn.metrics模块实现了一些loss, score以及一些工具函数来计算分类性能。 一些二分类(binary classification)使用的case:
2023-08-04 09:13:341

神经网络画出的混淆矩阵图怎么看

肯定是公式有错,NaN是not a number的意思,肯定是某个地方写错了。不过,既然是matlab编程,为什么不使用神经网络工具...
2023-08-04 09:13:441

matlab混淆矩阵怎么变大

用for是可以实现的,但Matlab中的下标是按列存的,所以我的思路是用x,y生成矩阵的下标,并进行符值。x,y是任意等长的向量。
2023-08-04 09:13:541

20数据判别分析

Mahalanobis 距离 定义:马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系并且是尺度无关,即独立于测量尺度。 对于一个均值为 μ,协方差矩阵为 Σ 的多变量向量,其马氏距离公式为: 距离判别 将距离判别中的算法编写成名为 discriminiant.distance 的函数,函数中,输入变量 TrnX1,TrnX2 分别表示 X1 类和 X2 类的训练样本,格式可以是矩阵、数据框,输入变量 TstX 是测试样本,格式是矩阵、数据框或向量,var.equal 是逻辑变量,TRUE 表示协方差阵相同,默认为不同,函数输出以 “1” 和“2” 构成的一维矩阵,“1” 代表测试样本属于X1 类,“2” 代表属于 X2 类。 距离判别主要用到了 mahalanobis() 函数,格式为: mahalanobis(data,center,cov) data:样本数据构成的向量或矩阵 center:样本中心 cov:样本协方差 通过与原始样本对比,可以看出样本 11 12 和 16 被判错 样本 11 12 19 25 27 30 32 被判错 Bayes 判别 将Bayes 判别中的算法编写成名为 discriminiant.bayes 的函数,函数中,输入变量 TrnX1,TrnX2 分别表示 X1 类和 X2 类的训练样本,格式可以是矩阵、数据框,输入变量 TstX 是测试样本,格式是矩阵、数据框或向量,rate 是损失比和先验概率的乘积,默认为 1 ,var.equal 是逻辑变量,TRUE 表示协方差阵相同,默认为不同,函数输出以 “1” 和“2” 构成的一维矩阵,“1” 代表测试样本 属于X1 类,“2” 代表属于 X2 类。 样本 12 19 25 27 28 35 被判错 样本 11 12 25 30 32 被判错 Fisher 判别 Fisher (费歇儿)判别的准则要求类内方差尽量小、类间方差尽量大。将 Fisher 判别中的算法编写成名为 discriminiant.fisher 的函数,函数中,输入变量 TrnX1,TrnX2 分别表示 X1 类和 X2 类的训练样本,格式可以是矩阵、数据框,输入变量 TstX 是测试样本,格式是矩阵、数据框或向量,var.equal 是逻辑变量,TRUE 表示协方差阵相同,默认为不同,函数输出以 “1” 和“2” 构成的一维矩阵,“1” 代表测试样本 属于X1 类,“2” 代表属于 X2 类。 样本 11 12 19 25 27 30 32 被判错 三种判别法的对比 1 、距离判别法与 Fisher 判别法未对总体的分布提出特定的要求,而 Bayes 判别法要求总体的分布明确。 2 、在正态等协差阵的条件下,Bayes 判别法(不考虑先验概率的影响)等价于距离判别准则和 Fisher 线性判别法。 3 、当 K 个总体的均值向量共线性较高时,Fisher 判别法可用较少的判别函数进行判别。 4 、距离判别法和 Fisher 判别法的不足是没有考虑各总体出现的概率大小,也给不出预测的后验概率及错判率的估计,以及错判之后的损失。而这些不足恰是 Bayes 的优点。但是若给定的先验概率不符合客观实际时,Bayes 判别法也可能会导致错误的结论。 当不同类样本的协方差矩阵相同时,我们可以在 R 中使用 MASS 包的 lda 函数实现线性判别。利用 table 函数建立混淆矩阵,比对真实类别和预测类别。 线性判对率 Bayes 判对率 一元线性判别分析( LDA 技术) 运用 Bayes 定理进行分类,假设观测分成 K 类,K>=2,即定性响应变量 Y 可以取 k 个不同的无序值。设为 πk 为一个随机选择的观测来自第 k 类的先验概率 (prior),记为 πk=P(Y=k)。设 f(X)=Pr(X=x|Y=k)为表示第 k 类观测的 X 的概率密度。 贝叶斯定理公式: 由于 Smarket 数据集中数据较多我们采用 lda 函数,选取 Lag1、Lag2 变量样本进行分析,将 2005 年前的数据作为训练样本,2005 年的数据作为测试样本。 Group means 对每类每个变量计算平均,是用来估计参数 μ 。通过 Group means 矩阵可看出:当股票下跌时,前两天的投资回报率会趋向于正;当股票上涨时,前两天的投资回报率会趋向于负。Coefficients of linear discriminants 则是线性模型的系数,说明当 -0.642Log-0.513Log 很大时,LDA分类器预测上涨;-0.642Log-0.513Log 很小时,预测下跌。
2023-08-04 09:14:011

符号标志的评价方法有:()法、主观评价法、反应时法、混淆矩阵法。

符号标志的评价方法有:()法、主观评价法、反应时法、混淆矩阵法。 A.头脑风暴法 B.群体决策法 C.实验评估法 D.直选法 正确答案:D
2023-08-04 09:14:091

arcmap软件中的“面积制表”有什么实际意义

tabulate area 是统计第一个栅格数据中的某个值变为第二个栅格数据的某个值的个数的,用来统计值的变化方向。可以看一下工具的帮助。比如第一个栅格中不同值的个数为m,分别为a1,a2,a3,......,am,第二个栅格中不同值的个数为n,分别b1,b2,b3,......,bn,这个工具会生成一个m×n的表,分别记录a1,a2,a3,......,am变成b1,b2,b3,......,bn的象元个数,第 i 行第 j 列代表ai变为bj象元的个数。可以用于计算土地利用变化中的转移矩阵、平衡表、遥感图像分类精度评价中的混淆矩阵。
2023-08-04 09:14:191

遥感影像监督分类有什么好的方法

一般商业软件都是提供常规的最大似然法或者神经网络。现在还有一种面向对象的监督分类更好更准确。可以查查。
2023-08-04 09:14:402

谁能帮我翻一下weka的结果,不要用翻译软件,真正懂weka的来帮我翻译下,答得好的有加分,我有1000的财富

==== = = = ===管理信息方案:weka.classifiers.functions.libsvm- 0-2-3-0 -0-0.5 -40-1-0.0010 -0.1关系:玻璃例子:214属性:10国际扶轮钠毫克铝硅钾钙学士学位铁型测试模式:10倍交叉验证===分类器模型(训练集)===预选的包装,原代码由亚西尔el-manzalawy(=wlsvm)时间来建立模型:0.02秒==== = = = ===分层交叉验证==== = = = ===总结正确的分类实例14869.1589%不正确的分类实例6630.8411%卡伯统计0.3579平均绝对误差为0.0881根平均平方误差0.2968相对误差绝对值60.7715%相对误差平方根111.5949%总人数的情况下,214==== = = = ===详细准确的类普瑞尔率计划生育率精度召回的F -02面积课件0.8470.50.6760.8470.7520.674建立风漂浮0.50.1530.7270.50.5930.674建立风非浮动00000?车辆风漂浮00000?非浮动车的风00000?容器00000?餐具00000?前大灯加权平均0.6920.3440.6990.6920.680.674==== = = = ===混淆矩阵单位按克<——列为1001800000|=建立风漂浮484800000|乙=建立非浮动0000000|=车风漂浮0000000|=非浮动车的风0000000|电子容器0000000|=餐具0000000|克=大灯
2023-08-04 09:14:482

神经网络模型测试集的成功率怎么看

神经网络模型测试集的成功率看法是准确率越高,表示模型在测试集上的预测越准确,性能越好;而准确率越低,表示模型在测试集上的预测不够准确,性能较差。神经网络模型在测试集上的成功率被称为"准确率"(Accuracy),它是指模型在测试集上正确预测的样本数与测试集中总样本数的比例。准确率是衡量分类模型性能的一个重要指标,它可以告诉我们模型在测试集上的预测能力。在评估神经网络模型时,除了准确率,还可以考虑其他指标,如精确率、召回率、F1分数等,特别是在样本不平衡的情况下,这些指标可以更全面地反映模型的性能。除了单一指标外,还可以通过绘制混淆矩阵、ROC曲线等来更直观地了解模型的表现。
2023-08-04 09:14:551

俩人评分都差不多但kappa系数不好怎么办

提高影像分辨率,也可以做一些影像增强。Kappa系数:是一种计算分类精度的方法。它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类中地表真实像元总数与该类中被分类像元总数之积对所有类别求和的结果,再除以总像元数的平方差减去某一类中地表真实像元总数与该类中被分类像元总数之积对所有类别求和的结果所得到的。
2023-08-04 09:15:031

为什么对已经估计出参数的模型还要进行检验?你能举一个例子说明各种检验的必要性吗?

是的。重要性:首先,在设定模型时,所引用的经济理论可能是不完善的;或者虽然经济理论是正确的但是我们对问题认识的局限性导致了结果的特殊性,可能有偏差。其次,我们用以估计参数的统计数据或其他信息可能并不十分可靠,或者较多的采用了经济突变时期的数据,不能真实代表所研究的经济关系,或者由于样本太小,会有抽样的偶然误差。因此需要用检验对估计的参数进行评判,判定是否有经济意义,判断统计上是否有足够的可靠性。扩展资料:对于回归问题,一般采用均方误差验证。对于分类问题,首先要明确两个概念:查准率和查全率。数据可以分成四种类别:真正例TP、真反例TN、假正例FP、假反例FN。TP是指预测结果是正例,实际也是正例的数据;TN指预测结果是反例,实际也是反例的数据;FP是指预测结果是正例,实际是反例的数据;FN指预测结果是反例,实际是正例的数据。可以构成一个混淆矩阵。查全率表示在实际是正例/反例的数据中预测为正例/反例的比例,就好比瓜农拿了几个好瓜给我们,我们觉得有几个瓜比较甜,实际上全都很甜。查准率和查全率是比较矛盾的两个指标,一方较大那么另一方往往会较小。P-R曲线可以用来评估两个学习器的效果好坏,以查准率为横轴、查全率为纵轴。如果一条学习器的曲线能完全包住另一条曲线,那么前者的效果比后者好。如果两条曲线有交叉,那么平衡点离两个坐标轴较远的学习器效果较好。对于roc曲线而言,如果一个学习器的曲线能够完全包住另一条曲线,那么前者的效果好于后者,这和P-R曲线相同。参考资料来源:百度百科——模型检验
2023-08-04 09:15:131

kappa值为0.70时可靠度

可靠度优。kappa计算结果为-1~1,但通常kappa是落在 0~1 间,可分为五组来表示不同级别的一致性:0.0~0.20极低的一致性(slight)、0.21~0.40一般的一致性(fair)、0.41~0.60 中等的一致性(moderate)、0.61~0.80 高度的一致性(substantial)和0.81~1几乎完全一致(almost perfect)。Kappa系数用于一致性检验,也可以用于衡量分类精度,但kappa系数的计算是基于混淆矩阵的。
2023-08-04 09:15:261

实验十八 遥感图像非监督分类处理

一、实验目的通过使用ENVI的两种遥感非监督分类器——IsoData非监督分类和K-Means非监督分类命令,加深对遥感非监督分类原理和对地质应用的理解,了解其技术实现过程,初步掌握其ENVI功能命令的基本使用操作。二、实验内容①桂林市TM 遥感影像数据IsoData非监督分类;②桂林市TM 遥感影像数据KMeans非监督分类;③IsoData非监督分类与K-Means非监督分类效果比较分析。三、实验要求(①预习ISODATA和K-Means两种算法原理;②掌握ISODATA和K-Means分类处理的基本操作;③对两种分类结果进行比较分析;④编写实验报告。四、技术条件①微型计算机;②桂林市TM 遥感影像数据;③ENVI软件;④Photoshop软件(ver.6.0以上)和ACDSee软件(ver.4.0以上)。五、实验步骤非监督分类是根据图像数据的本身统计特征及点群的情况,从纯统计学的角度对图像数据进行类别划分。非监督分类不需要事先给定类别,由图像数据的统计特征来决定,即同类地物在相同的成像条件下具有相同或相近的光谱特征(如DN 值),归属于同一个光谱空间区域;不同地物由于光谱信息特征不同,归属于不同的光谱空间区域。非监督分类一般可分为四个步骤:执行非监督分类、类别定义、合并子类和评价结果。(一)执行非监督分类ENVI有ISODATA和K-Means两种非监督分类方法。1.ISODATA非监督分类ISODATA(iterative self-organizing data analysis technique)属于聚类分析方法。是按照像元之间的联系程度(亲疏程度)来进行归类的一种多元统计分析方法。ISODATA非监督分类计算数据空间中均匀分布的类均值,然后用最小距离技术将剩余像元迭代聚集,每次迭代都重新计算均值,且根据所得的新均值,对像元进行再分类。具体操作步骤如下:在ENVI主菜单栏中选择“Classification>Unsupervised>ISODATA”,在“Classificatoin Input File”对话框中选择待分类遥感影像,打开“ISODATA Parameters”对话框,如图18-1所示。图18-1 ISODATA参数对话框对图18-1中的参数进行如下说明:(1) Number of Classes:类数范围(最小值和最大值),一般输入最小数量不能小于最终分类数量,最大数量为最终分类数量的2~3倍。(2) Maximum Iterations:最大迭代次数值,迭代次数越大,得到的结果越精确。(3) Change Threshold%(0~100):变化阈值(0~100%),当每一类的变换像元数小于阈值时,结束迭代过程,该值越小得到的结果越精确。(4) Minimum #Pixel in Class:形成一类需要的最少像元数,如果某一类中的像元数少于最少像元数,该类将被删除,其中的像元被归并到距离最近的类中。(5) Maximum Class Stdv:最大分类标准差,以像素值为单位,如果某一类的标准差比该阈值大,该类将被拆分成两类。(6) Minimum Class Distance:类均值之间的最小距离,如果类均值之间的距离小于输入的最小值,则这一类就会被合并。(7) Maximum #Merge Pairs:合并成对的最大数。(8)Maximum Stdev From Mean:距离类别均值的最大标准差,为可选项,筛选小于这个标准差的像元参与分类。(9) Maximum Distance Error:允许的最大距离误差,为可选项,筛选小于这个最大距离误差的像元参与分类。(10)选择输出路径及文件名,单击【OK】按钮,执行ISODATA非监督分类。2.K-Means非监督分类K-Means算法接受输入量K;然后将n个数据对象划分为K个聚类以便使所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。具体操作步骤如下:在ENVI主菜单栏中选择“Classification>Unsupervised>K-Means”,在“Classification Input File”对话框中选择待分类遥感影像,打开“K-Means Parameters”对话框,如图18-2所示。图18-2 K-Means分类器参数设置对话框(1) Number of Classes:分类数量,一般输入为最终分类数量的2~3倍。(2) Maximum Iterations:最大迭代次数值,迭代次数越大,得到的结果越精确。(3) Maximum Stdev From Mean:距离类别均值的最大标准差,为可选项,筛选小于这个标准差的像元参与分类。(4) Maximum Distance Error:允许的最大距离误差,为可选项,筛选小于这个最大距离误差的像元参与分类。(5)选择输出路径及文件名,单击【OK】按钮,执行K-Means非监督分类。(二)定义类别与子类合并执行非监督分类后,得到的只是一个初步的分类结果,需要进行类别定义域合并子类的操作。1.类别定义类别定义的根据可以通过更高分辨率图像上目视解译获得,也可以通过野外实地调查获得。(1)打开分类图像即灌阳地区QuickBird遥感数据,并使之显示在“Display”中。(2)在分类图像的主窗口中,选择“Overlay>Classification”,在“Interactive Class Tool Input File”对话框中选择非监督分类结果,单击【OK】按钮打开“Interactive Class Tool”对话框,如图18-3所示。图18-3 交互式分类工具对话框(3)在“Interactive Class Tool”对话框中,勾选类别前面的“On”选择框,就能将此类结果叠加显示在“Display”分类图像窗口上,识别此分类类别。(4)在“Interactive Class Tool”对话框中,选择“Options>Edit Class Colors/Names”,打开“Class Color Map Editing”对话框,如图18-4所示。在“Class Color Map Editnig”对话框中,选择对应的类别,在“Class Name”中输入重新定义的类别名称,同时可以修改此类别显示的颜色,修改后点击【OK】按钮完成修改。(5)重复步骤(3)~步骤(4),定义其他类别。(6)完成各类别定义后,在“Interactive Class Tool”对话框中,选择“File>Save Change to File”,保存修改结果。2.合并子类在选择非监督分类类别数量时,一般选择为最终分类数量的2~3倍,因此在定义类别之后,需要将相同类别合并。(1)在 ENVI 主菜单栏中,选择“Classification > Post Classification > Combine Classes”,在“Combine Classes Input File”对话框中选择定义好的分类结果,单击【OK】按钮打开“Combine Classes Parameters”对话框(图18-5)。图18-4 编辑分类名称和颜色对话框图18-5 分类类别的合并对话框(2)在“Combine Classes Parameters”对话框中,从“Select Input Class”中选择合并的类别,从“Select Output Class”中选择并入的类别,单击【Add Combination】按钮添加到合并方案中,合并方案显示在“Combine Classes”列表中。(3)合并方案确定后,点击【OK】按钮,打开“Combine Classes output”对话框,在“Remove Empty Classes”选项中选择“Yes”,将无用类移除。(4)选择输出合并结果路径及文件夹名,点击【OK】按钮,执行合并子类。(三)分类后处理和评价分类结果分类后处理和评价分类结果的方法同监督分类一样,可参考实验十七中的“遥感影像监督分类”。完成遥感影像非监督分类后,分别利用ISODATA 和K-Means非监督分类方法对灌阳地区QuickBird遥感影像进行非监督分类处理,利用混淆矩阵对两种分类结果进行评价,得出总体分类精度和Kappa系数。比较两种分类结果,用W ORD文件记录,取名为《灌阳地区QuickBird遥感影像两种非监督分类方法分类结果评价》,存入自己的工作文件夹。六、实验报告(1)简述实验过程。(2)回答问题:①根据实验操作步骤及各步骤之间的关系,分析两种非监督分类方法具有的共同特点。②通过目视解译定性比较两种非监督分类方法的效果。实验报告格式见附录一。
2023-08-04 09:15:351

kappa系数,如何计算每一分类的kappa和总体kappa

哥们你现在知道怎么求的嘛?网上根本找不到资料。请求告知
2023-08-04 09:15:432

构建二元logit离散选择模型的基本步骤

构建二元logit离散选择模型的基本步骤:1、准备数据:获取数据集,并进行清洗和格式化。2、特征工程:选择有效特征,并进行特征处理和特征编码。3、模型训练:使用逻辑回归算法训练模型,并调整超参数。4、模型评估:使用混淆矩阵和ROC曲线等指标来评估模型的性能。5、模型优化:使用正则化、特征选择等方法来优化模型。二元logit离散选择模型:二元离散选择模型的拟合优度检验,也称伪R^2( pseudo R-squared)或麦克法登R^2(McFadden R-squared)。总体显著性检验 总体显著性检验通过Wald统计量、LR统计量进行。
2023-08-04 09:16:181

哪些因素影响古典信度模型的信度因子

影响古典信度模型的信度因子的因素:影响信度的主要因2113素。被试的样本影响信度5261估计的一个重要因素4102是被试样本的情况。1653团体的异质程度与分数的分布有关,一个团体越是异质,其分数分布的范围也就越大,信度系数也就越高。由于信度系数与样本团体的异质性有关,因此在使用测验时,不能认为当该测验在一个团体中有较高的信度时,在另一个团体中也具有较高的信度。此时,往往需要重新确定测量的信度。kappa一致性系数它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类地表真实像元总数与被误分成该类像元总数之积对所有类别求和的结果,再除以总像元数的平方减去某一类中地表真实像元总数与该类中被误分成该类像元总数之积对所有类别求和的结果所得到的。
2023-08-04 09:16:511

ROC vs. PRC

评价二元分类器性能的指标,常见的有:Accuracy,ROC curve(Sensitivity + Specificity)、AUC、PR curve(Precision + Recall)、F1 score。 其中,主要的争论在于,评价模型时应该选用ROC(即Sensitivity + Specificity)还是PRC(即Precision + Recall)。 把知乎上 「精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?」 下的回答都看了一遍,有人偏向ROC,有人偏向PRC。 但有两点基本是统一的: 这篇文章简单讨论一下不同情况下Sensitivity(也即Recall)、Specificity和Precision的变化情况,和由此得之的ROC、PRC选择偏好。 先放结论:总体而言,如果只能二选一,我会选择ROC。 先讲讲混淆矩阵。 混淆矩阵是用来总结一个分类器结果的矩阵。对于k元分类,它是一个k x k的表格,用来记录分类器的预测结果。 最常见的二元分类,它的混淆矩阵是一个2x2表: 二元分类器的大多数指标都是上述TP、FN、FP、TN的排列组合运算。 这篇文章涉及到ROC和PRC下的三个指标: Sensitivity(Recall)指的是,真实的class 1被正确分类的比例。 Specificity指的是,真实的class 0被正确分类的比例。 Precision指的是,被分类为class 1的数据中,被判断正确的数据的比例。 在实际工作中使用分类器做预测的时候,目的一般是为了识别class 1,比如识别一封邮件是否为垃圾邮件(是:1,否:0)。即,我们想要高Sensitivity(或高Recall)。 以下,我基于数据是否平衡,以及Recall和Specificity或高或低的不同情况(双低的情况就不讨论了),简单设计了相应的混淆矩阵,并计算了每种情况下的Recall值、Specificity值和Precision值,具体如图(请无视其中的F1 score): 在数据平衡的情况中,实际的class 1和class 0在数量上都为100。在数据不平衡的情况中,实际的class 1有20个、class 0有180个。 在数据平衡和不平衡的情况中,都有Recall和Specificity双高(0.8)、或二者中一个高(0.8)一个低(0.2)三种情况。Precision根据不同情况所得的混淆矩阵计算。 通过比较上述六种情况下各指标的值可以发现: 下面我通过两个不同的应用场景,来分析具体情况在应该选择ROC还是PRC。 乍看之下,在这个场景里PRC是更好的选择,因为我们对Precision和Recall的要求高。但结合上述实验结果可以发现,在Recall相同的情况下,无论数据是否平衡,Specificity和Precision变化方向总是相同的,但Precision的变化幅度比Specificity小。换言之,Recall不变的时候,看Specificity比看Precision要更容易对比模型优劣。因此,ROC是更好的选择。 在这个场景下,数据显然是极度不平衡的 ,毕竟地震源很少,并且,我们希望Recall越高越好,即使出现误判,我们也不希望放过一个地震源。这个时候,无论是ROC还是PRC都是可选的。 通过对上述两类应用场景的简单分析,可以发现,在选择ROC还是PRC上,要结合具体情况来考虑,但如果二者只能选其一,ROC是更保险的选择。
2023-08-04 09:17:271

kappa系数的简介

它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类地表真实像元总数与被误分成该类像元总数之积对所有类别求和的结果,再除以总像元数的平方减去某一类中地表真实像元总数与该类中被误分成该类像元总数之积对所有类别求和的结果所得到的。
2023-08-04 09:17:351

分类:基本概念、决策树与模型评估

分类 (classification)分类任务就是通过学习得到一个目标函数(targetfunction)f,把每个属性集x映射到一个预先定义的类别号y。目标函数也称分类模型(classification model)。分类模型可用于以下目的:描述性建模、预测性建模 分类技术(或分类法)是一种根据输入数据集建立分类模型的系统方法。分类法的例子包括决策树分类法、基于规则的分类法、神经网络、支持向量机和朴素贝叶斯分类法。 首先,需要一个训练集(training set),它又类标号一致的记录组成。使用训练集建立分类模型,该模型随后运用于检验集(test set ),检验集由类标号未知的记录组成。 分类模型的性能根据模型正确和错误预的检验记录计数进行评估,这些计数存放在称作混淆矩阵( confusion matrix)的表格中。表4-2描述二元分类问题的混滑矩阵。表中每个表项 fij 表示实际类标号为i但被预测为类j的记录数,例如, f01 代表原本属于类0但被误分为类1的记录数。按照混淆矩阵中的表项,被分类模型正确预测的样本总数是( f11+f00 ),而被错误预测的样本总数是( f10+f01 )。同样,分类模型的性能可以用错误率(error rate)来表示,其定义如下:为了解释决策树分类的工作原理,考虑上一节中介绍的脊椎动物分类问题的简化版本。这里我们不把脊椎动物分为五个不同的物种,而只考虑两个类别:哺乳类动物和非哺乳类动物。假设科学家发现了一个新的物种,怎么判断它是哺乳动物还是非哺乳动物呢?一种方法是针对物种的特征提出一系列问题。第一个问题可能是,该物种是冷血动物还是恒温动物。如果它是冷血的,则该物种肯定不是哺乳动物;否则它或者是某种鸟,或者是某种哺乳动物。如果它是恒温的,需要接着问:该物种是由雌性产越进行繁殖的吗?如果是,则它肯定为哺乳动物,否则它有可能是非哺乳动物(鸭嘴兽和针鼹这些产蛋的哺乳动物除外)。 上面的例子表明,通过提出一系列精心构思的关于检验记录属性的问题,可以解决分类问题。每当一个问题得到答案,后续的问题将随之而来,直到我们得到记录的类标号。这一系列的问题和这些问题的可能回答可以组织成决策树的形式,决策树是一种由结点和有向边组成的层次结图4-4显示哺乳类动物分类问题的决策树,树中包含三种结点。 根节点 (root node),它没有入边,但有零条或多条出边。 内部节点 (internal node),恰有一条入边和两条或多条出边。 叶节点 (leaf node)或 终结点 (terminal node)。恰有一条入边,但没有出边。 在决策树中,毎个叶结点都赋予一个类标号。非终结点(non- terminal node)(包括根结点和内部结点)包含属性测试条件,用以分开具有不同特性的记录。例如,在图44中,在根结点处,使用体温这个属性把冷血脊権动物和恒温脊椎动物区别开来。因为所有的冷血脊椎动物都是非乳动物,所以用一个类称号为非嘴乳动物的叶结点作为根结点的右子女。如果脊椎动物的体温是恒温的,则接下来用胎生这个属性来区分乳动物与其他恒温动物(主要是鸟类)。 一旦构造了决策树,对检验记录进行分类就相当容易了。从树的根结点开始,将测试条件用于检验记录,根据测试结果选择适当的分支,沿着该分支或者到达另一个内部结点,使用新的测试条件,或者到达一个叶结点。到达叶结点之后,叶结点的类称号就被赋值给该检验记录。例如图45显示应用决策树预测火烈鸟的类标号所经过的路径,路径终止于类称号为非哺乳动物的叶结点。 在 Hunt算法中,通过将训练记录相继划分成较纯的子集,以递归方式建立决策树。设 是与结点t相关联的训练记录集,而y={y1,y2…,yc}是类标号,Humt算法的递归定义如下: (1)如果 中所有记录都属于同一个类 ,则t是叶结点,用 标记。 (2)如果 中包含属于多个类的记录,则选择一个 属性测试条件 ( attribute test condition),将记录划分成较小的子集。对于测试条件的每个输出,创建一个子女结点,并根据测试结果将 中的记录分布到子女结点中。然后,对于每个子女结点,递归地调用该算法。为了解释该算法如何执行,考虑如下问题:预测贷款申请者是会按时归还贷款,还是会拖欠贷款。对于这个问题,训练数据集可以通过考察以前货款者的贷放记录来构造。在图4-6所示的例子中,每条记录都包含贷款者的个人信息,以及货款者是否拖欠货款的类标号。 该分类问题的初始决策树只有一个结点,类标号为“拖欠款者=否”(见图4-7a),意味大多数贷款者都按时归还贷款。然而,该树需要进一步的细化,因为根结点包含两个类的记录。根据“有房者”测试条件,这些记录被划分为较小的子集,如图4-7b所示。选取属性测试条件的理由稍后讨论,目前,我们假定此处这样选是划分数据的最优标准。接下来,对根结点的每个子女递归地调用Hunt算法。从图4-6给出的训练数据集可以看出,有房的货款者都按时偿还了贷款,因此,根结点的左子女为叶结点,标记为“抱欠款者=否”(见图4-7b)。对于右子女,我们需要继续递归调用Hunt算法,直到所有的记录都属于同一个类为止。每次递归调用所形成的决策树显示在图4-7c和图4-7d中。 如果属性值的每种组合都在训练数据中出现,并且每种组合都具有算法是有效的。但是对于大多数实际情况,这些假设太苛刻了,因此,需要附加的条件来处理以下的情况。 (1)算法的第二步所创建的子女结点可能为空,即不存在与这些结点相关联的记录。如果没有一个训练记录包含与这样的结点相关联的属性值组合,这种情形就可能发生。这时,该结点成为叶结点,类标号为其父结点上训练记录中的多数类。 (2)在第二步,如果与D相关联的所有记录都具有相同的属性值(目标属性除外),则不可能进一步划分这些记录。在这种情况下,该结点为叶结点,其标号为与该结点相关联的训练记录中的多数类。 决策树归纳的学习算法必须解决下面两个问题。 (1) 如何分裂训练记最? 树增长过程的每个递归步都必须选择一个属性测试条件,将记录划分成较小的子集。为了实现这个步骤,算法必须提供为不同类型的属性指定测试条件的方法,并且提供评估每种测试条件的客观度量。 (2) 如何停止分裂过程? 需要有结束条件,以终止决策树的生长过程。一个可能的策略是分裂结点,直到所有的记录都属于同一个类,或者所有的记录都具有相同的属性值。尽管两个结东条件对于结束决策树归纳算法都是充分的,但是还可以使用其他的标准提前终止树的生长过程。提前终止的优点将在4.4.5节讨论。 决策树归纳算法必须为不同类型的属性提供表示属性测试条件和其对应输出的方法。 二元属性 二元属性的测试条件产生两个可能的输出,如图4-8所示。 标称属性 由于标称属性有多个属性值,它的测试条件可以用两种方法表示,如图4-9所示对于多路划分(图4-9a),其输出数取决于该属性不同属性值的个数。例如,如果属性婚姻状况有三个不同的属性值一单身、已婚、离异,则它的测试条件就会产生一个三路划分。另一方面,某些决策树算法(如CART)只产生二元划分,它们考虑创建k个属性值的二元划分的所有 +1种方法。图4-9b显示了把婚姻状况的属性值划分为两个子集的三种不同的分组方法。 序数属性 序数属性也可以产生二元或多路划分,只要不违背序数属性值的有序性,就可以对属性值进行分组。图410显示了技照属性村衣尺吗划分训练记录的不同的方法。图4-10a和图4-10b中的分组保持了属性值间的序关系,而图4-10c所示的分组则违反了这一性质,因为它把小号和大号分为一组,把中号和加大号放在另一组。 连续属性对于连续属性来说,测试条件可以是具有二元输出的比较测试(A<v)或(A≥v),也可以是具有形如 ≤A< (i=1,…,k)输出的范查询,图4-11显示了这些方法的差别。对于二元划分,决策树算法必须考虑所有可能的划分点v,并从中选择产生最佳划分的点v。对于多路划分,算法必须考虑所有可能的连续值区间。可以采用2.3.6节介绍的离欧化的策略,离散化之后,每个离散化区间赋予一个新的序数值,只要保持有序性,相邻的值还可以聚集成较宽的间。 有很多度量可以用来确定划分记录的最佳方法,这些度量用划分前和划分后记录的类分布定义。设p(i|t)表示给定结点t中属于类i的记录所占的比例,有时,我们省略结点t,直接用 表示该比例。在两类问题中,任意结点的类分布都可以记作( , ),其中 =1- 。例如,考虑图4-12中的测试条件,划分前的类分布是(0.5,0.5),因为来自每个类的记录数相等。如果使用性属性来划分数据,则子女结点的类分布分别为(0.6,0.4)和(0.4,0.6),虽然划分后两个类的分布不再平衡,但是子女结点仍然包含两个类的记录:按照第二个属性车型进行划分,将得到纯度更高的划分。 选择最佳划分的度量通常是根据划分后子女结点不纯性的程度。不纯的程度越低,类分布就越倾斜。例如,类分布为(0,1)的结点具有零不纯性,而均衡分布(0.5,0.5)的结点具有最高的不纯性。不纯性度量的例子包括: 图4-13显示了二元分类问题不纯性度量值的比较,p表示属于其中一个类的记录所占的比例。从图中可以看出,三种方法都在类分布均衡时(即当p=0.5时)达到最大值,而当所有记录都属于同一个类时(p等于1或0)达到最小值。下面我们给出三种不纯性度量方法的计算实例。 为了确定测试条件的效果,我们需要比较父结点(划分前)的不纯程度和子女结点(划分后)的不纯程度,它们的差越大,测试条件的效果就越好。增益4是一种可以用来确定划分效果的标准: 考虑图4-14中的图表,假设有两种方法将数据划分成较小的子集。划分前,Gimi指标等于0.5,因为属于两个类的记录个数相等。如果选择属性A划分数据,结点N1的Gi指标等于0,.4898,而N2的Gimi指标等于0.480,派生结点的Gini指标的加权平均为(7/12)×0.4898+(5/2)×0.480=0.486。类似的,我们可以计算属性B的Gini指标加权平均是0.371。因为属性B具有更小的Gini指标,它比属性A更可取。 熵和Gini指标等不纯性度量趋向有利于具有大量不同值的属性。图4-12显示了三种可供选择的测试条件,划分本章习题2中的数据集。第一个测试条件性别与第二个测试条件车型相比,容易看出车型似乎提供了更好的划分数据的方法,因为它产生更纯的派生结点。然而,如果将这两个条件与顾客D相比,后者看来产生更纯的划分,但顾客D却不是一个有预测性的属性,因为每个样本在该属性上的值都是唯一的。即使在不太极端情形下,也不会希望产生大量输出的测试条件,因为与每个划分相关联的记录太少,以致不能作出可靠的预测。 解决该问题的策略有两种。第一种策略是限制测试条件只能是二元划分,CART这样的决策树算法采用的就是这种策略:另一种策略是修改评估划分的标准,把属性测试条件产生的输出数也考虑进去,例如,决策树算法C4.5采用称作增益率( gain ratio)的划分标准来评估划分。增益率定义如下: 建立决策树之后,可以进行树剪枝( tree-pruning),以减小决策树的规模。决策树过大容易受所谓过分拟合( overfitting)现象的影响。通过修剪初始决策树的分支,剪枝有助于提高决策树的泛化能力。过分拟合和树剪枝问题将在4.4节更详细地讨论。 Web使用挖据就是利用数据挖据的技术,从Web访问日志中提取有用的模式。这些模式能够揭示站点访问者的一些有趣特性:例如,一个人频繁地访问某个Web站点,并打开介绍同一产品的网页,如果商家提供一些打折或免费运输的优惠,这个人很可能会购买这种商品。 在Web使用挖掘中,重要的是要区分用户访问和Web机器人( Web robot)访问,Web机器人(又称Web爬虫)是一个软件程序,它可以自动跟踪嵌入网页中的超链接,定位和获取 Iinternet上的信息。这些程序安装在搜素引的入口,收集索引网页必须的文档。在应用Web挖掘技术分析人类的测览习惯之前,必须过滤掉Web机器人的访问。 下面是对决策树归纳算法重要特点的总结。 (1)决策树归纳是一种构建分类模型的非参数方法。换句话说,它不要求任何先验假设,不假定类和其他属性服从一定的概率分布(不像第5章介绍的一些技术)。 (2)找到最佳的决策树是NP完全问题。许多决策树算法都采取启发式的方法指导对假设空间的搜索。例如,4.3.5节中介绍的算法就采用了一种贪心的、自顶向下的递归划分策略建立决策树 (3)已开发的构建决策树技术不需要昂贵的计算代价,即使训练集非常大,也可以快速建立模型。此外,决策树一旦建立,未知样本分类非常快,最坏情况下的时间复杂度是O(w),其中w是树的最大深度。 (4)决策树相对容易解释,特别是小型的决策树。在很多简单的数据集上,决策树的准确率也可以与其他分类算法相媲美。 (5)决策树是学习离散值函数的典型代表。然而,它不能很好地推广到某些特定的布尔问题。个著名的例子是奇偶函数,当奇数(偶数)个布尔属性为真时其值为0(1)。对这样的函数准确建模需要一棵具有2^d个结点的满决策树,其中d是布尔属性的个数(见本章习题1) (6)决策树算法对于噪声的干扰具有相当好的鲁棒性,采用避免过分拟合的方法之后尤其如此。避免过分拟合的方法将在4.4节介绍。 (7)元余属性不会对决策树的准确率造成不利的影响。一个属性如果在数据中它与另一个属性是强相关的,那么它是冗余的。在两个冗余的属性中,如果已经选择其中一个作为用于划分的属性,则另一个将被忽略。然而,如果数据集中含有很多不相关的属性(即对分类任务没有用的属性),则某些不相关属性可能在树的构造过程中偶然被选中,导致决策树过于庞大。通过在预处理阶段删除不相关属性,特征选择技术能够帮助提高决策树的准确率。我们将在4.4.3节考察不相关属性过多的问题。 (8)由于大多数的决策树算法都采用自顶向下的递归划分方法,因此沿着树向下,记录会越来越少。在叶结点,记录可能太少,对于叶结点代表的类,不能做出具有统计意义的判决,这就是所谓的数据碎片( data fragmentation)问题,解决该问题的一种可行的方法是,当样本数小于某个特定值时停止分裂。 (9)子树可能在决策树中重复多次,如图4-19所示,这使得决策树过于复杂,并且可能更难解释。当决策树的每个内部结点都依赖单个属性测试条件时,就会出现这种情形。由于大多数的决策树算法都采用分治划分策略,因此在属性空间的不同部分可以使用相同的测试条件,从而导致子树重复问题。 (10)迄今为止,本章介绍的测试条件每次都只涉及一个属性。这样,可以将决策树的生长过程看成划分属性空间为不相交的区域的过程,直到每个区域都只包含同一类的记录(见图4-20)。两个不同类的相邻区域之间的边界称作决策边界( decision boundary),由于测试条涉及单个属性,因此决策边界是直线,即平行于“坐标轴”,这就限制了决策树对连续属性之间复杂关系建模的表达能力。图4-21显示了一个数据集,使用一次只涉及一个属性的测试条件的决策树算法很难有效地对它进行分类。 斜决策树 ( oblique decision tree)可以克服以上的局限,因为它允许测试条件涉及多个属性。图4-21中的数据集可以很容易地用斜决策树表示,该斜决策树只有一个结点,其测试条件为: x+y<1 尽管这种技术具有更强的表达能力,并且能够产生更紧凑的决策树,但是为给定的结点找出最佳测试条件的计算可能是相当复杂的。 构造归纳 ( constructive induction)提供另一种将数据划分成齐次非矩形区域的方法(见2.3.5节),该方法创建复合属性,代表已有属性的算术或逻辑组合。新属性提供了更好的类区分能力,并在决策树归纳之前就增广到数据集中。与斜决策树不同,构造归纳不需要昂贵的花费,因为在构造决策树之前,它只需要一次性地确定属性的所有相关组合。相比之下,在扩展每个内部结点时,斜决策树都需要动态地确定正确的属性组合。然而,构造归纳会产生冗余的属性,因为新创建的属性是已有属性的组合 (11)研究表明不纯性度量方法的选择对决策树算法的性能影响很小,这是因为许多度量方法相互之间都是一致的,如图4-13所示。实际上,树剪枝对最终决策树的影响比不纯性度量的选择的影响更大。
2023-08-04 09:18:021

盘点机器学习中那些神奇的损失函数

盘点机器学习中那些神奇的损失函数我最近在学习R语言,但是估R语言我应该没能跟sas一样玩那么好。今天来更新在机器学习中的一些专业术语,例如一些损失函数,正则化,核函数是什么东西。损失函数:损失函数是用来衡量模型的性能的,通过预测值和真实值之间的一些计算,得出的一个值,这个值在模型拟合的时候是为了告诉模型是否还有可以继续优化的空间(模型的目的就是希望损失函数是拟合过的模型中最小的),损失函数一般有以下几种,为什么损失函数还有几种呢,因为不同的算法使用的损失函数有所区分。10-1损失函数:这个损失函数的含义,是最简单的,预测出来的分类结果跟真实对比,一样的返回1,不一样返回0,这种方式比较粗暴,因为有时候是0.999的时候,其实已经很接近了,但是按照这个损失函数的标准,还是返回0,所以这个损失函数很严格,严格到你觉得特别没有人性。2感知损失函数那么这个感知损失函数,其实是跟混淆矩阵那种算法是一样,设定一个阀值,假设真实值与预测值之间的差距超过这个阀值的话,就是1,小于的话就是0,这种就多多少少弥补了0-1损失函数中的严格,假设以0.5为界限,那么比0.5大的我们定义为坏客户,小于0.5定义为坏客户,假设用这种方式,那么大部分好客户聚集在0.6,以及大部分好客户聚集在0.9这个位置,感知损失函数,判断的时候可能是差不多的效果。但是很明显两个模型的效果是,后者要好。当然你在实际的做模型的时候也不会单靠一个损失函数衡量模型啦,只是你在拟合的时候可能使用的损失函数来拟合出机器觉得是最优的。3Hinge损失函数Hinge损失函数是源自于支持向量机中的,因为支持向量机中,最终的支持向量机的分类模型是能最大化分类间隔,又减少错误分类的样本数目,意味着一个好的支持向量机的模型,需要满足以上两个条件:1、最大化分类间隔,2、错误分类的样本数目。错误分类的样本数目,就回到了损失函数的范畴。我们看上面这张图:把这四个点,根据下标分别叫1、2、3、4点,可以看到hinge衡量的是该错误分类的点到该分类的分类间隔线之间的距离,像1点,他虽然没有被正确分类,但是是在分类间隔中,所以他到正确被分类的线的距离是小于1的(分类间隔取的距离是1),那么像2,3,4点他们到正确的分类间隔的距离都是超过1,正确分类的则置为0,那么回到上面的公式,支持向量机中,分类使用+1,-1表示,当样本被正确分类,那么就是0,即hinge的值为0,那么如果在分隔中的时候,hinge的值为1-真实值与预测值的积。举个例子,当真实值yi是1,被分到正确分类的分类间隔之外,那么yi=1,>1,那么这时候即样本被正确分类hinge值则为0。那么如果是被错误分类,则hinge值就是大于1了。这就是hinge损失函数啦。4交叉熵损失函数这个函数是在逻辑回归中最大化似然函数推出来,在公式层面的理解,可以看到就是计算样本的预测概率为目标值的概率的对数。这个你不想听公式推导也看下去啦,因为这对于优化问题的理解可以更深刻。以上的公式中的h(x)代表的样本是目标值的概率,那么模型最极端的预测是什么,y=1的样本的h(x)都为1,y=0的样本的h(x)都是0,那么你这个模型的正确率就是100%,但在实际建模中这个可能性是极低的,所以这时候使用最大似然估计将全部的样本的预测值连乘,那么这时候意味着对于y=1的样本,h(x)的值越大越好,y=0的时候h(x)的值越小越好即1-h(x)的值越大越好,这时候似然估计这种相乘的方式貌似很难衡量那个模型是最好的,所以加上log函数的转化之后再加上一个负号,全部的项变成相加,这时候我们只要求得-ln(l())最小就可以了。这就是交叉熵损失函数。那么这里你可能会问,为什么用的是log,不是用什么exp,幂函数这些,因为log是单调递增的,在将式子从相乘转成相加的同时,又保证了数值越大,ln(x)的值越大。5平方误差平方差,这个大家很熟啦,线性回归很爱用这个,这个衡量线性关系的时候比较好用,在分类算法中比较少用。6绝对误差那么这个也是回归中比较常用的,也不做多的解释。7指数误差这是adaboosting中的一个损失函数,假设目标变量还是用-1,1表示,那么就以为在上面的公式中,当yi=1的时候,就希望越大越好,即越小越好,同样可推当yi=0的时候。思想跟逻辑回归类似,但是因为这里使用-1,1表示目标变量,所以损失函数有些区别。
2023-08-04 09:18:391

lgdm多分类模型怎么算ks呢

ks的计算公式是Ks=c(C)*c(D)/c(A)*c(B)。ks是指化学平衡常数,是在一定温度下,不考虑反应物起始浓度大小,最后都达到平衡,这时各生成物浓度的化学计量数次幂的乘积与各反应物浓度的化学计量数次幂的乘积的比值是个常数。KS曲线介绍KS曲线是用来衡量分类型模型准确度的工具。KS曲线与ROC曲线非常的类似。其指标的计算方法与混淆矩阵、ROC基本一致。它只是用另一种方式呈现分类模型的准确性。KS值是KS图中两条线之间最大的距离,其能反映出分类器的划分能力。KS曲线也是评判模型结果的指标,因此属于模型评估的一部分。此方法在整个数据分析与挖掘体系中的位置。KS曲线与ROC曲线非常相像,如果不了解ROC曲线的请参阅我写的这篇文章:4.4.2分类模型评判指标ROC曲线与AUC面积。了解ROC曲线的人会知道其横轴与纵轴分别是混淆矩阵中的FPR与TPR。而线上的每一个点,都是在不同阈值在得到的FPR与TPR的集合。
2023-08-04 09:18:471

矩阵约公因数的问题

这是两个概念问题,不能混淆矩阵的数乘与矩阵的初等变换矩阵乘k等于矩阵的每个元素都乘k,此时是等号连接矩阵的初等变换中有一种行变换:某行乘一非零常数,此时不能用等号连接,而是用-->
2023-08-04 09:19:022

二分类算法评估指标

我们都知道机器学习要建模,但是对于模型性能的好坏我们并不知道是怎样的,很可能这个模型就是一个差的模型,对测试集不能很好的预测。那么如何知道这个模型是好是坏呢? 必须有个评判的标准,需要用某个指标来衡量,这就是性能度量的意义。 有了一个指标,就可以对比不同模型了,从而知道哪个模型更好,或者通过这个指标来调参优化选用的模型。 对于分类、回归、聚类等,分别有各自的评判标准。本篇主要介绍二分类算法(多分类可以扩展转化成二分类)的相关指标。评估一个二分类的分类器的性能指标有: 准确率、查准率、查全率、F1值、AUC/ROC 。前面几个比较直观,AUC/ROC相对抽象一点。经常会以AUC/ROC为代表来考察对分类算法指标的认知程度: 什么是AUC/ROC?横轴纵轴都代表什么?有什么优点?为什么要使用它? 不是因为它的复杂度更高,主要是它对项目场景的衡量更贴切。 对于二分类模型,预测情况与实际情况会得出2*2=4种组合,形成混淆矩阵: 真正(True Positive , TP):被模型预测为正的正样本 假正(False Positive , FP):被模型预测为正的负样本 假负(False Negative , FN):被模型预测为负的正样本 真负(True Negative , TN):被模型预测为负的负样本 真正率(True Positive Rate,TPR):TPR=TP/(TP+FN),即被预测为正的正样本数 /正样本实际数 假正率(False Positive Rate,FPR) :FPR=FP/(FP+TN),即被预测为正的负样本数 /负样本实际数 假负率(False Negative Rate,FNR) :FNR=FN/(TP+FN),即被预测为负的正样本数 /正样本实际数 真负率(True Negative Rate,TNR) :TNR=TN/(TN+FP),即被预测为负的负样本数 /负样本实际数 即正确预测的正反例数 /预测总数。准确率是预测正确的结果占总样本的百分比,是很自然就会想到的指标,但很多项目场景都不适用!最主要的原因是 样本不平衡 。举个简单的例子,比如在一个总样本中,正样本占90%,负样本占10%,样本是严重不平衡的。对于这种情况,我们只需要将全部样本预测为正样本即可得到90%的高准确率,但实际上我们并没有很用心的分类,只是随便无脑一分而已。这就说明了:由于样本不平衡的问题,导致了得到的高准确率结果含有很大的水分。即如果样本不平衡,准确率就会失效。 即正确预测的正例数 /预测正例总数。可理解为查准率。在预测为正的记录中,有多少实际为正? 即正确预测的正例数 /实际正例总数 。可理解为查全率。在实际为正的记录中,有多少预测为正? 精确率和召回率的调和值。由于Precision和Recall是一对不可调和的矛盾,很难同时提高二者,也很难综合评价。故提出F1来试图综合二者,F1是P和R的调和平均。F1更接近于两个数较小的那个,所以精确率和召回率接近时值最大。很多推荐系统会用的评测指标。 FPR表示模型 虚报的响应程度 ,而TPR表示 模型预测响应的覆盖程度 。我们希望: 虚报的越少越好,覆盖的越多越好 。总结一下就是FPR越低TPR越高(即 ROC曲线越陡 ),那么模型就越好。ROC曲线无视样本不平衡。 画曲线的用意是:用假正率与真正率的变化趋势,来观察模型是否能在较低的假正率下得到较高的真正率。 绘制ROC曲线时,横轴纵轴都是0~1,形成一个1x1的正方形。AUC就是在这个正方形里ROC曲线围成的面积。 如果连接正方形的对角线,它的面积正好是0.5。对角线的实际含义是: 随机判断响应与不响应 ,正负样本覆盖率都是50%,即AUC =0.5表示随机分类器。AUC < 0.5表示 差于随机分类器,没有建模价值 ;AUC = 1表示 完美分类器,不存在 ;0.5 < AUC < 1, 优于随机分类器 ,大多模型都在这个区间里。 AUC的一般判断标准 0.5 - 0.7:效果较低,但用于预测股票已经很不错了 0.7 - 0.85:效果一般 0.85 - 0.95:效果很好 0.95 - 1:效果非常好,但基本不太可能 指标没有单纯的谁比谁好,选择指标还是要结合具体的使用场景。比如: 嫌疑人定罪:基于不错怪一个好人的原则,有时候放过一些嫌疑人也是值得的。宁漏,不错。 地震的预测:情愿发出100次警报10次都没漏,也不要发出10次警报对了8次漏了2次。宁错,不漏。 在地震场景中可以只看Recall=99.99999%(地震全中)时的Precision,其他指标就变得没有了意义。
2023-08-04 09:19:111

如何理解Type I/II Error,敏感性与特异性以及ROC,AUC

(2019-12-16) 首先,Type I/II Error 在维基百科的解释为: Type I error is the rejection of a true null hypothesis (also known as a "false positive" finding), I类错误是拒绝了本为真的 Null Hypothesis Type II error is failing to reject a false null hypothesis (also known as a "false negative" finding). 1-power。 II类错误是未能拒绝一个本为假的 Null Hypothesis 用一个例子来讲: Type I Error: (见图上H0): 阴性 假设 成立,实际上也确实成立,但是我们检测到的样本正好有Bias,导致 落于置信区间外,造成了False Positive Error(本来没病,却检查出有病) Type II Error: (见图上H1): 阴性 假设 成立,实际上不成立,应该是 。但是我们检测到的样本正好有Bias,导致 落于置信区间内,造成了False Negative Error(本来有病,却检查出没病) 再追加一个例子,如果我们要检验: : 中国人平均身高 ≤ 170cm : 中国人平均身高 > 170cm Type I Error 就是平均身高实际是170cm,但是取到的样本平均身高到了180cm,导致错误地拒绝了H0 Type II Error 就是平均身高实际是180cm,但是取到样本平均身高却是172cm,导致错误地未能拒绝H0 α 的选择越小,蓝线右移,P(Type I Error) 越小,P(Type II Error) 越大; α 的选择越大,蓝线左移,P(Type I Error) 越大,P(Type II Error) 越小。 其中,定义检验的势 Power = 1 - P(Type II Error) 敏感性(Sensitivity)意味着有病的人的检测正确率,特异性(Specificity)意味着没病的人的检测正确率。 具体来讲, 如果拿出机器学习中的混淆矩阵: 敏感性的计算公式为: ,它与FNR是互补关系(和为1) 高敏感性 意味着 低 FNR (False Nagetive Rate,图中的β,漏诊率),有病的都能被检测出来,机器学习中意味着高召回率( ),可以看到公式是一样的。另外它和假设检验中的 power(势) 也是一致的。 特异性的计算公式为: ,它与FPR是互补关系(和为1) 高特异性 意味着 低 FPR (False Positive Rate,图中的α,误诊率),没病的都不会被勿诊为有病,但注意,高特异性并不意味着机器学习中的高精确度( ),因为即便高特异性意味着低FP,但可能模型本身很差,根本无法找出TP,从而导致精确度很低。 将模型检测结果的 TPR (Sensitivity) 作为横坐标,FPR (1 - Specificity) 作为纵坐标,画到笛卡尔坐标系中,即可得到类似与如下的曲线: 直观上理解,其实就是当下图中的蓝线(阈值)从紫色面积的最右边逐渐移到红色部分的最左边时,产生的曲线: 其中的道理是,通过阈值的选择可以让模型对正例的判别变得严格,这样就会有更多的真实正样本被分为正例,TPR( )增加,但同时也会有更多的真实负样本被分为正例,所以同时提高了FPR( ): 极端情况下, 而AUC就是所谓的Area under Curve,代表ROC曲线下面的面积,值域为[0, 1],正常情况下为[0.5, 1]。 AUC的实际意义是:当随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的分数将这个正样本排在负样本前面的概率就是AUC值。所以,AUC的值越大,当前的分类算法越有可能将正样本排在负样本值前面,既能够更好的分类。 假设一个警察会根据一系列经验去抓小偷,但是不能100%保证准确率,那么当警察提高他的严苛度(阈值)时,必然会有更多的小偷被抓到,漏判率降低,但是随之误判率会升高,会有良民被抓。 因此,阈值的设定关系到了我们想要这个模型产出的效果,如果希望抓出更多的Positive样本,就提高阈值,随之Sensitivity增加,FPR增加;如果希望Negative样本不要误判,就降低阈值,Sensitivity降低,FPR降低。 例如在金融领域,欺诈用户如果不能更好地被检测出来,会给企业带来巨大损失,同样如果病人被误判为健康的,那么他的生命就会受到威胁,这两种情况则都需要模型具有较高的敏感度。关于这种情况的优化,可以参考1999年的一篇论文: MetaCost: A General Method for Making Classifiers Cost-Sensitive 。其采用了Bagging的思想对使分类器变得代价敏感。 方法有多种,其中包括:找到离(0,1)最近的点,Youden index等[2] 一个模型只能产生一个结果,那么如何绘制曲线呢? 具体方法是在得到 生成概率/预测概率/后验概率 后,先不急着算出预测类别,而是先对生成概率进行从大到小的排序,例如: 然后我们就可以通过画线分割的方式来选择不同的阈值,同时计算相应的TPR和FPR了,比如先选择阈值0.99: , ,ROC上添加点 (0, 0.2) 当阈值选为0.9时: , ,ROC上添加点 (0, 0.4) 以此类推我们可以继续得到点: (0.2, 0.6) (0.2, 0.8) (0.2, 1.0) (0.4, 1.0) (0.6, 1.0) (0.8, 1.0) (1.0, 1.0) 将图像画出即为: 毫无疑问,统计学习是包含在统计学中的,是统计学中的一个上层建筑。 其中的I/II类错误,还有power都是假设检验中的概念,但通过上面的分析也发现了不同统计概念中的一致性(例如Sensitivity, Power, Recall都是一致的)。 实际上在现实世界的统计规律中,如果不给定或者给定极少的(例如1个)特征,那么分类问题就如同盲人摸象,不同类别的分布会重叠在一起。而 统计机器学习的目的 ,就是 通过一定的手段,把这两个分布尽可能地拉开,拉的越开,那么分类的效果就越好 。 而这个手段,就是 数据(特征) + 模型 + 算法(最优化) 。如何更好地利用这些手段,并解决现实生活中的实际问题,就是统计机器学习的研究目标。 References: [1] Youtube - Sensitivity, Specificity, and ROC Curves [2] 全面了解ROC曲线 [3] ROC及AUC计算方法及原理
2023-08-04 09:19:381

分类模型评估指标

本篇先考虑二分类问题,记录常用到的评估指标。 假设在训练之前和预测之后,一个样本的标记是确定的两个类别,一个是真实的1/0,一个是预测的1/0,其中1表示正例、0表示负例。 其中:TP(实际为正预测也为正)、FP(实际为负但预测为正)、TN(实际为负预测也为负)、FN(实际为正但预测为负) 通过混淆矩阵,可以给出以下各指标的值: 查准率和查全率是一对矛盾的度量,一般来说,一个高的时候,另一个就低。 F1值 --- 查准率与查全率的加权调和平均数 (1)当认为查准率与查全率一样重要时,即权重相同时: (2)当查准率和查全率的重要性不一样时,即权重不同时: 一般对于不同的问题,查准率与查全率的侧重不同。因此,F1值的一般形式为: 其中β表示查全率与查准率的权重。下面对该这个一般形式的公式进行推导: 两个指标的设置及其关系如下,因为只考虑这两个指标,故二者权重之和为1,即: 由上式可得到 因此,可得带权重的调和平均数公式可变为 进一步推导,可得 总结 在介绍ROC曲线前,先明确以下几个概念,在混淆矩阵中 真阳性率 (True Positive Rate, TPR ),灵敏度( Sensitivity ),召回率( Recall ): Sensitivity=Recall=TPR= TP/(TP+FN) 真阴性率 (True Negative Rate, TNR ),特异度( Specificity ): Specificity=TNR=TN/(FP+TN) 假阴性率 (False Negative Rate, FNR ),漏诊率(=1-灵敏度): FNR=FN/(TP+FN) 假阳性率 (False Positive Rate, FPR ),误诊率(=1-特异度): FPR=FP/(FP+TN) ROC曲线 :接收者操作特征曲线(receiver operating characteristic curve),是反映敏感性和特异性连续变量的综合指标,ROC曲线上每个点反映着对同一信号刺激的感受性。 下图是一个ROC曲线示例: 在一个二分类模型中,例如逻辑回归学习器,针对其输出的每个样本为正例的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类,对应的就可以算出一个组(FPR,TPR),在平面中就得到对应的坐标点。随着阈值的逐渐减小,越来越多的样本被归为正类,但是这些正类中也会夹杂着真正的负例,即TPR和FPR会同时增大。阈值最大时为,对应的坐标为(0,0),阈值最小时,对应的坐标为(1,1)。 理想目标 :TPR=1,FPR=0,即图中的(0,1)点,所以ROC曲线越靠拢(0,1)点,即越偏离45度的直线越好。 AUC值 AUC(Area Under Curve)被定义为ROC曲线下的面积。使用AUC值作为衡量模型准确性的评价标准是因为ROC曲线很多时候不能清晰的说明哪个分类模型的效果更好,而作为一个数值,对应AUC更大的模型效果更好,AUC值越接近1模型的效果越好。 从AUC值判断模型的好坏: 在评价模型时还会用到KS(Kolmogorov-Smirnov)值,KS=max(TPR-FPR),即为TPR与FPR的差的最大值,KS值可以反映出模型的最优区分效果,此时所取的阈值一般作为定义好坏用户的最优阈值。一般KS>0.2认为模型有比较好的预测准确性。 KS曲线的最高点(最大值)为KS值,KS值越大,模型的区分度越好,KS值为0代表是没有区分度的随机模型。准确的来说,KS是用来度量正样本与负样本区分程度的。但是KS值所代表的仅仅是模型的区分能力,并不代表区分的样本是准确的。如果正负样本完全分错,但KS值可以依旧很高。 Lift提升图是不同阈值下Lift和Depth的轨迹。 Lift指标衡量的是,与不利用模型相比,模型的预测能力“变好”了多少。不利用模型,我们只能利用“正例的比例是(TP+FN)/(TP+FP+FN+TN)”这个样本信息来估计正例的比例(baseline model),而利用模型之后,我们不需要从整个样本中来挑选正例,只需要从我们预测为正例的样本子集TP+FP中挑选正例,这时预测的准确率为TP/(TP+FP)。 显然,lift(提升指数)越大,模型的运行效果越好。如果这个模型的预测能力和baseline model一样,那么TP/(TP+FP)就等于(TP+FN)/(TP+FP+FN+TN),这个模型的效果就没有任何“提升”了。 作图步骤: 上图的纵坐标是lift值,横坐标是预测成正例的比例,随着阈值的减小,更多的观测值会被归为正例,也就是depth(预测成正例的比例)变大。当阈值设的够大,只有一部分观测值会被归为正例,但这一小部分一定是最具有正例特征的观测值集合,此时这个depth对应的lift值最大。同样地,当阈值设定的足够小的,那么几乎所有的观测值都会被归为正例(占比几乎为100%),这时分类的效果就和baseline model差不多了,相对应的lift值就接近于1。 一个好的分类模型,就是要偏离baseline model足够远。在Lift图中,表现就是,在depth为1之前,lift值一直保持较高的(大于1的)数值,也即曲线足够的陡峭。 ROC曲线和Lift曲线都能评价逻辑回归模型的效果: Gains(增益)与Lift(提升)类似:Lift图是不同阈值下Lift和Depth的轨迹,Gains图是不同阈值下Precision和Depth的轨迹,而Precision=TP/TP+FP,显而易见地,它们的区别就是纵坐标不一样。 Gain增益图是描述整体精准率的指标。按照模型预测出的概率从高到低排序,将每一个百分位数内的精准率指标标注在图形区域内,就形成了非累积的增益图。如果对每一个百分位及其之前的精准率求和并标注在图形区域内,则形成累积的增益图。累积图通常可以更好的表现模型性能,而非累计图则更有利于指出模型中可能存在问题的地方。 https://www.deeplearn.me/1522.html https://cosx.org/2009/02/measure-classification-model-performance-lift-gain/
2023-08-04 09:20:081

数据挖掘实战之随机森林算法使用

阅读路线: 近来有同学问道,有没有数据挖掘的案例可以来练习下,主要是来通过案例来知道算法是如何使用的。 下面就以 港股打新 这个金融项目为例,来做个预测,先来说下什么是打新;打新,就是用资金参与新股申购,如果中签的话,就买到了即将上市的股票。 此次分析的目的是为了深入打新数据,找到最优算法,挖掘出影响打新的关键因素,找到可能要破发的新股,从而减少新股破发的风险,提高盈利。 打新的本质,也即是在股票上市后卖出,赚取其中的差价。一般在买到的第一天就会卖掉,当然第一天上升的股票有涨有跌,为了能够减少风险,会根据历史数据来做个预判,这里把涨幅10%以下记为0,涨幅10%以上记为1,很明显这也是二分类的预测问题 对于本项目而言,最终的评价标准是要求在精确度达到97%的情况下,最大化召回率。这里是要求尽可能提高召回率,自己本身对风险比较厌恶,宁可错杀,也不会愿意申购上市就要的破发的新股 对于评价标准,一般用的是PR曲线和ROC曲线。ROC曲线有一个突出优势,就是不受样本不均衡的影响 ROC曲线不受样本不均衡问题的影响 1.数据总体情况 港股数据主要来自两个方面, 利弗莫尔证券数据 和 阿思达克保荐人近两年数据 ,处理之后是这样的: 数据一共有17个特征,除了目标变量is_profit,还有16个特征。 以上的数据指标可以梳理为两类,一类是股票相,如 关,一类是保荐人指标, 2.数据处理方面不用管 一般特征工程主要从以下方面来进行:衍生特征、异常值处理、缺失值处理、连续特征离散化、分类变量one-hot-encode、标准化等,本篇文章主要讲解随机森林算法使用,暂不对特征工程做过多的展示了 从 使用随机森林默认的参数 带来的模型结果来看,auc指标是0.76,效果还可以。 为了更好的理解上述,这里有几个知识点需要来解释下: 返回的是一个n行k列的数组,第i行第j列上的数值是模型预测第i个预测样本的标签为j的概率。所以每一行的和应该等于1;本文中predict_proba(x_test)[:,1]返回的是标签为0的概率。 (a).混淆矩阵 混淆矩阵如下图分别用”0“和”1“代表负样本和正样本。FP代表实际类标签为”0“,但预测类标签为”1“的样本数量。其余,类似推理。 (b).假正率和真正率 假正率(False Positive Rate,FPR)是实际标签为”0“的样本中,被预测错误的比例。真正率(True Positive Rate,TPR)是实际标签为”1“的样本中,被预测正确的比例。其公式如下: (3).ROC曲线 下图的黑色线即为ROC曲线,ROC曲线是一系列threshold下的(FPR,TPR)数值点的连线。此时的threshold的取值分别为测试数据集中各样本的预测概率。但,取各个概率的顺序是从大到小的。然后也就是有了不同的RPR、TPR,且测试样本中的数据点越多,曲线越平滑: AUC(Area Under roc Cure),顾名思义,其就是ROC曲线下的面积,在此例子中AUC=0.62。AUC越大,说明分类效果越好。 下面我们来看看RF重要的Bagging框架的参数,主要有以下几个: (1) n_estimators: 也就是最大的弱学习器的个数。一般来说n_estimators太小,容易欠拟合,n_estimators太大,计算量会太大,并且n_estimators到一定的数量后,再增大n_estimators获得的模型提升会很小,所以一般选择一个适中的数值。默认是100。 (2) oob_score: 即是否采用袋外样本来评估模型的好坏。默认识False。个人推荐设置为True,因为袋外分数反应了一个模型拟合后的泛化能力。 (3) criterion: 即CART树做划分时对特征的评价标准。分类模型和回归模型的损失函数是不一样的。分类RF对应的CART分类树默认是基尼系数gini,另一个可选择的标准是信息增益。回归RF对应的CART回归树默认是均方差mse,另一个可以选择的标准是绝对值差mae。一般来说选择默认的标准就已经很好的。 从上面可以看出,RF重要的框架参数比较少,主要需要关注的是 n_estimators ,即RF最大的决策树个数。 下面我们再来看RF的决策树参数,它要调参的参数如下: (1) RF划分时考虑的最大特征数max_features: (2) 决策树最大深度max_depth: 默认可以不输入,如果不输入的话,决策树在建立子树的时候不会限制子树的深度。一般来说,数据少或者特征少的时候可以不管这个值。如果模型样本量多,特征也多的情况下,推荐限制这个最大深度,具体的取值取决于数据的分布。常用的可以取值10-100之间。 (3) 内部节点再划分所需最小样本数min_samples_split: 这个值限制了子树继续划分的条件,如果某节点的样本数少于min_samples_split,则不会继续再尝试选择最优特征来进行划分。默认是2.如果样本量不大,不需要管这个值。如果样本量数量级非常大,则推荐增大这个值。 (4) 叶子节点最少样本数min_samples_leaf: 这个值限制了叶子节点最少的样本数,如果某叶子节点数目小于样本数,则会和兄弟节点一起被剪枝。 默认是1,可以输入最少的样本数的整数,或者最少样本数占样本总数的百分比。如果样本量不大,不需要管这个值。如果样本量数量级非常大,则推荐增大这个值。 (5)叶子节点最小的样本权重和min_weight_fraction_leaf: 这个值限制了叶子节点所有样本权重和的最小值,如果小于这个值,则会和兄弟节点一起被剪枝。 默认是0,就是不考虑权重问题。一般来说,如果我们有较多样本有缺失值,或者分类树样本的分布类别偏差很大,就会引入样本权重,这时我们就要注意这个值了。 (6) 最大叶子节点数max_leaf_nodes: 通过限制最大叶子节点数,可以防止过拟合,默认是"None”,即不限制最大的叶子节点数。如果加了限制,算法会建立在最大叶子节点数内最优的决策树。如果特征不多,可以不考虑这个值,但是如果特征分成多的话,可以加以限制,具体的值可以通过交叉验证得到。 (7) 节点划分最小不纯度min_impurity_split: 这个值限制了决策树的增长,如果某节点的不纯度(基于基尼系数,均方差)小于这个阈值,则该节点不再生成子节点。即为叶子节点 。一般不推荐改动默认值1e-7。 上面决策树参数中最重要的包括最大特征数 max_features , 最大深度 max_depth , 内部节点再划分所需最小样本数 min_samples_split 和叶子节点最少样本数 min_samples_leaf GridSearchCV的名字其实可以拆分为两部分,GridSearch和CV,即网格搜索和交叉验证。这两个名字都非常好理解。网格搜索,搜索的是参数,即在指定的参数范围内,按步长依次调整参数,利用调整的参数训练学习器,从所有的参数中找到在验证集上精度最高的参数,这其实是一个训练和比较的过程。 GridSearchCV可以保证在指定的参数范围内找到精度最高的参数,但是这也是网格搜索的缺陷所在,他要求遍历所有可能参数的组合,在面对大数据集和多参数的情况下,非常耗时。 通过RF框架以及RF决策树参数能够了解到重点需要调节以下的参数 主要需要关注的是 n_estimators ,即RF最大的决策树个数。 决策树参数中最重要的包括最大特征数 max_features , 最大深度 max_depth , 内部节点再划分所需最小样本数 min_samples_split 和叶子节点最少样本数 min_samples_leaf 输出结果为: 6.3最佳的弱学习器迭代次数,接着我们对决策树最大深度max_depth和内部节点再划分所需最小样本数min_samples_split进行网格搜索 输出结果 6.4最大特征数max_features做调参 输出结果: 6.5根据模型最佳参数进行测试 输出结果:0.7805947388486466,相比没有调参前,模型有不少的提高的,方便观察,用图形来看下ROC曲线图 6.6观察模型的重要特征 6.7最大召回率 最后得出我们想要的结果,精准率在 0.97 下,召回率 0.046 参考文章: 1.sklearn中predict_proba的用法例子 2.Python机器学习笔记 Grid SearchCV(网格搜索) 3.scikit-learn随机森林调参小结 4.ROC曲线和AUC值的计算
2023-08-04 09:20:161

第二章 模型评估与选择

上一章,简略地介绍了机器学习,以及 数据集、数据集、测试集、假设空间、版本空间等等的相关概念 。这一章就开始讲模型评估与选择了,因为书上是以“学习器”来称呼模型的,所以下面我也用学习器来进行说明总结。 什么是经验误差? 在分类样本时会出现分类错误,我们把分类错误的样本数占样本总数的比例称为 “错误率” , 精度 即正确率,自然是1-错误率了。学习器的 实际预测输出 与样本 实际输出 之间的 差异 就称为 “误差” ,于 训练集 就是 “经验误差” ,于 新样本 就是 “泛化误差” 。 什么是过拟合? 我们希望学习器能在新样本的预测中有更好的效果,即泛化性能最大化。但 在学习过程中 ,往往会把训练集中的样本学得过多,使得泛化降低,就是说 学到了 训练样本个体的特点而不是总体样本的特点,或者说学了这个训练集的特殊点, 相对于所有潜在的样本来说的特点 。这就是 “过拟合” ,那么与过拟合相对的就是 “欠拟合” ,反而思之,便是学得不到位,样本的一般性质都掌握不了! 因为过拟合无法避免,所以我们想要去减少它的风险。 其实就是 对模型的泛化误差进行评估,然后选择泛化误差最小那个。 对多种学习算法、参数配置进行选择即模型选择: 一个学习算法→不同参数配置→不同模型 在实验测试中,只有数据集可用,为了对学习器的泛化误差进行评估,只能 从数据集(验证集)中分离出训练集与测试集 ,测试集用于测试学习器对新样本的判别能力, 将测试集上的“测试误差”作为泛化误差的近似 。故 测试集要尽可能与训练集互斥 。 直接将数据集划分两个互斥的集合,一个作训练集,一个作测试集。训练集、测试集的划分要尽可能保持数据分布一致性。即 保持训练集和测试集中样本类别比例相差不大,否则会产生偏差 。一般确定训练集与测试集的样本比例之后,对于数据集的样本划分的方法也有很多, 不同划分方法造成模型评估结果也不同,所以就要进行多次留出法,随机划分重复评估再取平均值作为评估结果 。对于留出法,其划分样本于训练集与测试集的比例要适当,若是训练集含有大多数样本,那么其模型结果便与数据集训练出来的模型接近,但是由于测试集样本过少,其评估结果就不那么准确,反之也是一样的道理。 故常常采取2/3~4/5的样本作为训练集,其余作为测试集。 将数据集划分为k个大小相似的互斥子集,即互不包含。 每个子集尽可能保持数据分布的一致性,即通过 分层采样 得到。 这k个子集又分出k-1个作为训练集,剩下一个作为测试集,可以分k次,进行k次训练和测试 ,最终也是求其 结果的均值 。同留出法, 交叉验证法要随机使用不同的划分重复多次 ,最终结果是多次k折交叉验证结果的均值。比如“10次10折交叉验证”就会有100次训练,有100个训练结果(模型)。 交叉验证法有一个特例,其名为 留一法 ,就是数据集 有多少个样本,就划分成多少个子集 ,即每个子集一个样本,于是随机划分只会产生一种结果, 所以这种方法被实际评估的模型与期望评估的用数据集训练出来的模型很相似。 其缺点是当数据集很大的时候,用它就需要庞大的计算量(还未考虑调参)。 上面两种方法是需要将数据集划分的,这样自然会让 用训练集训练出的模型 与 用数据集训练出来的模型 有一定的 估计偏差 。如此,自助法以自助采样法为基础,简单地讲就是重复随机抽样, 从数据集D中进行重复随机抽样m次,便会得到一个含有m个样本的数据集D 1 ,这就是自助采样的结果。 对于 样本在m次不被采集到 的概率: 这说明了,D中大概有36.8%的样本没有出现在D 1 中。于是我们可以 把D 1 作为训练集 ,把那约 36.8%的样本作为测试集 。其优点是对于 数据集较小、难以有效划分训练 时很有用,其缺点就是改变了初始数据集的划分,这可能会引入估计偏差。 什么是调参? 上面粗略地提到过参数的调整,我们 在进行模型的评估和选择时,不仅要对学习算法进行选择,还要对算法参数进行设定 ,这便是调参。 梳理一下: 参阅自: 机器学习为什么需要训练,训练出来的模型具体又是什么? 回到调参,对于每种参数都训练出模型是不现实的,我们应 对每个参数选定一个范围和步长 ,选出的参数即为 候选参数值(一般10个以内) ,最终从这些候选参数值中产生 选定值 。这是一种折中的结果,是为了使学习过程成为可能。 然鹅,尽管我们得到了这个模型,但这不是最终提交给用户的模型,我们 需要对数据集重新训练 ,使用全部样本以训练出的模型,才是最终模型。 习得模型在实际遇到的数据称为测试数据;模型评估与选择中用于评估测试的数据称为"验证集"。 例如:在研究对比不同算法的泛化性能时,用测试集上的判别效果来评估模型在实际使用中的泛化性能,而把训练数据分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。 是衡量模型泛化能力的评价标准。 其反映了 任务需求 。对于给定的样例集D={(x 1 ,y 1 ),(x 2 ,y 2 ),...,(x m ,y m )},其中的y是x的真实标记,现在要评估学习器f的性能,于是把f的结果与y进行比较。 回归任务——性能度量——“均方误差” : 一般的,对于数据分布 和概率密度函数p(·),均方误差可以表示为: 下面主要介绍 分类任务中常用的性能度量 。 上面这两种就是分类任务中常用的性能度量啦!对于样例集D,分类错误率定义如下: 【注:Ⅱ(·)是指示函数。若·( 即对括号内进行逻辑判断 )为 真 则取值为 1 , 假 则取 0 】 精度定义: 一般的: 对于真实类别与学习器预测类别的异同,我们可以分为真正例、假反例、假正例、真反例,分别称为TP、FN、FP、TN(T=True,F=False,P=Positive,N=Negative)。这里的 真假是针对学习器预测结果 来说的。 于是查准率P与查全率R定义如下: 这 两个性能度量是矛盾的,呈负相关 。 我们常常根据学习器的预测结果对样例进行排序, 把“最可能”是正例的放在前面 。按这个顺序,逐个把样本作为正例进行预测,每次都可以计算出当前的查准率与查全率,然后以查准率为纵轴,查全率为横轴,作P-R图如西瓜书p 31 。 若一个学习器的P-R图完全包含了另一个,则说明前者性能更优于后者。 但往往会出现不完全包含, 出现交叉的情况 ,那么我们 一般用F1 来对比衡量。 在说F1度量之前,先说一下平衡点。 平衡点(BEF) 是综合考虑查准率与查全率的性能度量。是 “查准率 = 查全率” 时的取值。是一种简单的度量。 F1度量: 一般形式: 其中 >0 度量了查全率对查准率的 相对重要性 。 >1时,查全率有更大的影响, <1时,查准率有更大的影响。 上面提及到的性能度量的 平均值 (在各 混淆矩阵 (其实就是上面真假正反例的矩阵)上分别计算出查准率与查全率,再计算平均值)称为 “宏查准率”(macro—P)、“宏查全率”(macro—R)以及"宏F1"(macro—F1) ,前两个均值就是算术平均的计算方式,相加除以n,最后一个则是根据前两个计算得来,参考上面F1的定义。 上面是一种做法,也可以把混淆矩阵的真假正反例进行平均,则有 、 、 、 ,于是可求出 “微查准率”(micro—P)、“微查全率”、“微F1”。 然后你懂的,参考上面写的相关公式,代入即可。 ROC全称是“受试者工作特征曲线”,根据预测结果对样例进行排序,然后按顺序逐个把样本作为正例进行预测,以每次计算出的“真正例率”(TPR)作为纵轴,“假正例率”(FPR)作为横轴。两者定义如下: ROC曲线下的面积即为AUC ,是用来比较当两个学习器的ROC曲线相交不完全包含,要进行性能比较时,则使用AUC。 AUC的估算 : 其与排序误差有紧密联系,于是给定 个反例, 个正例,令 和 分别表示反例、正例的集合。则 排序损失 定义为: 对应的是 ROC曲线之上的面积 ,由此有: . 为何引入代价? 因为.......你这样做是要付出代价的!即为所造成结果的超额处理。引入代价是为了 衡量不同类型错误所造成不同的损失 ,可为错误赋予 “非均等代价” . 代价矩阵 : 其中 表示将第i类样本预测为第j类样本的代价。 例如上矩阵中,损失程度相差越大, 与 值的差别越大,比较一般是以 代价比值 而非绝对值。(即倍数关系) 从前面提到的性能度量, 均是在假设均等代价前提下 进行计算的,如今引入了非均等代价,便要对其考虑在内。 于是将上面代价矩阵中的第0类作正例,第1类作反例,而 与 分别表示正例子集和反例子集,则以错误率为例子,“代价敏感”错误率为: 除此之外,若令 中的 不限取0和1,则可定义出多分类任务的代价敏感性能度量。 那么在非均等代价下,ROC曲线无法直接反映学习器的期望总代价,于是我们引入“代价曲线”,其横轴是取值为[0,1]的正例概率代价: 其中p是样例为正例的概率,纵轴是取值为[0,1]的 归一化 代价: 其中FNR=1-TRP。ROC曲线上的每一点对应代价平面上的一条线段,若ROC曲线上一点为(FPR,TPR)则对应一条从(0,FPR)到(1,FNR)的线段,于是 所有线段的下界围成的面积即为在所有条件下学习器的期望总体代价。 有了实验评估方法和性能度量之后,便是对学习器的泛化性能进行比较。此时为了对学习器进行适当的比较,统计假设检验为我们进行学习器性能比较提供了重要依据。该节默认以错误率为性能度量。 1. 二项检验 2. t检验
2023-08-04 09:20:241

推荐系统之评估方法和评价指标PR、ROC、AUC

推荐系统的评估相关的知识比重在整个推荐系统的知识框架中占比不大,但是其重要程度不言而喻,因为采用的评价指标直接影响到了推荐系统的优化方向是否正确。 评价指标主要用于评价推荐系统各方面的性能 ,按照应用场景可以分为离线评估和线上测试。其中离线评估的主要方法包括 Holdout检验、交叉检验、留一验证、自助法 等,评价指标主要包括 用户满意度、预测准确度、召回率、覆盖率、多样性、新颖性、流行度、均方根误差、对数损失、P-R曲线、AUC、ROC曲线 等等。线上测试的评估方法主要包括 A/B测试、Interleaving方法 等,评价指标主要包括 点击率、转化率、留存率、平均点击个数 等等。本文将着重介绍 离线评估相关方法和指标 ,尤其是 P-R曲线、AUC、ROC曲线 等,这些评价指标是最常用的也是最基本的,出现在各类推荐相关的论文中,因此需要重点掌握。 在推荐系统的评估过程中,离线评估往往被当做最常用也是最基本的评估方法。顾名思义,离线评估是指在将模型部署于线上环境之前,在离线环境中进行的评估。由于不用部署到生产环境,离线评估没有线上部署的工程风险,也无须浪费宝贵的线上流量资源,而且具有测试时间短,同时进行多组并行测试、能够利用丰富的线下计算资源等诸多优点。 Holdout检验的缺点也很明显,即在验证集上计算出来的评估指标与训练集合验证集的划分有直接关系,如果仅仅进行少量Holdout检验,则得到的结论存在较大的随机性。为了消除这种随机性,“交叉检验”的思想被提出。 结果: 精准率和召回率是矛盾统一的两个指标:为了提高精准率,分类器需要尽量在“更有把握时”才把样本预测为正样本,即降低了精准率计算公式中的分母部分。但往往会因为过于保守而漏掉很多“没有把握”的正样本,导致召回率过低。 以挑选西瓜为例,若希望将好瓜尽可能多地挑选出来,则可通过增加选瓜的数量来实现,如果将所有的西瓜都选上,那么所有的好瓜也必然都被选上了,这样就会导致Precision很低,但是Recall就会相对较高。若希望选出的瓜中好瓜比例尽可能高,则可只挑选最有把握的瓜,但这样就难免会漏掉不少好瓜,使得Recall较低。 为了综合反映Precision和Recall的结果,可以使用F1-score,F1-score是精准率和召回率调和平均值,定义如下: 用一张图总结一下: 然后,由此引出True Positive Rate(真阳率TPR)、False Positive Rate(伪阳率FPR)两个概念,计算方式如下: 仔细观察上面的两个式子,发现两个式子的分子其实对应了混淆矩阵的第二行,即预测类别为1的那一行。另外可以发现TPR就是用TP除以TP所在的列,FPR就是用FP除以FP所在的列。二者的含义如下: 表示的意义是:对于不论真实类别是0还是1的样本,模型预测样本为1的概率都是相等的。 换句话说,模型对正例和负例毫无区分能力,做决策和抛硬币没啥区别。因此,我们认为AUC的最小值为0.5(当然也存在预测相反这种极端的情况,AUC小于0.5,这种情况相当于分类器总是把对的说成错的,错的认为是对的,那么只要把预测类别取反,便得到了一个AUC大于0.5的分类器)。 其中,1代表正样本,0代表负样本。我们来计算下它们的Precision。如下表所示: AP的计算只取正样本处的Precision进行平均,即AP = (1/1+2/4+3/5+4/6)/4=0.6917。如果推荐系统对测试集中每个用户都进行样本排序,那么每个用户都会计算出一个AP值,再对所有用户的AP值进行平均,就得到了mAP。也就是说,mAP是对精确度平均的平均。 值得注意的是,mAP的计算方法和P-R曲线、ROC曲线的计算方式完全不同,因为mAP需要对每个用户的样本进行分用户排序,而P-R曲线和ROC曲线均是对全量测试样本进行排序。 下面以一个经典的莺尾花分类的例子来展示各种指标的计算。 导入莺尾花数据,使用Holdout检验,将数据集随机划分成训练集和测试集: 创建一个线性SVM分类器,计算测试数据到决策平面的距离以及对测试数据进行预测: 计算准确率: 计算精准率: 计算召回率: 计算F1-Score: 计算精确率均值AP: 计算混淆矩阵: 绘制P-R曲线,并且计算AUC: 绘制ROC曲线并且计算AUC: 无论离线评估如何仿真线上环境,终究无法完全还原线上的所有变量。对几乎所有的互联网公司来说,线上A/B测试都是验证新模块、新功能、新产品是否有效的主要测试方法。 上图中用户被随机均分成两组,橘色和绿色代表被控制的变量,最右侧是转化率。通过这种方式可以看到,系统中单个变量对系统产生的整体影响。 相对离线评估而言,线上A/B测试无法被替代的原因主要有以下三点: 一般来讲,A/B测试都是模型上线前的最后一道测试,通过A/B测试检验的模型将直接服务于线上用户,完成公司的商业目标。因此,A/B测试的指标与线上业务的核心指标保持一致。 下表列出了电商类推荐模型、新闻类推荐模型、视频类推荐模型的线上A/B测试的主要评估指标: 线上A/B测试的指标与离线评估指标有较大差异。离线评估不具备直接计算业务核心指标的条件,因此退而求其次,选择了偏向于技术评估的模型相关指标。但在公司层面,更关心能够驱动业务发展的核心指标。因此,在具备线上测试环境时,利用A/B测试验证模型对业务核心指标的提升效果是有必要的。从这个意义上讲,线上A/B测试的作用是离线评估无法替代的。
2023-08-04 09:20:311

用KNN算法判断知识掌握程度高低

KNN算法既可以解决分类问题,也可以解决预测问题。 基础思想:通过计算每个训练样例到待分类样品的距离,取和待分类样品距离最近的K个训练样例,K个样品中哪个类别的训练样例占多数,则待分类样品就属于哪个类别。 对于离散型因变量,从k个最近的已知类别样本中挑选出频率最高的类别用于未知样本的判断;对于连续型因变量,将k个最近的已知样本均值用作未知样本的预测。 k值过小,模型过拟合,例如k=1,未知样本的类别将由最近的1个已知样本点来决定,对于训练数据来说,训练误差几乎为0,对于测试数据来说,训练误差可能会很大,因为距离最近的1个已知样本点可以是异常观测值,也可以是正常观测值。 k值过大,模型欠拟合,例如k=N,未知样本的类别将由所有已知样本中频数最高的类别决定,不管是训练集还是测试集被判为一种类别,易欠拟合。 一般利用多重交叉验证得到平均误差最小的k值。还有一种方法是设置k近邻样本的投票权重,对已知样本距离较远的设置权重低一些,较近的设置权重高一些,通常将权重设置为距离的倒数。 点与点之间的距离即相似性,一般用欧氏距离,即L2范数 或者曼哈顿距离,即L1范数 或者余弦相似度cosα 或者杰卡德相似系数,即J=|A∩B|/|A∪B| 在使用距离方法来度量相似性时,要使所有变量数值化(通过哑变量或者重编码为0,1,2),而且采用标准化方法进行归一化,防止数值变量的量纲影响 近邻搜寻方法包括:暴力搜寻法(全表扫描),kd树(k为训练集中包含的变量个数,而非KNN中的k个邻近样本,先用所有已知类别的样本点构造一棵树,再将未知类别应用在树上),球树搜寻(将kd树中的超矩形体换成了超球体)。 优点: 精度高,对异常值不敏感,无数据输入假定; KNN 是一种在线技术,新数据可以直接加入数据集而不必进行重新训练; KNN 理论简单,容易实现。 缺点: 对于样本容量大的数据集计算量比较大,即计算复杂度高; 必须保存全部数据集,即空间复杂度高; KNN 每一次分类都会重新进行一次全局运算; 样本不平衡时,预测偏差比较大。如:某一类的样本比较少,而其它类样本比较多; K 值大小的选择; KNN 无法给出基础结构信息,无法知晓平均实例样本与典型实例样本具有什么特征,即无法给出数据的内在含义。 应用领域: 文本分类;模式识别;聚类分析;多分类领域。 行表示每一个被观测的学生, STG:在目标学科上的学习时长, SCG:重复次数 STR:相关科目的学习时长 LPR:相关科目的考试成绩 PEG:目标科目的考试成绩 (以上指标均已标准化) UNG:对知识的掌握程度高低 利用多重交叉验证获取符合数据的理想k值 经过10重交叉验证,最佳的近邻个数为6 weights=uniform,表示投票权重一样 =distance,表示投票权重与距离成反比 从主对角线看,绝大多数样本被正确分类 通过热力图可视化混淆矩阵 行代表真实地,列代表预测的,主对角线上的颜色比较深,说明绝大多数样本是被正确分类的。 下面得到模型在测试集上的预测准确率: 整体预测准确率为91.09%,要得到每个类别的准确率: 第一列为预测精度,即”预测正确的类别个数/该类别预测的所有个数" 第二列为预测覆盖率,即”预测正确的类别个数/该类别实际的所有个数" 第三列为前两列的加权结果 第四列为类别实际的样本个数 对于预测问题的解决同决策树中一样,用MSE衡量
2023-08-04 09:20:391

统计分析中Kappa值的意义是什么?

统计分析中Kappa值的意义是用来衡量两个变量一致性的指标,如果将两个变量换为分类结果和验证样本,就可以用来评价分类精度了。Kappa系数是一个用于一致性检验的指标,也可以用于衡量分类的效果。因为对于分类问题,所谓一致性就是模型预测结果和实际分类结果是否一致。kappa系数的计算是基于混淆矩阵的,取值为-1到1之间,通常大于0。Kappa系数它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类中地表真实像元总数与该类中被分类像元总数之积对所有类别求和的结果,再除以总像元数的平方差减去某一类中地表真实像元总数与该类中被分类像元总数之积对所有类别求和的结果所得到的。
2023-08-04 09:20:481