主要内容

预测

使用广义可加模型(GAM)对观测结果进行分类

    描述

    例子

    标签=预测(MdlX返回的向量预测类标签用于表或矩阵中的预测数据X,基于广义加性模型Mdl对于二元分类,训练的模型可以是完整的,也可以是紧凑的。

    每一次观察X时,预测的类标签对应于最小值预期的误分类代价

    例子

    标签=预测(MdlX“包括相互作用”,includeInteractions指定是否在计算中包含交互项。

    例子

    标签分数]=预测(___还使用前面语法中的任何输入参数组合返回分类分数。

    例子

    全部折叠

    利用训练样本训练广义可加性模型,然后对测试样本进行标记。

    加载fisheriris数据集。创建X作为一个数字矩阵,包含花斑和维珍鸢尾的萼片和花瓣尺寸。创建Y作为字符向量的细胞阵列,包含相应的虹膜种类。

    负载fisheririsinds=strcmp(种类,“多色的”)| strcmp(种类,“维吉尼亚”);X =量(第1:);: Y =物种(第1);

    利用系统中的类信息,将观测数据随机划分为训练集和测试集,并进行分层Y.指定30%的抵抗样品进行测试。

    rng(“默认”%为了再现性简历= cvpartition (Y,“坚持”, 0.30);

    提取训练和测试指标。

    trainInds =培训(简历);testInds =测试(简历);

    指定训练和测试数据集。

    XTrain = X (trainInds:);YTrain = Y (trainInds);XTest = X (testInds:);欧美= Y (testInds);

    使用预测器训练广义加性模型XTrain和类标签YTrain.推荐的做法是指定类名。

    Mdl = fitcgam (XTrain YTrain,“类名”, {“多色的”“维吉尼亚”})
    Mdl = classificationongam ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'versicolor' 'virginica'} ScoreTransform: 'logit' Intercept: -1.1090 NumObservations: 70属性,方法

    Mdl是一个分类模型对象。

    预测测试样品标签。

    标签=预测(Mdl,XTest);

    创建一个包含真实标签和预测标签的表格。为10个观察值的随机集合显示该表格。

    t=表(Y测试、标签、,“VariableNames”, {“真正的标签”“预测标签”});idx = randsample (sum (testInds), 10);t (idx:)
    ans=10×2表“UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU'}{'versicolor'}{'virginica'}{'virginica'}

    根据真实标签创建一个混淆图欧美以及预测的标签标签

    厘米= confusionchart(欧美、标签);

    图中包含ConfusionMatrixChart类型的对象。

    使用分类GAM估计新观测的后验概率的logit,该分类GAM包含预测器的线性和交互项。使用内存高效的模型对象对新的观察进行分类。指定在对新观察结果进行分类时是否包括交互项。

    加载电离层数据集。该数据集有34个预测器和351个雷达返回的二进制响应,或坏(“b”)还是好(“g”).

    负载电离层

    将数据集划分为两个集:一个包含训练数据,另一个包含新的、未观察到的测试数据。为新的测试数据集保留10个观察值。

    rng(“默认”%为了再现性n =大小(X, 1);newInds = randsample (n, 10);第1 = ~ ismember (1: n, newInds);XNew = X (newInds:);YNew = Y (newInds);

    使用预测器训练GAMX和类标签Y.推荐的做法是指定类名。指定包含10个最重要的交互项。

    Mdl = fitcgam (X(第1:),Y(第1),“类名”, {“b”“g”},“互动”,10);

    Mdl是一个分类模型对象。

    通过减小训练模型的大小来节省内存。

    CMdl =紧凑(Mdl);谁(“Mdl”“CMdl”
    Name Size Bytes Class Attributes CMdl 1x1 1081091 classregg .learning. Class . compactclassificationongam Mdl 1x1 1282650 classificationongam . Class . Name Size Bytes Class Attributes CMdl 1x1 1081091 classregg .learning. Class . compactclassificationongam Mdl 1x1 1282650 classificationongam . Class

    CMdl是一个CompactClassificationGAM模型对象。

    使用线性和交互术语预测标签,然后只使用线性术语。要排除交互项,请指定“IncludeInteractions”,假的.通过指定ScoreTransform财产“没有”

    CMdl。ScoreTransform =“没有”[标签,分数]=预测(CMdl,XNew);[标签,分数,分数]=预测(CMdl,XNew,“IncludeInteractions”,假);t=表格(YNew,labels,scores,labels\u nointeraction,scores\u nointeraction,...“VariableNames”, {“真实标签”“预测标签”“分数”...“没有交互作用的预测标签”“没有互动的分数”})
    t =10×5表真正的标签标签预测分数预测标签没有交互的分数没有交互  ___________ ________________ __________________ _____________________________________ ___________________________ {' -40.23 - 40.23 g’}{‘g’}{‘g’}-37.484 - 37.484{‘g’}{‘g’}-41.215 - 41.215 -38.737 - 38.737{‘g’}{‘g’}{‘g’}{‘g’}44.413 -44.413 -42.18642.186 {'g'} {'b'} 3.0658 -3.0658 {'b'} 1.4338 -1.4338 {'g'} {'g'} -84.637 84.637 {'g'} -81.269 81.269 {'g'} {'g'} -27.44 27.44 {'g'} -24.831 24.831 {'g'} {'g'} -62.989 62.989 {'g'} -60.4 60.4 {'g'} {'g'} -77.109 77.109 {'g'} -75.937 75.937 {'g'} {'g'} -48.519 48.519 {'g'} -47.067 47.067 {'g'} {'g'} -56.256 56.256 {'g'} -53.373 53.373

    测试数据的预测标签Xnew不要因包含交互术语而有所不同,但估计的分数值不同。

    训练广义可加模型,然后利用第一类的概率值绘制后验概率区域。

    加载fisheriris数据集。创建X作为一个数字矩阵,包含了花斑和维珍的两个花瓣尺寸。创建Y作为字符向量的细胞阵列,包含相应的虹膜种类。

    负载fisheririsinds=strcmp(种类,“多色的”)| strcmp(种类,“维吉尼亚”);X =量(第1 3:4);: Y =物种(第1);

    使用预测器训练广义加性模型X和类标签Y.推荐的做法是指定类名。

    Mdl = fitcgam (X, Y,“类名”, {“多色的”“维吉尼亚”});

    Mdl是一个分类模型对象。

    在观测的预测器空间中定义一个网格值。

    xMax=max(X);xMin=min(X);x1=linspace(xMin(1),xMax(1),250);x2=linspace(xMin(2),xMax(2),250);[x1Grid,x2Grid]=meshgrid(x1,x2);

    预测网格中每个实例的后验概率。

    [~, PosteriorRegion] =预测(Mdl [x1Grid (:), x2Grid (:)));

    使用第一类的概率值绘制后验概率区域“多色的”

    h =散射(x1Grid (:), x2Grid (:), 1, PosteriorRegion (: 1));h.MarkerEdgeAlpha = 0.3;

    绘制训练数据。

    持有gh=gscatter(X(:,1),X(:,2),Y,“k”“dx”);头衔(“虹膜瓣测量和后验概率”)包含(“花瓣长度(厘米)”) ylabel (‘花瓣宽度(厘米)’)传说(gh,“位置”“最佳”) colorbar举行

    图中包含一个轴对象。标题为“虹膜花瓣测量”和“后验概率”的Axis对象包含3个类型为“散射”、“直线”的对象。这些物体代表维吉尼亚州的花色。

    输入参数

    全部折叠

    广义加性模型,指定为分类CompactClassificationGAM模型对象。

    预测器数据,指定为数字矩阵或表。

    每一行的X对应一个观察值,每列对应一个变量。

    • 对于数值矩阵:

      • 组成列的变量X必须和训练的预测变量有相同的顺序吗Mdl

      • 如果你训练Mdl那就用桌子吧X如果表格包含所有数值预测变量,则可以是数值矩阵。

    • 对于表格:

      • 如果你训练Mdl使用表(例如,Tbl),然后在X必须具有与中相同的变量名和数据类型Tbl. 但是,的列顺序X不需要对应的列顺序Tbl

      • 如果你训练Mdl使用数字矩阵,然后将预测值命名为Mdl。PredictorNames和相应的预测变量名X一定是一样的。要在培训期间指定预测值名称,请使用“PredictorNames”名称-值参数。所有的预测变量X必须是数值向量。

      • X可以包含额外的变量(响应变量、观察权重等),但是预测忽略了它们。

      • 预测除了字符向量的单元金宝app格数组外,不支持多列变量或单元格数组。

    数据类型:表格|双重的|

    标记以包括模型的交互项,指定为真正的

    默认的includeInteractions值是真正的如果Mdl包含交互方面。该值必须为如果模型不包含交互项。

    数据类型:逻辑

    输出参数

    全部折叠

    预测类标签,作为分类或字符数组、逻辑或数字向量或字符向量的单元格数组返回。

    如果Mdl。ScoreTransform分对数的(默认值),则每一项标签对应于类的最小值预期的误分类代价对于对应的X。否则,每个条目对应于得分最高的班级。

    标签是否具有与所观察的类标签相同的数据类型Mdl,它的长度等于里面的行数X(该软件将字符串数组视为字符向量的单元格数组。)

    预测的后验概率或类得分,作为两列数字矩阵返回,行数与X.第1列和第2列分数包含第一个类(或负类,Mdl.ClassNames (1))和二等班(或积极班,Mdl.ClassNames (2))的评分值。

    如果Mdl。ScoreTransform分对数的(默认),则分数值为后验概率。如果Mdl。ScoreTransform“没有”,则得分值为后验概率的对数。该软件提供了几个内置的分数转换功能。有关详细信息,请参见ScoreTransform的属性Mdl

    可以通过指定“ScoreTransform”论据fitcgam在训练期间,或通过改变ScoreTransform培训后的财产。

    更多关于

    全部折叠

    预测类标签

    预测通过最小化预期误分类成本进行分类:

    y 参数 最小值 y 1 ... K j 1 K P j | x C y | j

    地点:

    • y 是预测的分类。

    • K为类数。

    • P j | x 是类的后验概率j供观察x

    • C y | j 将观察结果分类为y当它真正的阶级是j

    预期的误分类代价

    每个观察的预期误分类成本是将观察分类为每个类别的平均成本。

    假设你有脑袋你想用训练过的分类器来分类的观察结果K类。你将观察结果放入一个矩阵中X每行只有一个观测值。

    期望成本矩阵CE有大小脑袋-借-K.每一行的CE包含将观察结果分类为每个的预期(平均)成本K类。CE (nk

    1 K P | X n C k |

    地点:

    • K为类数。

    • P | X n 是类的后验概率供观察Xn).

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

    真实误分类成本

    真正的误分类代价是将观察结果分类为错误类别的代价。

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

    介绍了R2021a