resubLoss

的损失k-最近邻分类器

描述

例子

l= resubLoss (mdl返回分类损失通过重新替换,这是对使用的数据计算的损失fitcknn创建mdl

分类损失(l)是一个数值标量,其解释取决于损失函数和中观测权值mdl

l= resubLoss (mdl“LossFun”,lossfun返回丢失函数的重新替换丢失lossfun,指定为名称-值对参数。

例子

全部折叠

创建一个k- Fisher虹膜数据的最近邻分类器,其中 k = 5。

加载Fisher虹膜数据集。

负载fisheriris

为五个最近的邻居创建一个分类器。

mdl = fitcknn(量、种类、“NumNeighbors”5);

检查分类器的重新替换损失。

L = resubLoss (mdl)
L = 0.0333

分类器预测1/30的训练数据有错误的分类。

输入参数

全部折叠

k-最近邻分类器模型,指定为ClassificationKNN对象。

损失函数,指定为内置的损失函数名称或函数句柄。

  • 下表列出了可用的损耗函数。

    价值 描述
    “binodeviance” 二项异常
    “classiferror” 分类错误
    “指数” 指数
    “枢纽” 铰链
    分对数的 物流
    “mincost” 最小的预期误分类成本(用于后验概率的分类分数)
    “二次” 二次

    “mincost”适用于后验概率的分类分数。默认情况下,k最近邻模型返回后验概率作为分类分数(见预测)。

  • 可以使用以下命令为自定义损失函数指定函数句柄(例如,@lossfun)。让n是观测的次数XK为不同类别的数目(元素个数(mdl.ClassNames))。您的自定义损失功能必须有以下表格:

    函数lossvalue = lossfun(C,S,W,Cost)

    • C是一个n——- - - - - -K逻辑矩阵,其行表示相应的观测所属的类。中的列顺序对应于类的顺序mdl。ClassNames.构造C通过设置C (p, q) = 1,如果观察p是在课堂上,每一行。设置行中的所有其他元素p0

    • 年代是一个n——- - - - - -K分类分数的数值矩阵。中的列顺序对应于类的顺序mdl。ClassNames.这个论点年代是一个矩阵的分类分数,类似于输出预测

    • W是一个n-乘1数值向量的观测权值。如果你通过W,软件将权重归一化1

    • 成本是一个K——- - - - - -K误分类代价的数值矩阵。例如,Cost = ones(K) - eye(K)指定0正确分类及1误分类。

    • 输出参数lossvalue是一个标量。

有关损失函数的详细信息,请参见分类损失

数据类型:字符|字符串|function_handle

算法

全部折叠

分类损失

分类损失函数测量分类模型的预测不准确性。当你在许多模型中比较同一类型的损失时,损失越低表明预测模型越好。

考虑以下场景。

  • l为加权平均分类损失。

  • n为样本量。

  • 二进制分类:

    • yj是被观察的类标签。软件将其编码为-1或1,分别表示阴性或阳性类别。

    • fXj)为观察(行)的原始分类评分j预测数据的X

    • jyjfXj)为分类观察的分类评分j对应的类yj.积极的价值观j表明正确的分类,对平均损失贡献不大。负的j指出错误的分类,并对平均损失有很大的贡献。

  • 对于支持多类分类的算法(即,万博1manbetxK≥3):

    • yj是向量K- 1个零,1在对应于真实的,观察类的位置yj.例如,如果第二个观察的真正类是第三类和K= 4,然后y2=[0 0 1 0] '。类的顺序对应于一会输入模型的属性。

    • fXj)为长度K用于观察的班级分数向量j预测数据的X.分数的顺序与表中班级的顺序相对应一会输入模型的属性。

    • jyjfXj)。因此,j是模型对真实的、观察到的类所预测的标量分类分数。

  • 观测权重jwj.该软件将观测权值归一化,使其和为相应的先验类别概率。软件还将先验概率归一化,使其和为1。因此,

    j 1 n w j 1.

给定此场景,下表描述了支持的损失函数,可以使用万博1manbetx“LossFun”名称-值对的论点。

损失函数 的价值LossFun 方程
二项异常 “binodeviance” l j 1 n w j 日志 1 + 经验值 2 j
指数损失 “指数” l j 1 n w j 经验值 j
分类错误 “classiferror”

l j 1 n w j y j y j

它是误分类观察的加权分数 y j 为后验概率最大的类对应的类标签。x}是指示函数。

铰链的损失 “枢纽” l j 1 n w j 马克斯 0 1 j
分对数损失 分对数的 l j 1 n w j 日志 1 + 经验值 j
最小的成本 “mincost”

最小的成本。该软件利用这一程序计算加权最小成本的观测j= 1,…,n

  1. 估计1 -K预期的观察分类成本向量j:

    γ j f X j C

    fXj)为二类和多类分类的类后验概率列向量。C输入模型中存储的成本矩阵成本财产。

  2. 为观察j,预测分类标签对应的最小期望分类成本:

    y j 最小值 j 1 ... K γ j

  3. 使用C,确认已发生的成本(cj)做了预测。

加权平均最小成本损失为

l j 1 n w j c j

二次损失 “二次” l j 1 n w j 1 j 2

这个数字比较的损失函数(除了“mincost”)进行一次观察.一些函数被归一化通过[0,1]。

真正的误分类代价

两种成本与KNN分类相关:每类的真实误分类成本和每观察的预期误分类成本。

属性可以设置每个类的真正误分类代价“成本”运行时的名称-值对参数fitcknn.的值成本(i, j)将观察结果分类的成本是多少j如果它真正的阶级是.默认情况下,成本(i, j) = 1如果我~ = j,成本(i, j) = 0如果我=我.换句话说,成本是0正确分类及1不正确的分类。

预期成本

两种成本与KNN分类相关:每类的真实误分类成本和每观察的预期误分类成本。的第三个输出resubPredict为每次观测的预期误分类成本。

假设你有脑袋你用训练过的分类器分类的观察结果mdl,而你有K类。命令

(标签、分数、成本)= resubPredict (mdl)

返回一个矩阵成本的大小脑袋——- - - - - -K,以及其他产出。每一行成本矩阵包含将观察结果分类为每一个的期望(平均)成本K类。成本(n, j)

1 K P | X n C j |

在哪里

  • K为类数。

  • P | X n 后验概率类的为观察Xn)。

  • C j | 对观察进行分类的真正误分类成本是j当它真正的阶级是

介绍了R2012a