分类的神经网络模型
一个ClassificationNeuralNetwork
对象是用于分类的训练、前馈和全连接的神经网络。神经网络的第一个完全连接层与网络输入(预测数据)有一个连接X
),每一层都与前一层有一个连接。每一个完全连接的层将输入乘以一个权值矩阵(LayerWeights
),然后添加偏差向量(LayerBiases
).每个完全连接的层后面都有一个激活函数(激活
和OutputLayerActivation
).最后的全连接层和随后的softmax激活函数产生网络的输出,即分类分数(后验概率)和预测标签。有关更多信息,请参见神经网络结构.
创建一个ClassificationNeuralNetwork
对象的使用fitcnet
.
双层
- - - - - -完全连接层的大小此属性是只读的。
神经网络模型中全连接层的大小,返回为正整数向量。这我th元素双层
的输出数是多少我TH完全连接的神经网络模型层。
双层
不包括最终完全连接层的大小。这层总是有K输出,K班级数在吗Y
.
数据类型:单身的
|双倍的
LayerWeights
- - - - - -学习层的重量此属性是只读的。
学习完全连接层的层权重,作为单元数组返回。这我单元格数组中的第Th项对应的层权重为我完全连通层。例如,Mdl。LayerWeights {1}
返回模型的第一个完全连接层的权重Mdl
.
LayerWeights
包括最终完全连接层的权重。
数据类型:细胞
LayerBiases
- - - - - -学习层的偏见此属性是只读的。
了解了完全连接层的层偏差,返回为单元阵列。这我单元格数组中的第个条目对应于我完全连通层。例如,mdl.layerbiases {1}
返回模型的第一个完全连接层的偏差Mdl
.
LayerBiases
包括最终完全连接层的偏差。
数据类型:细胞
激活
- - - - - -完全连接层的激活功能“雷卢”
|的双曲正切
|“乙状结肠”
|“没有”
|字符向量的单元格阵列此属性是只读的。
神经网络模型的全连接层的激活函数,返回为字符向量或字符向量的单元数组,其值来自此表。
价值 | 描述 |
---|---|
“雷卢” |
修正线性单元(ReLU)函数——对输入的每个元素执行阈值操作,其中任何小于零的值都被设为零,即,
|
的双曲正切 |
双曲tan (tanh)函数-应用 |
“乙状结肠” |
Sigmoid函数-对每个输入元素执行以下操作:
|
“没有” |
标识函数——返回每个输入元素,而不执行任何转换,即:f(x)=x |
如果激活
只包含一个激活功能,那么它是神经网络模型的每个完全连接层的激活功能,不包括最终完全连接的图层。最终完全连接图层的激活功能始终是软邮件(OutputLayerActivation
).
如果激活
是一个激活函数数组,则我元素是元素的激活函数我神经网络模型的第二层。
数据类型:字符
|细胞
OutputLayerActivation
- - - - - -最终完全连接层的激活功能'softmax'
此属性是只读的。
最终完全连接层的激活函数,返回为'softmax'
.该函数接受每个输入x我并返回以下内容,在哪里K是响应变量中的类数:
结果与预测的分类分数(或后验概率)相对应。
ModelParameters
- - - - - -用于训练模型的参数值NeuralNetworkParams
对象此属性是只读的。
参数值用于训练ClassificationNeuralNetwork
模型,返回为NeuralNetworkParams
对象ModelParameters
包含参数值,例如用于训练神经网络分类器的名称-值参数。
访问ModelParameters
通过使用点符号。例如,访问用于初始化模型的完全连接层权重的函数Mdl
通过使用Mdl.ModelParameters.LayerWeightInitializer
.
融合税收
- - - - - -融合信息此属性是只读的。
收敛信息,作为结构数组返回。
场 | 描述 |
---|---|
迭代 |
用于训练神经网络模型的培训迭代次数 |
TrainingLoss |
训练返回模型的交叉熵损失,或者RERUBLOS(MDL,'LOADFUN','forrorentropy') 为模型Mdl |
坡度 |
损失函数相对于返回模型对应的迭代权值和偏差的梯度 |
步 |
对应于返回模型的迭代的步长 |
时间 |
所有迭代所花费的总时间(以秒为单位) |
ValidationLoss |
返回模型的验证交叉熵损失 |
验证检查 |
在一行中验证损失大于或等于最小验证损失的最大次数 |
换货 |
收敛标准 |
历史 |
看到培训汉语 |
数据类型:结构体
培训汉语
- - - - - -训练历史此属性是只读的。
培训历史,作为桌子返回。
列 | 描述 |
---|---|
迭代 |
训练迭代 |
TrainingLoss |
在此迭代中训练模型的交叉熵损失 |
坡度 |
在此迭代中损失函数相对于权值和偏差的梯度 |
步 |
这个迭代的步长 |
时间 |
在此迭代期间花费的时间(以秒为单位) |
ValidationLoss |
在此迭代验证模型的跨熵损耗 |
验证检查 |
验证损失大于或等于最小验证损失的运行总次数 |
数据类型:表格
解算器
- - - - - -求解器用于训练神经网络模型“LBFGS”
此属性是只读的。
求解器用于训练神经网络模型,返回为“LBFGS”
.创建一个ClassificationNeuralNetwork
模型,fitcnet
采用有限内存的Broyden-Fletcher-Goldfarb-Shanno准牛顿算法(LBFGS)作为损耗函数最小化技术,该软件使交叉熵损耗最小化。
PredictorNames
- - - - - -预测变量的名字此属性是只读的。
预测器变量名,作为字符向量的单元格数组返回。元素的顺序PredictorNames
对应于预测器名称在训练数据中出现的顺序。
数据类型:细胞
CategoricalPredictors
- - - - - -分类预测指数[]
此属性是只读的。
分类预测器索引,返回为一个正整数向量。假设预测数据包含成行的观测数据,CategoricalPredictors
包含与包含分类预测值的预测值数据列相对应的索引值。如果没有任何预测值是分类的,则此属性为空([]
).
数据类型:双倍的
ExpandedPredictorNames
- - - - - -扩展预测仪名称此属性是只读的。
扩展的预测名称名称,作为字符向量的单元格数组返回。如果模型使用对分类变量的编码,那么ExpandedPredictorNames
包括描述扩展变量的名称。除此以外,ExpandedPredictorNames
是一样的PredictorNames
.
数据类型:细胞
X
- - - - - -非标准预测因子此属性是只读的。
用于训练神经网络模型的非标准化预测器,以数字矩阵或表格的形式返回。X
的值在行或列中显示观察值,保留其原始方向观察结果
的调用中的名称-值参数fitcnet
.
数据类型:单身的
|双倍的
|表格
一会
- - - - - -独特的类名此属性是只读的。
训练中使用的唯一类名,作为数字向量、分类向量、逻辑向量、字符数组或字符向量的单元数组返回。一会
具有与类标签相同的数据类型Y
.(该软件将字符串数组视为字符向量的单元格数组。)一会
还确定了类顺序。
数据类型:单身的
|双倍的
|分类
|逻辑
|字符
|细胞
ResponseName
- - - - - -响应变量名此属性是只读的。
响应变量名,作为字符向量返回。
数据类型:字符
Y
- - - - - -类标签此属性是只读的。
用于训练模型的类标签,作为数字向量、分类向量、逻辑向量、字符数组或字符向量的单元格数组返回。Y
具有与用于训练模型的响应变量相同的数据类型。(该软件将字符串数组视为字符向量的单元格数组。)
每行Y
表示相应观察的分类X
.
数据类型:单身的
|双倍的
|分类
|逻辑
|字符
|细胞
HyperparameterOptimizationResults
- - - - - -超参数的交叉验证优化贝叶斯优化
对象|表格此属性是只读的。
超参数的交叉验证优化,指定为贝叶斯优化
对象或包含超参数和关联值的表。该属性是非空的“OptimizeHyperparameters”
创建模型时,名称-值对参数为非空。价值HyperparameterOptimizationResults
取决于设置的优化器
田野超参数优化选项
结构,当您创建模型时。
的价值优化器 场 |
的价值HyperparameterOptimizationResults |
---|---|
“bayesopt” (默认) |
对象的类贝叶斯优化 |
“gridsearch” 或'randomsearch' |
使用的超参数表,观测到的目标函数值(交叉验证损失),以及观测值从最低(最好)到最高(最差)的排序 |
NumObservations
- - - - - -观察次数此属性是只读的。
在训练数据中存储的观测数X
和Y
,返回正数字标量。
数据类型:双倍的
流浪
- - - - - -用于拟合的行[]
|逻辑矢量此属性是只读的。
用于拟合模型的原始训练数据的行,作为逻辑向量返回。如果使用所有行,则此属性为空。
数据类型:逻辑
W
- - - - - -观测权重此属性是只读的。
用于训练模型的观测权重,作为n1数字向量。n为观测次数(NumObservations
).
该软件规范化了指定的观察权重权重
名称值参数,以便W
在一个特定的类别中,总和为该类别的先验概率。
数据类型:单身的
|双倍的
成本
- - - - - -误分类代价此属性是只读的。
误分类代价,返回为数值方阵,其中成本(i, j)
是将一个点分类为课程的成本j
如果它的真实课程是我
.代价矩阵总是这样的形式:成本(i, j) = 1
如果我~ = j
和成本(i, j) = 0
如果我=我
.行对应真正的类,列对应预测的类。的行和列的顺序成本
中类的顺序一会
.
数据类型:双倍的
事先的
- - - - - -先前概率此属性是只读的。
每个类的先验概率,作为数字向量返回。元素的顺序事先的
对应的元素一会
.
数据类型:双倍的
ScoreTransform
- - - - - -分数变换分数转换,指定为字符向量或功能句柄。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
CompactClassificationNeuralNetwork
紧凑的 |
缩小机器学习模型的规模 |
ClassificationPartitionedModel
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:);
通过传递训练数据来训练神经网络分类器creditTrain
到fitcnet
函数。
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]属性,方法
使用的方法获取训练分类器的全连接层的权重和偏差LayerWeights
和LayerBiases
的属性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%的观测值。
Ha Hecho Clic en en enrace que参考este comando de matlab:
ejecute el comandoinsuciéndoloen la Ventana de comandos de matlab。los navegadores网站没有adminiten comandos de matlab。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。