损失
描述
损失
返回回归或分类损失配置增量学习模型的线性回归(incrementalRegressionLinear
(对象)或线性二元分类incrementalClassificationLinear
对象)。
在数据流测量模型的性能,并将结果存储在输出模型,调用updateMetrics
或updateMetricsAndFit
。
例子
在增量学习测量模型的性能
增量模型的性能测量流数据在三个方面:
累积指标测量性能自增量学习的开始。
窗口指标测量观测的性能在一个指定的窗口。指标每次更新模型处理指定的窗口。
的
损失
函数指定批措施上的性能数据。
载入人类活动数据集。随机洗牌数据。
负载humanactivityn =元素个数(actid);rng (1)%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
细节的数据集,输入描述
在命令行中。
响应可以是五类:坐着,站着,散步,跑步,或者跳舞。二分响应通过识别主题是否移动(actid
> 2)。
Y = Y > 2;
创建一个二进制增量线性支持向量机模型的分类。配置模型损失
通过指定类名,前类分布(制服),和任意系数和偏差值。指定一个指标1000观察的窗口大小。
p =大小(X, 2);β= randn (p, 1);偏见= randn (1);Mdl = incrementalClassificationLinear (“β”,β,“偏见”偏见,…“类名”独特的(Y),“之前”,“统一”,“MetricsWindowSize”,1000);
Mdl
是一个incrementalClassificationLinear
模型。所有的属性是只读的。不是指定任意值,您可以采取的这些行动配置模型:
SVM模型使用训练
fitcsvm
或fitclinear
在数据的一个子集(如果有的话),然后将模型转换为一个增量学习者通过使用incrementalLearner
。逐步适应
Mdl
通过使用数据适合
。
模拟数据流,并执行以下操作每个传入50块的观察:
调用
updateMetrics
测量窗口内的累积性能和性能观察。覆盖前面的增量式模型与一个新的跟踪性能指标。调用
损失
测量模型的性能在传入的数据块。调用
适合
以适应模型的一部分。覆盖前面的增量式模型与一个新安装的观察。存储所有性能指标增量学习期间看到他们如何演变。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);ce = array2table (0 (nchunk, 3),“VariableNames”,(“累积”“窗口”“损失”]);%增量学习为j = 1: nchunk ibegin = min (n, numObsPerChunk * (j - 1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;Mdl = updateMetrics (Mdl X (idx:), Y (idx));ce {j [“累积”“窗口”]}= Mdl.Metrics {“ClassificationError”,:};ce {j,“损失”}=损失(Mdl X (idx:), Y (idx));Mdl =适合(Mdl X (idx:), Y (idx));结束
Mdl
是一个incrementalClassificationLinear
模型对象培训中的所有数据流。在增量学习模型是热身之后,updateMetrics
检查模型的性能的观察,然后和适合
功能符合观测模型。损失
是度量的不可知论者预热期,所以所有迭代的分类误差的措施。
训练期间看到性能指标如何演变,情节。
图绘制(ce.Variables) xlim ([0 nchunk]) ylim (0.05 [0]) ylabel (分类错误的)参照线(Mdl.MetricsWarmupPeriod / numObsPerChunk,r -。传奇(ce.Properties.VariableNames)包含(“迭代”)
黄线代表对每个传入的数据分类错误。度量预热期后,Mdl
跟踪的累积和窗口指标。收敛的累积和批处理损失适合
功能符合输入数据的增量式模型。
自定义计算损失传入的数据块
增量学习模型回归适合流媒体数据,并计算平均绝对偏差批次(疯狂)传入的数据。
加载机械臂数据集,获得样本大小n
和预测变量的数量p
。
负载robotarmn =元素个数(ytrain);p =大小(Xtrain 2);
细节的数据集,输入描述
在命令行中。
创建一个增量的线性回归模型。配置模型如下:
指定一个度量预热期1000年的观察。
指定一个指标500观察的窗口大小。
跟踪平均绝对偏差(疯狂)测量模型的性能。创建一个匿名函数,每个新观测的绝对误差的措施。创建一个结构数组包含这个名字
MeanAbsoluteError
和其相应的功能。配置模型来预测反应通过指定,所有的回归系数和偏差都是0。
maefcn = @ (z, zfit, w) (abs (z - zfit));maemetric =结构(“MeanAbsoluteError”,maefcn);Mdl = incrementalRegressionLinear (“MetricsWarmupPeriod”,1000,“MetricsWindowSize”,500,…“指标”maemetric,“β”0 (p - 1),“偏见”0,“EstimationPeriod”,0)
Mdl = incrementalRegressionLinear IsWarm: 0指标:[2 x2表]ResponseTransform:“没有一个”测试:[32 x1双]偏见:0学习者:“支持向量机”属性,方法
Mdl
是一个incrementalRegressionLinear
模型对象配置为增量学习。
执行增量学习。在每一次迭代:
模拟数据流处理一块50的观察。
调用
updateMetrics
计算累积和窗口对传入的数据指标。覆盖前面的增量式模型与一个新的安装覆盖前面的指标。调用
损失
计算上的疯狂传入的数据块。而累积和窗口指标要求自定义返回每个观测的损失,损失损失
需要整块上的损失。计算平均绝对偏差的。调用
适合
适合增量模型传入的数据块。商店的累积、窗口和块指标增量学习期间看到他们如何演变。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);美= array2table (0 (nchunk, 3),“VariableNames”,(“累积”“窗口”“块”]);%增量式拟合为j = 1: nchunk ibegin = min (n, numObsPerChunk * (j - 1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;Mdl = updateMetrics (Mdl Xtrain (idx:), ytrain (idx));美{j, 1:2} = Mdl.Metrics {“MeanAbsoluteError”,:};美{j 3} =损失(Mdl, Xtrain (idx:), ytrain (idx),“LossFun”@ (x, y, w)意味着(maefcn (x, y, w)));Mdl =适合(Mdl Xtrain (idx:), ytrain (idx));结束
Mdl
是一个incrementalRegressionLinear
模型对象培训中的所有数据流。在增量学习模型是热身之后,updateMetrics
检查模型的性能的观察,和适合
功能符合观测模型。
绘制性能指标增量学习期间看到他们是如何进化的。
图h =情节(mae.Variables);xlim ([0 nchunk]) ylabel (的平均绝对偏差)参照线(Mdl.MetricsWarmupPeriod / numObsPerChunk,r -。)包含(“迭代”传奇(h, mae.Properties.VariableNames)
情节建议如下:
updateMetrics
计算后的性能指标度量预热期。updateMetrics
在每一次迭代计算累积度量。updateMetrics
计算指标500年处理后观察的窗口因为
Mdl
被配置为预测观察从增量学习的开始,损失
可以计算每个传入的数据块的疯狂。
输入参数
Mdl
- - - - - -增量学习模型
incrementalClassificationLinear
模型对象|incrementalRegressionLinear
模型对象
增量学习模型,指定为一个incrementalClassificationLinear
或incrementalRegressionLinear
模型对象。您可以创建Mdl
直接或通过转换支持,传统上使用训练有素的机器学习模型金宝appincrementalLearner
函数。更多细节,请参阅相应的引用页面。
您必须配置Mdl
计算其损失一批观察。
如果
Mdl
是一个转变,传统的训练模式,可以计算其损失没有任何修改。否则,
Mdl
必须满足以下条件,您可以指定直接或通过拟合Mdl
使用的数据适合
或updateMetricsAndFit
。如果
Mdl
是一个incrementalRegressionLinear
模型,其模型系数Mdl.Beta
和偏见Mdl.Bias
必须非空的数组。如果
Mdl
是一个incrementalClassificationLinear
模型,其模型系数Mdl.Beta
和偏见Mdl.Bias
类名必须非空的数组Mdl.ClassNames
之前必须包含两个类,类分布呢Mdl.Prior
必须包含已知值。不管对象类型,如果您配置模型函数标准化预测数据,预测手段
Mdl.Mu
和标准偏差Mdl.Sigma
必须非空的数组。
X
- - - - - -批预测数据
浮点矩阵
批预测数据来计算损失,指定为一个浮点矩阵n观察和Mdl.NumPredictors
预测变量。的值ObservationsIn
名称-值参数确定变量和观测的方向。默认的ObservationsIn
值是“行”
,这表明观察预测数据是面向的行X
。
观察标签的长度Y
和观察的数量X
必须是相等的;Y (
观察的标签吗j(行或列)j
)X
。
请注意
损失
金宝app只支持浮点输入预测数据。如果你的输入数据包括分类数据,您必须准备一个编码版本的分类数据。使用dummyvar
每个分类变量转换为一个数字矩阵的虚变量。然后,连接所有哑变量矩阵和任何其他数值预测。更多细节,请参阅虚拟变量。
数据类型:单
|双
Y
- - - - - -批反应(标签)
分类数组|字符数组|字符串数组|逻辑向量|浮点矢量|单元阵列的特征向量
批反应(标签)来计算损失,分类,指定字符,或字符串数组,逻辑或浮点向量,或单元阵列的特征向量分类问题;或一个浮点向量回归问题。
观察标签的长度Y
和观察的数量X
必须是相等的;Y (
观察的标签吗j(行或列)j
)X
。
对于分类问题:
损失
金宝app只支持二进制分类。如果
Y
包含一个标签,它不是一个成员Mdl.ClassNames
,损失
一个错误的问题。的数据类型
Y
和Mdl.ClassNames
必须相同。
数据类型:字符
|字符串
|细胞
|分类
|逻辑
|单
|双
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:“ObservationsIn”、“列”、“重量”,W
指定的列预测矩阵对应于观测,和向量W
包含观察权重应用。
LossFun
- - - - - -损失函数
字符串向量|函数处理|细胞向量|结构数组|……
损失函数,指定为逗号分隔组成的“LossFun”
和一个内置的损失函数名或函数句柄。
分类问题:下表列出了可用的损失函数时
Mdl
是一个incrementalClassificationLinear
模型。指定一个使用其相应的特征向量或字符串标量。的名字 描述 “binodeviance”
二项异常 “classiferror”
(默认)误分类率小数 “指数”
指数损失 “枢纽”
铰链的损失 “分对数”
物流损失 “二次”
二次损失 更多细节,请参阅分类损失。
逻辑回归学生返回后验概率作为分类的分数,但SVM学习者不(见
预测
)。指定一个自定义的损失函数,利用函数处理符号。函数必须有这种形式:
lossval =lossfcn(C S W)
输出参数
lossval
是一个n1浮点向量,lossval (
分类损失的观察吗j
)
。j
你指定函数名(
)。lossfcn
C
是一个n2逻辑矩阵行指示相应的观察所属的类。列顺序对应于类秩序一会
财产。创建C
通过设置C (
=p
,问
)1
,如果观察
是在课堂上p
指定的数据,对于每一个观察。设置行中的其他元素问
来p
0
。年代
是一个n2数值矩阵的预测分类的分数。年代
类似于分数
的输出预测
,行对应于观测数据和列顺序对应于类秩序一会
财产。S (
分类的观察吗p
,问
)
在课堂上被分类p
。问
W
是一个n1数字的观察向量权重。
回归问题:下表列出了可用的损失函数时
Mdl
是一个incrementalRegressionLinear
模型。指定一个使用其相应的特征向量或字符串标量。的名字 描述 学习者支持度规金宝app “epsiloninsensitive”
ε不敏感损失 “支持向量机”
“mse”
(默认)加权均方误差 “支持向量机”
和“leastsquares”
更多细节,请参阅回归的损失。
指定一个自定义的损失函数,利用函数处理符号。函数必须有这种形式:
lossval =lossfcn(Y, YFit W)
输出参数
lossval
是一个浮点数。你指定函数名(
)。lossfcn
Y
是一个长度n数字矢量观察到的反应。YFit
是一个长度n数字矢量预测相应的反应。W
是一个n1数字的观察向量权重。
例子:“LossFun”、“mse”
例子:“LossFun”@
lossfcn
数据类型:字符
|字符串
|function_handle
ObservationsIn
- - - - - -预测数据观察维度
“行”
(默认)|“列”
预测数据观察维度,指定为逗号分隔组成的“ObservationsIn”
和“列”
或“行”
。
数据类型:字符
|字符串
权重
- - - - - -批观察权重
浮点矢量的积极的价值观
批观察体重、指定为逗号分隔组成的“重量”
和一个浮点矢量的积极的价值观。损失
重的观察输入数据与相应的值权重
。的大小权重
必须等于n,这是观察输入数据的数量。
默认情况下,权重
是(
。n
,1)
更多细节,请参阅观察权重。
数据类型:双
|单
更多关于
分类损失
分类损失函数度量分类模型的预测误差。当你在考虑对比许多相同类型的损失模型,较低的损失表示一个更好的预测模型。
考虑以下场景。
l是加权平均分类损失。
n是样本容量。
yj是观察到的类标签。软件代码为1或1,表明消极或积极类(或第一或第二课
一会
分别属性)。f(Xj观察)是positive-class分类评分(行)j预测的数据X。
米j=yjf(Xj)是分类的分类评分观察j相对应的类yj。积极的价值观米j显示正确的分类,不为平均损失作出多少贡献。负的米j显示不正确的分类和对平均损失作出了重大贡献。
观察的重量j是wj。
鉴于这种情况,下表描述了支持损失函数,您可以指定使用金宝appLossFun
名称-值参数。
损失函数 | 的价值LossFun |
方程 |
---|---|---|
二项异常 | “binodeviance” |
|
指数损失 | “指数” |
|
误分类率小数 | “classiferror” |
在哪里 是最大的类标签对应类分数,然后呢我{·}是指标函数。 |
铰链的损失 | “枢纽” |
|
分对数损失 | “分对数” |
|
二次损失 | “二次” |
的损失
函数不省略一个观察南
得分时,计算加权平均损失。因此,损失
可以返回南
当预测数据X
包含缺失值,名称参数LossFun
不是指定为“classiferror”
。在大多数情况下,如果数据集不包含缺失的预测,损失
函数不返回南
。
这个图比较了损失函数的分数米一个观察。一些函数归一化通过点(0,1)。
回归的损失
回归的损失函数测量回归模型的预测误差。当你在考虑对比许多相同类型的损失模型,较低的损失表示一个更好的预测模型。
考虑以下场景。
l是加权平均分类损失。
n是样本容量。
yj是观察到的反应的观察j。
f(Xj)是观察的预测价值j预测的数据X。
观察的重量j是wj。
鉴于这种情况,下表描述了支持损失函数,您可以指定使用金宝appLossFun
名称-值参数。
损失函数 | 的价值LossFun |
方程 |
---|---|---|
ε不敏感损失 | “epsiloninsensitive” |
|
均方误差 | “mse” |
的损失
函数不省略一个观察南
预测时计算加权平均损失。因此,损失
可以返回南
当预测数据X
包含缺失值。在大多数情况下,如果数据集不包含缺失的预测,损失
函数不返回南
。
算法
观察权重
对于分类问题,如果之前类概率分布是已知的(换句话说,先验分布不是经验),损失
规范化观察权重总和之前类概率在各自的类。这个动作意味着观察权重前各自的默认类概率。
回归问题或者类概率分布是经验之前,软件可实现指定观察权重之和为1每次调用损失
。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
使用
saveLearnerForCoder
,loadLearnerForCoder
,codegen
(MATLAB编码器)生成的代码损失
函数。通过使用保存训练模型saveLearnerForCoder
。定义一个入口点函数,通过使用加载保存模型loadLearnerForCoder
并调用损失
函数。然后使用codegen
入口点函数来生成代码。生成单精度C / c++代码
损失
,指定名称参数“数据类型”、“单身”
当你打电话给loadLearnerForCoder
函数。此表包含的参数
损失
。参数不包括在这个表是完全支持。金宝app论点 笔记和局限性 Mdl
使用notes和限制的模型对象,明白了
incrementalClassificationLinear
或incrementalRegressionLinear
。X
批次,观测的数量可以是一个变量的大小,但必须等于观测的数量
Y
。预测变量的数目必须相等
Mdl.NumPredictors
。X
必须单
或双
。
Y
批次,观测的数量可以是一个变量的大小,但必须等于观测的数量
X
。对于分类问题,所有的标签
Y
必须在Mdl.ClassNames
。Y
和Mdl.ClassNames
必须具有相同的数据类型。
“LossFun”
指定的函数不能是一个匿名函数。 如果您配置
Mdl
洗牌数据(Mdl.Shuffle
是真正的
,或Mdl.Solver
是“sgd”
或“asgd”
),损失
函数随机打乱每个传入批观测之前,适合批量模型。的顺序打乱观察MATLAB生成的顺序可能不匹配®。因此,如果你健康Mdl
之前计算损失,损失计算在MATLAB计算生成的代码可能不相等。使用齐次所有浮点数据类型的输入参数和对象属性,具体地说,
单
或双
。
有关更多信息,请参见介绍代码生成。
版本历史
介绍了R2020bR2022a:损失
可以返回南
预测数据的缺失值
的损失
函数不再省略了一个观察南
预测(得分为分类和响应回归)时计算加权平均损失。因此,损失
现在可以返回南
当预测数据X
包含缺失值,名称参数LossFun
不是指定为“classiferror”
(分类)。在大多数情况下,如果数据集不包含缺失的预测,损失
函数不返回南
。
如果损失
在你的代码返回南
,你可以更新你的代码,以避免这一结果。通过删除或替换缺失值rmmissing
或fillmissing
,分别。
MATLAB명령
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。