主要内容

ClassificationNeuralNetwork

分类的神经网络模型

    描述

    一个ClassificationNeuralNetwork对象是用于分类的训练、前馈和全连接的神经网络。神经网络的第一个完全连接层与网络输入(预测数据)有一个连接X),每一层都与前一层有一个连接。每一个完全连接的层将输入乘以一个权值矩阵(LayerWeights),然后添加偏差向量(LayerBiases).每个完全连接的层后面都有一个激活函数(激活OutputLayerActivation).最后的全连接层和随后的softmax激活函数产生网络的输出,即分类分数(后验概率)和预测标签。有关更多信息,请参见神经网络结构

    创建

    创建一个ClassificationNeuralNetwork对象的使用fitcnet

    特性

    展开全部

    神经网络属性

    此属性是只读的。

    神经网络模型中全连接层的大小,返回为正整数向量。这th元素双层的输出数是多少TH完全连接的神经网络模型层。

    双层不包括最终完全连接层的大小。这层总是有K输出,K班级数在吗Y

    数据类型:单身的|双倍的

    此属性是只读的。

    学习完全连接层的层权重,作为单元数组返回。这单元格数组中的第Th项对应的层权重为完全连通层。例如,Mdl。LayerWeights {1}返回模型的第一个完全连接层的权重Mdl

    LayerWeights包括最终完全连接层的权重。

    数据类型:细胞

    此属性是只读的。

    了解了完全连接层的层偏差,返回为单元阵列。这单元格数组中的第个条目对应于完全连通层。例如,mdl.layerbiases {1}返回模型的第一个完全连接层的偏差Mdl

    LayerBiases包括最终完全连接层的偏差。

    数据类型:细胞

    此属性是只读的。

    神经网络模型的全连接层的激活函数,返回为字符向量或字符向量的单元数组,其值来自此表。

    价值 描述
    “雷卢”

    修正线性单元(ReLU)函数——对输入的每个元素执行阈值操作,其中任何小于零的值都被设为零,即,

    f x x x 0 0 x < 0

    的双曲正切

    双曲tan (tanh)函数-应用双曲正切函数的每个输入元素

    “乙状结肠”

    Sigmoid函数-对每个输入元素执行以下操作:

    f x 1 1 + e - x

    “没有”

    标识函数——返回每个输入元素,而不执行任何转换,即:fx)=x

    • 如果激活只包含一个激活功能,那么它是神经网络模型的每个完全连接层的激活功能,不包括最终完全连接的图层。最终完全连接图层的激活功能始终是软邮件(OutputLayerActivation).

    • 如果激活是一个激活函数数组,则元素是元素的激活函数神经网络模型的第二层。

    数据类型:字符|细胞

    此属性是只读的。

    最终完全连接层的激活函数,返回为'softmax'.该函数接受每个输入x并返回以下内容,在哪里K是响应变量中的类数:

    f x exp. x σ. j 1 K exp. x j

    结果与预测的分类分数(或后验概率)相对应。

    此属性是只读的。

    参数值用于训练ClassificationNeuralNetwork模型,返回为NeuralNetworkParams对象ModelParameters包含参数值,例如用于训练神经网络分类器的名称-值参数。

    访问ModelParameters通过使用点符号。例如,访问用于初始化模型的完全连接层权重的函数Mdl通过使用Mdl.ModelParameters.LayerWeightInitializer

    收敛控制属性

    此属性是只读的。

    收敛信息,作为结构数组返回。

    描述
    迭代 用于训练神经网络模型的培训迭代次数
    TrainingLoss 训练返回模型的交叉熵损失,或者RERUBLOS(MDL,'LOADFUN','forrorentropy')为模型Mdl
    坡度 损失函数相对于返回模型对应的迭代权值和偏差的梯度
    对应于返回模型的迭代的步长
    时间 所有迭代所花费的总时间(以秒为单位)
    ValidationLoss 返回模型的验证交叉熵损失
    验证检查 在一行中验证损失大于或等于最小验证损失的最大次数
    换货 收敛标准
    历史 看到培训汉语

    数据类型:结构体

    此属性是只读的。

    培训历史,作为桌子返回。

    描述
    迭代 训练迭代
    TrainingLoss 在此迭代中训练模型的交叉熵损失
    坡度 在此迭代中损失函数相对于权值和偏差的梯度
    这个迭代的步长
    时间 在此迭代期间花费的时间(以秒为单位)
    ValidationLoss 在此迭代验证模型的跨熵损耗
    验证检查 验证损失大于或等于最小验证损失的运行总次数

    数据类型:表格

    此属性是只读的。

    求解器用于训练神经网络模型,返回为“LBFGS”.创建一个ClassificationNeuralNetwork模型,fitcnet采用有限内存的Broyden-Fletcher-Goldfarb-Shanno准牛顿算法(LBFGS)作为损耗函数最小化技术,该软件使交叉熵损耗最小化。

    预测属性

    此属性是只读的。

    预测器变量名,作为字符向量的单元格数组返回。元素的顺序PredictorNames对应于预测器名称在训练数据中出现的顺序。

    数据类型:细胞

    此属性是只读的。

    分类预测器索引,返回为一个正整数向量。假设预测数据包含成行的观测数据,CategoricalPredictors包含与包含分类预测值的预测值数据列相对应的索引值。如果没有任何预测值是分类的,则此属性为空([]).

    数据类型:双倍的

    此属性是只读的。

    扩展的预测名称名称,作为字符向量的单元格数组返回。如果模型使用对分类变量的编码,那么ExpandedPredictorNames包括描述扩展变量的名称。除此以外,ExpandedPredictorNames是一样的PredictorNames

    数据类型:细胞

    此属性是只读的。

    用于训练神经网络模型的非标准化预测器,以数字矩阵或表格的形式返回。X的值在行或列中显示观察值,保留其原始方向观察结果的调用中的名称-值参数fitcnet

    数据类型:单身的|双倍的|表格

    响应特性

    此属性是只读的。

    训练中使用的唯一类名,作为数字向量、分类向量、逻辑向量、字符数组或字符向量的单元数组返回。一会具有与类标签相同的数据类型Y(该软件将字符串数组视为字符向量的单元格数组。)一会还确定了类顺序。

    数据类型:单身的|双倍的|分类|逻辑|字符|细胞

    此属性是只读的。

    响应变量名,作为字符向量返回。

    数据类型:字符

    此属性是只读的。

    用于训练模型的类标签,作为数字向量、分类向量、逻辑向量、字符数组或字符向量的单元格数组返回。Y具有与用于训练模型的响应变量相同的数据类型。(该软件将字符串数组视为字符向量的单元格数组。)

    每行Y表示相应观察的分类X

    数据类型:单身的|双倍的|分类|逻辑|字符|细胞

    其他数据属性

    此属性是只读的。

    超参数的交叉验证优化,指定为贝叶斯优化对象或包含超参数和关联值的表。该属性是非空的“OptimizeHyperparameters”创建模型时,名称-值对参数为非空。价值HyperparameterOptimizationResults取决于设置的优化器田野超参数优化选项结构,当您创建模型时。

    的价值优化器 的价值HyperparameterOptimizationResults
    “bayesopt”(默认) 对象的类贝叶斯优化
    “gridsearch”'randomsearch' 使用的超参数表,观测到的目标函数值(交叉验证损失),以及观测值从最低(最好)到最高(最差)的排序

    此属性是只读的。

    在训练数据中存储的观测数XY,返回正数字标量。

    数据类型:双倍的

    此属性是只读的。

    用于拟合模型的原始训练数据的行,作为逻辑向量返回。如果使用所有行,则此属性为空。

    数据类型:逻辑

    此属性是只读的。

    用于训练模型的观测权重,作为n1数字向量。n为观测次数(NumObservations).

    该软件规范化了指定的观察权重权重名称值参数,以便W在一个特定的类别中,总和为该类别的先验概率。

    数据类型:单身的|双倍的

    其他分类属性

    此属性是只读的。

    误分类代价,返回为数值方阵,其中成本(i, j)是将一个点分类为课程的成本j如果它的真实课程是.代价矩阵总是这样的形式:成本(i, j) = 1如果我~ = j成本(i, j) = 0如果我=我.行对应真正的类,列对应预测的类。的行和列的顺序成本中类的顺序一会

    数据类型:双倍的

    此属性是只读的。

    每个类的先验概率,作为数字向量返回。元素的顺序事先的对应的元素一会

    数据类型:双倍的

    分数转换,指定为字符向量或功能句柄。ScoreTransform表示用于转换预测分类分数的内置转换函数或函数句柄。

    将分数转换函数改为作用例如,使用点表示法。

    • 对于内置函数,请输入字符向量。

      mdl.scoretransform ='作用”;

      此表介绍了可用的内置功能。

      价值 描述
      “双重逻辑” 1 / (1 +e-2x
      'invlogit' 日志(x/(1 -x))
      'ismax' 将得分最高的类的分数设置为1,并将所有其他类的分数设置为0
      分对数的 1 / (1 +e- - - - - -x
      “没有”'身份' x(转换)
      “标志” -1 for.x< 0
      0x= 0
      1x> 0
      '对称' 2x- 1
      “symmetricismax” 将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为-1
      “symmetriclogit” 2 / (1 +e- - - - - -x) - 1

    • 对于一个MATLAB®函数或您定义的函数,输入其函数句柄。

      Mdl.ScoreTransform=@作用

      作用必须接受矩阵(原始分数)并返回相同大小的矩阵(转换的分数)。

    数据类型:字符|function_handle

    对象的功能

    展开全部

    紧凑的 缩小机器学习模型的规模
    crossval 交叉验证机器学习模型
    石灰 局部可解释的模型不可知解释(LIME)
    partialDependence 计算部分依赖
    绘图竞争依赖性 创建部分依赖图(PDP)和个人条件期望图(ICE)
    沙普利 福利价值观
    用于神经网络分类器的分类边缘
    损失 神经网络分类器的分类损失
    利润 神经网络分类器的分类边距
    预测 使用神经网络分类器对观测数据进行分类
    resubEdge Resubstitution分类边缘
    resubLoss Resubstitution分类损失
    resubMargin Resubstitution分类保证金
    resubPredict 使用训练的分类器对训练数据进行分类
    compareHoldout 使用新数据比较两个分类模型的准确性
    testckfold. 通过重复的交叉验证比较两个分类模型的精度

    例子

    全部折叠

    训练神经网络分类器,并在测试集上评估分类器的性能。

    读取示例文件信用评级进入桌子。预测因素数据包括资金比率和行业部门信息,以获取公司客户名单。响应变量包括评级机构指定的信用评级。预览数据集的前几行。

    creditrating = readtable (“Credenrating_historical.dat”);头(creditrating)
    ans =.8×8表ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业评级  _____ ______ ______ _______ ________ _____ ________ _______ 62394 0.013 0.104 0.036 0.447 0.142 3{“BB”}48608 0.232 0.335 0.062 1.969 0.281 8 {A} 42444 0.311 0.367 0.074 1.935 0.366 1 {A} 48631 0.194 0.263 0.062 1.017 0.228 - 4 {BBB的}43768 0.121 0.413 0.057 3.647 0.466 39255 {' AAA '}-0.117 - 0.118 0.01 0.179 0.082 4 {' ccc '} 62236 0.087 0.158 0.049 0.816 0.324 2 {' bbb '} 39354 0.005 0.181 0.034 2.597 0.388 7 {' aa '}

    因为ID变量是一个独特的客户ID,即,长度(独特(creditrating.ID))等于观察的数量信用评级,ID变量是一个很差的预测器。删除ID变量,并将行业变量,分类多变的。

    信用=删除Vars(信用,“ID”);Creditrating.Industry =分类(Creditrating.Industry);

    转换评级对序数的响应变量分类多变的。

    信用。=分类(信用。,......“aaa”“AA”“一个”“BBB”“BB”“B”“CCC”],“顺序”,真的);

    将数据划分为训练集和测试集。使用大约80%的观测数据来训练神经网络模型,使用20%的观测数据来测试训练模型在新数据上的性能。使用cvpartition分区数据。

    rng (“默认”分区的再现性c=信用评级(creditrating.Rating,“坚持”,0.20);TrainingIndices =培训(c);培训集的%指数试验=试验(c);%测试集索引creditTrain = creditrating (trainingIndices:);信贷= creditrating (testIndices:);

    通过传递训练数据来训练神经网络分类器creditTrainfitcnet函数。

    mdl = fitcnet(信用箱,“评分”
    Mdl = ClassificationNeuralNetwork PredictorNames:{‘WC_TA’‘RE_TA’‘EBIT_TA’‘MVE_BVTD’‘S_TA’‘工业’}ResponseName:“评级”CategoricalPredictors: 6类名:(AAA AA BBB BB B CCC) ScoreTransform:“没有一个”NumObservations: 3146 LayerSizes: 10激活:“relu”OutputLayerActivation:“softmax”解算器:“LBFGS”ConvergenceInfo:[1×1 struct] TrainingHistory: [1000×7 table]属性,方法

    Mdl是训练有素的ClassificationNeuralNetwork分类器。您可以使用DOT表示法访问属性Mdl.例如,可以指定mdl.traininghistory.获取更多关于神经网络模型训练历史的信息。

    通过计算测试集分类错误来评估分类器在测试集上的性能。使用混淆矩阵将结果可视化。

    testAccuracy = 1 - loss(Mdl,creditTest,“评分”......“LossFun”“classiferror”
    testAccuracy = 0.8003
    信贷confusionchart (creditTest.Rating,预测(Mdl))

    指定神经网络分类器的结构,包括全连接层的大小。

    加载电离层数据集,包括雷达信号数据。X包含预测数据,并且Y是响应变量,其值代表好的(“g”)或坏的(“b”)雷达信号。

    负载电离层

    将数据分离为训练数据(XTrain.)及测试数据(克斯特欧美)通过使用分层坚持分区。保留约30%的观察值用于测试,并将其余观察值用于培训。

    rng (“默认”分区的再现性本量利= cvpartition (Y,“坚持”,0.3);XTrain = X(训练(CVP),:);YTrain = Y(培训(CVP));xtest = x(测试(cvp),:);YTEST = Y(测试(CVP));

    训练神经网络分类器。指定在第一个完全连接层有35个输出,在第二个完全连接层有20个输出。默认情况下,这两个层都使用一个整流线性单元(ReLU)激活功能。控件可以更改完全连接层的激活函数激活名称-值参数。

    mdl = fitcnet(Xtrain,Ytrain,......“LayerSizes”,[35 20])
    Mdl = ClassificationNeuralNetwork ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' NumObservations: 246 LayerSizes: [35 20] activation: 'relu' OutputLayerActivation: 'softmax' Solver: 'LBFGS' ConvergenceInfo: [1×1 struct] TrainingHistory: [47×7 table]属性,方法

    使用的方法获取训练分类器的全连接层的权重和偏差LayerWeightsLayerBiases的属性Mdl.每个属性的前两个元素对应于前两个完全连接的层的值,第三元素对应于最终完全连接层的值,具有用于分类的软MAX激活功能。例如,显示第二完全连接层的权重和偏置。

    Mdl。LayerWeights {2}
    ans =20×350.0481 0.2501 -0.1535 -0.0934 0.0760 -0.0579 -0.2465 1.0411 0.3712 -1.2007 1.1162 0.4296 0.4045 0.5005 0.8839 0.4624 -0.3154 0.3454 -0.0487 0.2648 0.0732 0.5773 0.4286 0.0881 0.9468 0.2981 0.5534 1.0518 -0.0224 0.6894 0.5527 0.7045 -0.6124 0.2145 -0.0790 -0.9489 -1.8343 0.5510 -0.5751 -0.8726 0.8815 0.0203 -1.6379 2.0315 1.7599 -1.4153 -1.4335 -1.1638 -0.1715 1.1439 -0.7661 1.1230 -1.1982 -0.5409 -0.5821 -0.0627 -0.7038 -0.0817 -1.5773 -1.4671 0.2053 -0.7931 -1.6201 -0.1737 -0.7762 -0.3063 -0.8771 1.5134 -0.4611 -0.0649 -0.1910 0.0246 -0.3511 0.0097 0.3160 -0.0693 0.2270 -0.0783 -0.1626 -0.3478 0.2765 0.4179 0.0727 -0.0314 -0.1798 -0.0583 0.1375 -0.1876 0.2518 0.2137 0.1497 0.0395 0.2859 -0.0905 0.4325 -0.2012 0.0388 -0.1441 -0.1431 -0.0249 -0.2200 0.0860 -0.2076 0.0132 0.1737 -0.0415 -0.0059 -0.0753 -0.1477 -0.1621 -0.1762 0.2164 0.1710 -0.0610 -0.1402 0.1452 0.2890 0.2872 -0.2616 -0.4204 -0.2831 -0.1901 0.0036 0.0781 -0.0826 0.1588 -0.2782 0.2510 -0.1069 -0.2692 0.2306 0.2521 0.0306 0.2524 -0.4218 0.2478 0.2343 -0.1031 0.1037 0.1598 1.1848 1.6142 -0.1352 0.5774 0.5491 0.0103 0.0209 0.7219 -0.8643 -0.5578 1.3595 1.5385 1.0015 0.7416 -0.4342 0.2279 0.5667 1.1589 0.7100 0.1823 0.4171 0.7051 0.0794 1.3267 1.2659 0.3197 0.3947 0.3436 -0.1415 0.6607 1.0071 0.7726 -0.2840 0.8801 0.0848 0.2486 -0.2920 -0.0004 0.2806 0.2987 -0.2709 0.1473 -0.2580 -0.0499 -0.0755 0.2000 0.1535 -0.0285 -0.0520 -0.2523 -0.2505 -0.0437 -0.2323 0.2023 0.2061 -0.1365 0.0744 0.0344 -0.2891 0.2341 -0.1556 0.1459 0.2533 -0.0583 0.0243 -0.2949 -0.1530 0.1546 -0.0340 -0.1562 -0.0516 0.0640 0.1824 -0.0675 -0.2065 -0.0052 -0.1682 -0.1520 0.0060 0.0450 0.0813 -0.0234 0.0657 0.3219 -0.1871 0.0658 -0.2103 0.0060 -0.2831 -0.1811 -0.0988 0.2378 -0.0761 0.1714 -0.1596 -0.0011 0.0609 0.4003 0.3687 -0.2879 0.0910 0.0604 -0.2222 -0.2735 -0.1155 -0.6192 -0.7804 -0.0506 -0.4205 -0.2584 -0.2020 -0.0008 0.0534 1.0185 -0.0307 -0.0539 -0.2020 0.0368 -0.1847 0.0886 -0.4086 -0.4648 -0.3785 0.1542 -0.5176 -0.3207 0.1893 -0.0313 -0.5297 -0.1261 -0.2749 -0.6152 -0.5914 -0.3089 0.2432 -0.3955 -0.1711 0.1710 -0.4477 0.0718 0.5049 -0.1362 -0.2218 0.1637 -0.1282 -0.1008 0.1445 0.4527 -0.4887 0.0503 0.1453 0.1316 -0.3311 -0.1081 -0.7699 0.4062 -0.1105 -0.0855 0.0630 -0.1469 -0.2533 0.3976 0.0418 0.5294 0.3982 0.1027 -0.0973 -0.1282 0.2491 0.0425 0.0533 0.1578 -0.8403 -0.0535 -0.0048 1.1109 -0.0466 0.4044 0.6366 0.1863 0.5660 0.2839 0.8793 -0.5497 0.0057 0.3468 0.0980 0.3364 0.4669 0.1466 0.7883 -0.1743 0.4444 0.4535 0.1521 0.7476 0.2246 0.4473 0.2829 0.8881 0.4666 0.6334 0.3105 0.9571 0.2808 0.6483 0.1180 -0.4558 1.2486 0.2453 ⋮
    Mdl。LayerBiases {2}
    ans =20×10.6147 0.1891 -0.2767 -0.2977 1.3655 0.0347 0.1509 -0.4839 -0.3960 0.9248⋮

    最后的全连接层有两个输出,响应变量中的每个类都有一个输出。层输出的数量对应于层权重和层偏差的第一个维度。

    大小(Mdl.LayerWeights{结束})
    ans =1×22 20
    大小(Mdl.LayerBiases{结束})
    ans =1×22 1

    为了估计训练分类器的性能,计算测试集分类误差Mdl

    testError =损失(MDL,XTEST,YTEST,......“LossFun”“classiferror”
    testError = 0.0774
    准确度= 1 -测试误差
    精度= 0.9226.

    Mdl准确分类了测试集中大约92%的观测值。

    介绍了R2021a