分类的神经网络模型
一个ClassificationNeuralNetwork
对象是用于分类的训练、前馈和全连接的神经网络。神经网络的第一个完全连接层与网络输入(预测数据)有一个连接X
),每个后续层都具有与前一层的连接。每个完全连接的图层将输入乘以权重矩阵(LayerWeights
)然后添加偏置载体(LayerBiases
).每个完全连接的层后面都有一个激活函数(激活
和outputlayEractivation.
).最后的全连接层和随后的softmax激活函数产生网络的输出,即分类分数(后验概率)和预测标签。有关更多信息,请参见神经网络结构.
创建一个ClassificationNeuralNetwork
通过使用fitcnet
.
LayerSizes
- - - - - -完全连接层的大小此属性是只读的。
神经网络模型中完全连接层的大小,作为正整数向量返回。这我th元素LayerSizes
的输出数是多少我神经网络模型的全连接层。
LayerSizes
不包括最终完全连接层的大小。这个图层总是有K输出,K班级数在吗Y
.
数据类型:单
|双
LayerWeights
- - - - - -学习层重量此属性是只读的。
学习完全连接层的层权重,作为单元数组返回。这我单元格数组中的第Th项对应的层权重为我完全连通层。例如,Mdl。LayerWeights {1}
返回模型的第一个完全连接层的权重MDL.
.
LayerWeights
包括最终完全连接层的权重。
数据类型:细胞
LayerBiases
- - - - - -学习层偏见此属性是只读的。
学习完全连接层的层偏置,作为单元阵列返回。这我单元格阵列中的条目对应于图层偏差我完全连通层。例如,Mdl。LayerBiases {1}
返回模型的第一个完全连接层的偏差MDL.
.
LayerBiases
包括最终完全连接层的偏差。
数据类型:细胞
激活
- - - - - -完全连接层的激活功能'relu'
|的双曲正切
|“乙状结肠”
|“没有”
|字符向量的单元格数组此属性是只读的。
神经网络模型的全连接层的激活函数,返回为字符向量或字符向量的单元数组,其值来自此表。
价值 | 描述 |
---|---|
'relu' |
纠正的线性单元(Relu)函数 - 对输入的每个元素执行阈值操作,其中任何值小于零的值设置为零,即,
|
的双曲正切 |
双曲线切线(Tanh)功能 - 适用 |
“乙状结肠” |
sigmoid函数 - 在每个输入元素上执行以下操作:
|
“没有” |
标识函数——返回每个输入元素,而不执行任何转换,即:f(x)=x |
如果激活
只包含一个激活函数,则为神经网络模型中每一个全连接层的激活函数,不包括最终的全连接层。最终完全连接层的激活函数总是softmax (outputlayEractivation.
).
如果激活
是一系列激活功能,然后是我元素是元素的激活函数我神经网络模型的层。
数据类型:char
|细胞
outputlayEractivation.
- - - - - -最终完全连接层的激活函数“softmax”
此属性是只读的。
最终完全连接层的激活功能,返回为“softmax”
.该函数需要每个输入x我并返回以下内容,在哪里K为响应变量中的类数:
结果与预测的分类分数(或后验概率)相对应。
ModelParameters
- - - - - -用于训练模型的参数值neuralnetworkparams.
对象此属性是只读的。
用于训练的参数值ClassificationNeuralNetwork
模型,返回为neuralnetworkparams.
目的。ModelParameters
包含参数值,例如用于训练神经网络分类器的名称-值参数。
访问ModelParameters
通过使用点表示法。例如,访问用于初始化模型的完全连接的层权重的函数MDL.
通过使用mdl.modelparameters.layerweightsinitializer
.
ConvergenceInfo
- - - - - -收敛信息此属性是只读的。
收敛信息,作为结构数组返回。
场 | 描述 |
---|---|
迭代 |
用于训练神经网络模型的训练迭代次数 |
TrainingLoss |
训练返回模型的交叉熵损失,或者resubLoss (Mdl LossFun, crossentropy) 为模型MDL. |
梯度 |
损失函数相对于返回模型对应的迭代权值和偏差的梯度 |
一步 |
步骤尺寸在与返回的模型相对应的迭代 |
时间 |
所有迭代所花费的总时间(以秒为单位) |
ValidationLoss |
返回模型的验证交叉熵损耗 |
验证检查 |
在一行中验证损失大于或等于最小验证损失的最大次数 |
ConvergenceCriterion |
为收敛准则 |
历史 |
看到培训汉语 |
数据类型:结构体
培训汉语
- - - - - -培训历史此属性是只读的。
训练历史,以表格形式返回。
柱子 | 描述 |
---|---|
迭代 |
训练迭代 |
TrainingLoss |
在此迭代中训练模型的交叉熵损失 |
梯度 |
在此迭代中损失函数相对于权值和偏差的梯度 |
一步 |
这个迭代的步长 |
时间 |
在此迭代期间花费的时间(以秒为单位) |
ValidationLoss |
在此迭代中验证模型的交叉熵损失 |
验证检查 |
验证损失大于或等于最小验证损失的运行总次数 |
数据类型:表格
求解器
- - - - - -求解器用于训练神经网络模型“LBFGS”
此属性是只读的。
求解器用于训练神经网络模型,返回为“LBFGS”
.创建一个ClassificationNeuralNetwork
模型中,fitcnet
采用有限内存的Broyden-Flecter-Goldfarb-Shanno准牛顿算法(LBFGS)作为损耗函数最小化技术,该软件使交叉熵损耗最小化。
预测
- - - - - -预测变量的名字此属性是只读的。
预测器变量名称,作为字符向量的单元格数组返回。元素的顺序预测
对应于预测器名称在训练数据中出现的顺序。
数据类型:细胞
分类预测器
- - - - - -分类预测索引[]
此属性是只读的。
分类预测器索引,返回为一个正整数向量。假设预测数据包含成行的观测数据,分类预测器
包含与包含分类预测器的预测器数据列对应的索引值。如果没有预测器都是分类的,则此属性是空的([]
).
数据类型:双
ExpandedPredictorNames.
- - - - - -扩展预测仪名称此属性是只读的。
扩展的预测器名称,作为字符向量的单元格数组返回。如果模型对分类变量使用编码,那么ExpandedPredictorNames.
包括描述扩展变量的名称。否则,ExpandedPredictorNames.
是一样的预测
.
数据类型:细胞
X
- - - - - -解体的预测因子此属性是只读的。
用于训练神经网络模型的非标准化预测器,以数字矩阵或表格的形式返回。X
的值在行或列中显示观察值,保留其原始方向ObservationsIn
呼叫中的名称值参数fitcnet
.
数据类型:单
|双
|表格
一会
- - - - - -独特的类名此属性是只读的。
培训中使用的唯一类名,作为数字矢量,分类矢量,逻辑向量,字符数组或字符向量阵列返回。一会
具有与类标签相同的数据类型Y
.(该软件将字符串数组视为字符向量的单元格数组。)一会
也决定了类的顺序。
数据类型:单
|双
|分类
|逻辑
|char
|细胞
ResponseName
- - - - - -响应变量名称此属性是只读的。
响应变量名,作为字符向量返回。
数据类型:char
Y
- - - - - -类标签此属性是只读的。
用于训练模型的类标签,作为数字矢量,分类矢量,逻辑向量,字符数组或字符向量阵列的模型。Y
具有与用于训练模型的响应变量相同的数据类型。(该软件将字符串数组视为字符向量的单元格数组。)
每一排Y
中对应观测值的分类X
.
数据类型:单
|双
|分类
|逻辑
|char
|细胞
NumObservations
- - - - - -数量的观察此属性是只读的。
存储在训练数据中的观察次数X
和Y
,作为正数值标量返回。
数据类型:双
RowsUsed
- - - - - -适合的行[]
|逻辑向量此属性是只读的。
用于拟合模型的原始培训数据的行,作为逻辑向量返回。如果使用所有行,此属性为空。
数据类型:逻辑
W
- - - - - -观察权重此属性是只读的。
用于训练模型的观察权重,作为返回n- 1号数字矢量。n为观测次数(NumObservations
).
该软件规范化了指定的观察权重权重
名称值参数,以便元素W
在一个特定的类别中,总和为该类别的先验概率。
数据类型:单
|双
成本
- - - - - -错误分类成本此属性是只读的。
误分类代价,返回为数值方阵,其中成本(i, j)
将一个点分类的成本是多少j
如果它真正的阶级是我
.代价矩阵总是这样的形式:成本(i, j) = 1
如果我~ = j
, 和成本(i, j) = 0
如果我=我
.行对应真正的类,列对应预测的类。的行和列的顺序成本
中类的顺序一会
.
数据类型:双
之前
- - - - - -先验概率此属性是只读的。
每个类的先验概率,作为数字向量返回。元素的顺序之前
对应的元素一会
.
数据类型:双
scoretransform.
- - - - - -分数转换分数转换,指定为字符向量或函数句柄。scoretransform.
表示用于转换预测分类分数的内置转换函数或函数句柄。
将分数转换函数改为功能
,例如,使用点符号。
对于内置函数,请输入字符向量。
Mdl。ScoreTransform = '功能';
该表描述了可用的内置函数。
价值 | 描述 |
---|---|
'doublelogit' |
1 /(1 +e2x) |
“invlogit” |
日志(x/(1 -x)) |
“ismax” |
将具有最大分数的类设置为1的分数,并将所有其他类的分数设置为0 |
分对数的 |
1 /(1 +e- - - - - -x) |
“没有” 要么“身份” |
x(转换) |
“标志” |
1x< 0 为0x= 0 1x> 0 |
“对称” |
2x- 1 |
“symmetricismax” |
将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为-1 |
'symmetriclogit' |
2 / (1 +e- - - - - -x) - 1 |
对于一个MATLAB®函数或您定义的函数,输入其函数句柄。
mdl.scoretransform = @功能;
功能
必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换分数)。
数据类型:char
|function_handle
袖珍的 |
减少机器学习模型的规模 |
compareHoldout |
使用新数据比较两个分类模型的精度 |
crossval |
交叉验证机器学习模型 |
边缘 |
用于神经网络分类器的分类边缘 |
损失 |
神经网络分类器的分类损失 |
利润 |
神经网络分类器的分类边缘 |
partialDependence |
计算部分依赖 |
plotPartialDependence |
创建部分依赖图(PDP)和个人条件期望图(ICE) |
预测 |
使用神经网络分类器分类观察 |
resubEdge |
Resubstitution分类边缘 |
resubLoss |
Resubstitution分类损失 |
重新提交 |
Resubstitution分类保证金 |
resubPredict |
使用训练的分类器对训练数据进行分类 |
培训神经网络分类器,并评估对测试集上分类器的性能。
读取示例文件Creditrating_Historical.dat.
一个表中。预测数据包括财务比率和企业客户列表的行业部门信息。反应变量由评级机构指定的信用评级组成。预览数据集的前几行。
creditrating = readtable (“CreditRating_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 12 {' AAA '} 39255 -0.117 -0.799 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))
等于观测的次数creditrating
,ID
变量是一个很差的预测器。删除ID
从表中变量,并转换行业
变量到A.分类
多变的。
creditrating = removevars (creditrating,“ID”);creditrating。行业=分类(creditrating。行业);
转换评级
对序数的响应变量分类
多变的。
creditrating。评级=分类(creditrating。评级,...[“AAA”,“AA”,“一种”," BBB ",“BB”,“b”,“CCC”],“顺序”,真正的);
将数据划分为训练集和测试集。使用大约80%的观测数据来训练神经网络模型,使用20%的观测数据来测试训练模型在新数据上的性能。使用cvpartition
分区数据。
RNG(“默认”)分区的再现性c = cvpartition(信用。“坚持”, 0.20);trainingIndices =培训(c);%训练集指标testindices =测试(c);%测试集索引creditTrain = creditrating (trainingIndices:);信贷= creditrating (testIndices:);
通过传递训练数据来训练神经网络分类器信用箱
到fitcnet
函数。
Mdl = fitcnet (creditTrain,“评级”)
mdl = classificationniednetwork predictornames:{wc_ta''re_ta''ebet_ta''mve_bvtd''s_ta'行业'} resportename:'评级'类别预防icon:6 classnames:[aaa aa a bbb bb b ccc] scoreTransform:'无'numobservations:3146 DILTERSIZE:10激活:'relu'OuthentLayARactivation:'Softmax'求解器:'LBFGS'ColouchgenceInfo:[1×1结构]培训课程:[1000×7表]属性,方法
MDL.
是一个培训ClassificationNeuralNetwork
分类器。的属性可以使用点表示法MDL.
.例如,可以指定Mdl。培训汉语
获取更多关于神经网络模型训练历史的信息。
通过计算测试集分类错误来评估分类器对测试集的性能。通过使用混淆矩阵可视化结果。
testaccuracy = 1 - 损失(MDL,抵制,“评级”,...“LossFun”,“classiferror”)
testAccuracy = 0.8003
信贷confusionchart (creditTest.Rating,预测(Mdl))
指定神经网络分类器的结构,包括全连接层的大小。
加载电离层
数据集,包括雷达信号数据。X
包含预测数据,和Y
是响应变量,其值代表良好(“g”)或坏(“B”)雷达信号。
负载电离层
将数据分成培训数据(XTrain
和ytrain.
)和测试数据(XTest.
和欧美
)通过使用分层熔断分区。预留约30%的测试观察,并使用其余的观察培训。
RNG(“默认”)分区的再现性本量利= cvpartition (Y,“坚持”, 0.3);XTrain = X(培训(cvp):);YTrain = Y(培训(cvp));XTest = X(测试(cvp):);欧美= Y(测试(cvp));
训练神经网络分类器。指定在第一个完全连接层有35个输出,在第二个完全连接层有20个输出。默认情况下,这两个层都使用一个整流线性单元(ReLU)激活功能。控件可以更改完全连接层的激活函数激活
名称值参数。
Mdl = fitcnet (XTrain YTrain,...“双层化”20 [35])
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]属性,方法
通过使用通过使用训练分类器的完全连接层的权重和偏置LayerWeights
和LayerBiases
属性MDL.
.每个属性的前两个元素对应前两个全连接层的值,第三个元素对应最后一个全连接层的值,并使用softmax激活函数进行分类。例如,显示第二层全连接层的权重和偏差。
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 {end})
ans =1×22 1
要估算培训的分类器的性能,计算测试集分类错误MDL.
.
testError =损失(Mdl XTest,欧美,...“LossFun”,“classiferror”)
testError = 0.0774
准确度= 1 -测试误差
精度= 0.9226
MDL.
准确地分类测试集中大约92%的观察结果。
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。