转换成二进制分类支持向量机(SVM)模型增量学习金宝app
返回一个二进制分类线性模型增量学习,IncrementalMdl
= incrementalLearner (Mdl
)IncrementalMdl
使用hyperparameters和传统训练线性支持向量机模型的系数二元分类,Mdl
。因为它的属性值反映而获得的知识Mdl
,IncrementalMdl
可以预测标签给新观测,它是什么温暖的,这意味着其预测性能跟踪。
使用附加选项指定一个或多个参数名称-值对。一些选项需要你火车IncrementalMdl
= incrementalLearner (Mdl
,名称,值
)IncrementalMdl
之前预测性能跟踪。例如,“MetricsWarmupPeriod”, 50岁,“MetricsWindowSize”, 100
指定了一个初步的增量训练时期的前50观测性能指标跟踪,并指定处理100年观测之前更新性能指标。
训练一个SVM模型通过使用fitcsvm
,然后把它转换成一个增量学习。
加载和数据预处理
载入人类活动数据集。
负载humanactivity
细节的数据集,输入描述
在命令行中。
响应可以是五类:坐着
,站
,走
,运行
,或跳舞
。二分响应通过识别主题是否移动(actid
> 2)。
Y = actid > 2;
训练支持向量机模型
适合一个支持向量机模型对整个数据集。丢弃的支持向量(金宝appα
)从模型中,软件使用线性系数(β
)预测。
TTMdl = fitcsvm(壮举,Y);TTMdl = discard金宝appSupportVectors (TTMdl)
TTMdl = ClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:[0 1]ScoreTransform:“没有一个”NumObservations: 24075β:[60 x1双]偏见:-6.4243 KernelParameters: [1 x1 struct] BoxConstraints: [24075 x1双]ConvergenceInfo: [1 x1 struct] IsSupportVector: [24075 x1逻辑]解算器:SMO金宝app的属性,方法
TTMdl
是一个ClassificationSVM
模型对象代表了传统训练支持向量机模型。
转换训练模型
传统训练SVM模型转换为一个二进制分类线性模型的增量学习。
IncrementalMdl = incrementalLearner (TTMdl)
IncrementalMdl = incrementalClassificationLinear IsWarm: 1指标:[1 x2表]一会:[0 1]ScoreTransform:“没有一个”测试:[60 x1双]偏见:-6.4243学习者:“支持向量机”属性,方法
IncrementalMdl
是一个incrementalClassificationLinear
模型对象准备使用SVM增量学习。
的incrementalLearner
函数初始化增量学习者通过学习系数,以及其他信息TTMdl
从训练数据中提取。
IncrementalMdl
是温暖的IsWarm
是1
),这意味着可以开始跟踪性能指标增量学习功能。
的incrementalLearner
函数指定训练模型使用自适应尺度不变的解决者,而fitcsvm
训练有素的TTMdl
使用SMO
解算器。
预测的反应
增量学习者从转换创建一个传统训练模型可以生成预测没有进一步处理。
所有观测使用这两种模型预测分类得分。
[~,ttscores] =预测(TTMdl壮举);[~,简称ilcor] =预测(IncrementalMdl壮举);compareScores =规范(ttscores(: 1)——简称ilcor (: 1))
compareScores = 0
之间的差异模型产生的分数是0。
默认的解算器是自适应尺度不变的解决者。如果指定这个解算器,您不需要调整任何参数进行训练。然而,如果你指定标准SGD或ASGD解决者相反,你也可以指定一个评估期,在此期间,增量拟合函数调整学习速率。
载入人类活动数据集。
负载humanactivity
细节的数据集,输入描述
在命令行中。
响应可以是五类:坐着
,站
,走
,运行
,跳舞
。二分响应通过识别主题是否移动(actid
> 2)。
Y = actid > 2;
随机把数据分成两半:上半年培训模式传统,和下半年增量学习。
n =元素个数(Y);rng (1)%的再现性本量利= cvpartition (n,“坚持”,0.5);idxtt =培训(cvp);idxil =测试(cvp);%上半年的数据Xtt =壮举(idxtt:);Ytt = Y (idxtt);%下半年的数据自=壮举(idxil:);Yil = Y (idxil);
适合一个SVM模型上半年的数据。通过设置规范预测数据“标准化”,真的
。
Ytt TTMdl = fitcsvm (Xtt,“标准化”,真正的);
的μ
和σ
的属性TTMdl
包含预测的数据样本均值和标准差,分别。
假设的分布预测在未来预计不会改变。传统训练SVM模型转换为一个二进制分类线性模型的增量学习。指定的标准SGD解算器和一个估计的时期2000年
观察(默认1000年
当一个学习速率是必需的)。
IncrementalMdl = incrementalLearner (TTMdl,“规划求解”,“sgd”,“EstimationPeriod”,2000);
IncrementalMdl
是一个incrementalClassificationLinear
模型对象。因为的预测数据TTMdl
标准化(TTMdl.Mu
和TTMdl.Sigma
非空的),incrementalLearner
准备增量学习功能标准化提供预测数据(存储在使用前面学习的时刻IncrementalMdl.Mu
和IncrementalMdl.Sigma
)。
下半年适合增量模型使用的数据适合
函数。在每一次迭代:
模拟数据流处理10观测一次。
覆盖前面的增量式模型与一个新安装的观察。
存储率和学习 的系数在训练和学习速率发展。
%预先配置nil =元素个数(Yil);numObsPerChunk = 10;nchunk =地板(nil / numObsPerChunk);learnrate = [IncrementalMdl.LearnRate;0 (nchunk 1)];beta1 = [IncrementalMdl.Beta (1);0 (nchunk 1)];%增量式拟合为j = 1: nchunk ibegin = min (nil, numObsPerChunk * (j - 1) + 1);iend = min (nil, numObsPerChunk * j);idx = ibegin: iend;IncrementalMdl =适合(IncrementalMdl自(idx:), Yil (idx));beta1 (j + 1) = IncrementalMdl.Beta (1);learnrate (j + 1) = IncrementalMdl.LearnRate;结束
IncrementalMdl
是一个incrementalClassificationLinear
模型对象培训中的所有数据流。
如何学习速率和 进化在训练,放到单独的次要情节。
次要情节(2,1,1)情节(beta1) ylabel (“\ beta_1”)参照线(IncrementalMdl.EstimationPeriod / numObsPerChunk,r -。);次要情节(2,1,2)情节(learnrate) ylabel (学习速率的)参照线(IncrementalMdl.EstimationPeriod / numObsPerChunk,r -。);包含(“迭代”)
后的学习速率跳到它的变种价值评估。
因为适合
不符合模型的流数据在评估期间,
是恒定的第一200次迭代(2000观察)。然后,
在增量变化拟合。
使用训练SVM模型初始化增量学习。准备学习者通过指定一个增量指标预热期,在此期间updateMetricsAndFit
功能只适合模型。指定一个指标500观察的窗口大小。
载入人类活动数据集。
负载humanactivity
细节的数据集,输入描述
在命令行
响应可以是五类:坐着
,站
,走
,运行
,跳舞
。二分响应通过识别主题是否移动(actid
> 2)。
Y = actid > 2;
因为数据集分组活动,慢慢减少偏见。然后,随机把数据分成两半:上半年培训模式传统,下半年的增量学习。
n =元素个数(Y);rng (1)%的再现性本量利= cvpartition (n,“坚持”,0.5);idxtt =培训(cvp);idxil =测试(cvp);shuffidx = randperm (n);X =壮举(shuffidx:);Y = Y (shuffidx);%上半年的数据Xtt = X (idxtt:);Ytt = Y (idxtt);%下半年的数据自= X (idxil:);Yil = Y (idxil);
适合一个SVM模型上半年的数据。
TTMdl = fitcsvm (Xtt Ytt);
传统训练SVM模型转换为一个二进制分类线性模型的增量学习。指定以下:
一个性能指标预热期2000年的观察
一个指标500观察的窗口大小
使用分类误差和铰链损失测量模型的性能
IncrementalMdl = incrementalLearner (TTMdl,“MetricsWarmupPeriod”,2000,“MetricsWindowSize”,500,…“指标”,(“classiferror”“枢纽”]);
下半年适合增量模型使用的数据updateMetricsAndfit
函数。在每一次迭代:
模拟数据流处理20观测一次。
覆盖前面的增量式模型与一个新安装的观察。
商店 、累积度量和窗口指标增量学习期间看到他们如何演变。
%预先配置nil =元素个数(Yil);numObsPerChunk = 20;nchunk =装天花板(nil / numObsPerChunk);ce = array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);铰链= array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);beta1 = 0 (nchunk, 1);%增量式拟合为j = 1: nchunk ibegin = min (nil, numObsPerChunk * (j - 1) + 1);iend = min (nil, numObsPerChunk * j);idx = ibegin: iend;IncrementalMdl = updateMetricsAndFit (IncrementalMdl自(idx:), Yil (idx));ce {j:} = IncrementalMdl.Metrics {“ClassificationError”,:};铰链{j:} = IncrementalMdl.Metrics {“HingeLoss”,:};beta1 (j + 1) = IncrementalMdl.Beta (1);结束
IncrementalMdl
是一个incrementalClassificationLinear
模型对象培训中的所有数据流。在增量学习模型是热身之后,updateMetricsAndFit
检查模型的性能的观察,然后符合模型观察。
性能指标和 进化在训练,放到单独的次要情节。
图;次要情节(1,1)情节(beta1) ylabel (“\ beta_1”)xlim ([0 nchunk]);参照线(IncrementalMdl.MetricsWarmupPeriod / numObsPerChunk,r -。);次要情节(3、1、2)h =情节(ce.Variables);xlim ([0 nchunk]);ylabel (分类错误的)参照线(IncrementalMdl.MetricsWarmupPeriod / numObsPerChunk,r -。);传奇(h, ce.Properties.VariableNames“位置”,“西北”次要情节(3,1,3)h =情节(hinge.Variables);xlim ([0 nchunk]);ylabel (“铰链损失”)参照线(IncrementalMdl.MetricsWarmupPeriod / numObsPerChunk,r -。);传奇(h, hinge.Properties.VariableNames“位置”,“西北”)包含(“迭代”)
情节表明updateMetricsAndFit
以下:
适合 在增量学习迭代。
计算性能指标度量后预热期。
在每一次迭代计算累积度量。
计算窗口指标500年处理后观察迭代(25)。
Mdl
- - - - - -传统训练线性二元分类支持向量机模型ClassificationSVM
模型对象|CompactClassificationSVM
模型对象传统训练线性支持向量机模型对二进制分类,指定为返回一个模型对象的培训或处理函数。
模型对象 | 培训或处理函数 |
---|---|
ClassificationSVM |
fitcsvm |
CompactClassificationSVM |
fitcsvm 或紧凑的 |
指定可选的逗号分隔条名称,值
参数。的名字
参数名称和吗价值
相应的价值。的名字
必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家
。
“规划求解”、“扇区”,“MetricsWindowSize”, 100
指定为目标优化自适应尺度不变的解算器,并指定处理100年观测之前更新性能指标。
解算器
- - - - - -目标函数极小化技术“扇区”
(默认)|“sgd”
|“asgd”
目标函数最小化技术,指定为逗号分隔组成的“规划求解”
在这个表和一个值。
价值 | 描述 | 笔记 |
---|---|---|
“扇区” |
|
|
“sgd” |
随机梯度下降法(SGD)[3][2] |
|
“asgd” |
平均随机梯度下降法(ASGD)[4] |
|
例子:“规划求解”、“sgd”
数据类型:字符
|字符串
EstimationPeriod
- - - - - -数量的观测估计hyperparameters处理BatchSize
- - - - - -Mini-batch大小10
(默认)|正整数Mini-batch大小,指定为逗号分隔组成的“BatchSize”
和一个正整数。在每个迭代训练,incrementalLearner
使用min (BatchSize numObs)
观察计算次梯度,numObs
观察的数量在训练数据传递给吗适合
或updateMetricsAndFit
。
例子:“BatchSize”, 1
数据类型:单
|双
λ
- - - - - -脊(l2)正则化项强度1 e-5
(默认)|负的标量脊(l2)正则化项,指定为逗号分隔组成的“λ”
和一个负的标量。
例子:“λ”,0.01
数据类型:单
|双
LearnRate
- - - - - -学习速率“汽车”
(默认)|积极的标量学习速率,指定为逗号分隔组成的“LearnRate”
和“汽车”
或积极的标量。LearnRate
控制的优化步长扩展目标次梯度。
为“汽车”
:
如果EstimationPeriod
是0
,最初的学习速率0.7
。
如果EstimationPeriod
>0
,最初的学习速率1 /√(1 + max (sum (x ^ 2, obsDim)))
,在那里obsDim
是1
如果观测组合预测的列数据,和2
否则。适合
和updateMetricsAndFit
设置值时传递函数模型和训练数据。
名称-值对的观点“LearnRateSchedule”
决定了学习速率对后续学习周期。
例子:“LearnRate”, 0.001
数据类型:单
|双
|字符
|字符串
洗牌
- - - - - -国旗在批洗牌的观察真正的
(默认)|假
国旗洗牌的观察在批处理在每个迭代中,指定为逗号分隔组成的“洗牌”
在这个表和一个值。
价值 | 描述 |
---|---|
真正的 |
软件打乱观察每个传入之前批数据处理。这一行动减少偏见引起的抽样方案。 |
假 |
软件处理数据的顺序接收。 |
例子:“洗牌”,假的
数据类型:逻辑
指标
- - - - - -在增量学习模型性能指标来跟踪“classiferror”
(默认)|字符串向量|函数处理|细胞向量|结构数组|“binodeviance”
|“指数”
|“枢纽”
|“分对数”
|“二次”
|……模型性能指标来跟踪在增量学习的updateMetrics
或updateMetricsAndFit
函数,指定为一个内置的损失函数的名字,名字,函数的字符串向量处理(@metricName
)、结构的功能处理或细胞向量的名字,函数处理,或结构数组。
下表列出了内置的损失函数的名字。您可以指定多个通过使用一个字符串向量。
的名字 | 描述 |
---|---|
“binodeviance” |
二项异常 |
“classiferror” |
分类错误 |
“指数” |
指数 |
“枢纽” |
铰链 |
“分对数” |
物流 |
“二次” |
二次 |
内置的损失函数的更多细节,请参阅损失
。
例子:“指标”,(“classiferror”“枢纽”)
指定一个自定义函数,返回一个性能指标,使用函数处理符号。函数必须有这种形式:
度量= customMetric (C, S)
输出参数度规
是一个n1数值向量,其中每个元素是损失相应的观测数据通过处理增量学习函数在一个学习周期。
你指定函数名(customMetric
)。
C
是一个n2逻辑矩阵行指示相应的观察所属的类。列顺序对应于类顺序Mdl.ClassNames
。创建C
通过设置C (
=p
,问
)1
,如果观察
是在课堂上p
指定的数据,对于每一个观察。设置行中的其他元素问
来p
0
。
年代
是一个n2数值矩阵的预测分类的分数。年代
类似于分数
的输出预测
,行对应于观测数据和列顺序对应于类顺序Mdl.ClassNames
。S (
分类的观察吗p
,问
)
在课堂上被分类p
。问
指定多个自定义指标和分配自定义名称,使用结构数组。指定一个内置的和自定义指标的组合,使用细胞向量。
例子:“指标”,结构(‘Metric2’,‘Metric1’, @customMetric1 @customMetric2)
例子:“指标”,{@customMetric1 @customeMetric2分对数的结构(Metric3, @customMetric3)}
updateMetrics
和updateMetricsAndFit
在属性存储表中指定的度量IncrementalMdl.Metrics
。的数据类型指标
决定了行表的名称。
“指标” 值数据类型 |
的描述指标 属性行名称 |
例子 |
---|---|---|
字符串或字符向量 | 相应的内置的度量 | 行名称“classiferror” 是“ClassificationError” |
结构数组 | 字段名 | 行名称结构(Metric1, @customMetric1) 是“Metric1” |
函数句柄函数存储在程序文件中 | 函数的名字 | 行名称@customMetric 是“customMetric” |
匿名函数 | CustomMetric_ ,在那里 是度量 在指标 |
行名称@ (C, S) customMetric (C, S)…… 是CustomMetric_1 |
性能指标选择的更多细节,请参阅性能指标。
数据类型:字符
|字符串
|结构体
|细胞
|function_handle
MetricsWarmupPeriod
- - - - - -数量的观测符合之前跟踪性能指标0
(默认)|非负整数|……数量的观察增量式模型之前必须适合其跟踪性能指标指标
属性,指定为逗号分隔组成的“MetricsWarmupPeriod”
和一个非负整数。增量模型是适合温暖的增量后拟合函数MetricsWarmupPeriod
观察到增量式模型(EstimationPeriod
+MetricsWarmupPeriod
观察)。
性能指标选择的更多细节,请参阅性能指标。
数据类型:单
|双
MetricsWindowSize
- - - - - -数量的观察使用性能指标计算窗口200年
(默认)|正整数|……IncrementalMdl
——二元分类线性模型的增量学习incrementalClassificationLinear
模型对象二进制分类线性模型的增量学习,作为一个返回incrementalClassificationLinear
模型对象。IncrementalMdl
也配置为生成了新的预测数据(看到了吗预测
)。
初始化IncrementalMdl
增量学习,incrementalLearner
传递的值Mdl
这个表的属性的属性IncrementalMdl
。
财产 | 描述 |
---|---|
β |
扩展线性模型系数,Mdl.Beta / Mdl.KernelParameters.Scale ,一个数值向量 |
偏见 |
拦截模型,数字标量 |
一会 |
类标签二进制分类、双元素列表 |
μ |
预测变量的含义,一个数值向量 |
之前 |
前类标签分布,数值向量 |
σ |
预测变量标准差,数字向量 |
增量学习,或在线学习,是机器学习的一个分支关心处理传入的数据从数据流,可能没有知识的预测变量的分布方面的预测或目标函数(包括调优参数值),或者观察是否标示。增量学习有别于传统机器学习,足够的标签数据可用来适应一个模型,优化hyperparameters进行交叉验证,推断预测分布。
鉴于传入的观察,增量学习模型处理数据在下列方面,但通常在这个顺序:
预测标签。
测量预测性能。
检查结构性突变或漂移模型。
符合模型的观测。
的增量学习的自适应尺度不变的解算器,介绍了[1],是一个gradient-descent-based目标规划求解线性预测模型进行训练。解算器hyperparameter自由,对预测变量尺度上的差异,并且不需要先验知识的分布预测变量。这些特点使其适合增量学习。
标准SGD和ASGD动力学预测变量对不同尺度敏感,导致模型可以表现不佳。使用SGD和ASGD取得更好的精度,可以规范预测数据,和调优正则化和学习速率参数需要调整。对于传统的机器学习,足够的数据可以使hyperparameter调优交叉验证和预测标准化。然而,对于增量学习,足够的数据可能不可用(例如,观察可能只能一次一个),预测的分布可能是未知的。这些特征使参数优化和预测标准化在增量学习困难或不可能。
增量拟合函数的分类适合
和updateMetricsAndFit
使用更激进ScInOL2版本的算法。
在评估期间,增量式拟合函数适合
和updateMetricsAndFit
使用第一个进来的EstimationPeriod
观察评估(曲调)hyperparameters增量所需的培训。此表描述了hyperparameters当他们估计或调整。
Hyperparameter | 模型属性 | 使用 | Hyperparameters估计 |
---|---|---|---|
预测均值和标准差 |
|
标准化预测数据 | 当这两个条件:
|
学习速率 | LearnRate |
解算器调整步长 | 当这两个条件:
|
功能只适合最后评估期间观察到增量模型,他们不使用任何观测模型的跟踪性能。在估计期的结束,更新的属性存储hyperparameters功能。
如果增量学习功能配置标准化预测变量,他们使用中存储的均值和标准差μ
和σ
增量学习模型的属性IncrementalMdl
。
如果你标准化训练时输入模型的预测数据Mdl
通过使用fitcsvm
下列条件适用:
incrementalLearner
通过了的意思Mdl.Mu
和标准偏差Mdl.Sigma
相等的增量学习模型属性。
增量学习函数总是标准化预测数据,不管的价值“标准化”
名称-值对的论点。
当您设置“标准化”,真的
,IncrementalMdl.Mu
和IncrementalMdl.Sigma
是空的,适用下列条件:
如果评估是积极的(参见时期EstimationPeriod
的属性IncrementalMdl
均值和标准差),增量式拟合函数估计使用评估期间的观察。
如果估计时间为0,incrementalLearner
部队估计时期1000年
。因此,增量式拟合函数估计均值和标准差新预测变量强制评估期间。
当您设置“标准化”、“汽车”
(默认),下列条件适用。
如果IncrementalMdl.Mu
和IncrementalMdl.Sigma
是空的,增量学习函数不规范预测变量。
否则,增量学习功能规范预测变量中使用他们的均值和标准差IncrementalMdl.Mu
和IncrementalMdl.Sigma
,分别。增量式拟合函数均值和标准差不估计新不管评估周期的长度。
当增量拟合函数均值和标准差估计预测,计算加权手段和功能使用评估期间观察加权标准差。具体来说,功能规范预测j(xj)使用
在哪里
xj是预测j,xjk是观察k的预测j在评估期间。
在哪里
pk是类的先验概率k(之前
增量模型)的属性。
wj是观察体重j。
的updateMetrics
和updateMetricsAndFit
函数增量学习函数跟踪模型性能指标(“指标”
从新的数据增量式模型时)温暖的(IsWarm
属性)。增量模型是温暖的适合
或updateMetricsAndFit
增量模型“MetricsWarmupPeriod”
观察,这是度量预热期。
如果“EstimationPeriod”
> 0,hyperparameters估计函数拟合模型的数据。因此,必须处理一个额外的功能EstimationPeriod
观察模型开始前预热期的指标。
的指标
增量模型的属性存储两种形式的各性能指标作为一个表的变量(列),累积
和窗口
行,个别指标。当增量模型是温暖的,updateMetrics
和updateMetricsAndFit
更新后频率的指标:
累积
——函数计算累积度量模型以来的跟踪性能。更新指标的函数每次调用函数和基地提供的计算对整个数据集。
窗口
——函数计算基于一个窗口内的所有观测指标决定的“MetricsWindowSize”
名称-值对的论点。“MetricsWindowSize”
也决定了软件更新的频率窗口
指标。例如,如果MetricsWindowSize
是20,函数计算指标根据过去的20的观察提供的数据(X((结束- 20 + 1):,:)
和Y((- 20 + 1)结束:结束)
)。
增量跟踪性能指标的函数在一个窗口中使用以下过程:
为每个指定的度量,存储缓冲区的长度MetricsWindowSize
和一个缓冲的观察权重。
填充的元素指标基于批次缓冲与模型性能的观察,并存储相应的权重观察权重缓冲区。
当缓冲区满,覆盖IncrementalMdl.Metrics.Window
窗口的加权平均性能指标。如果缓冲区溢出时,函数过程一批观察,最新的传入MetricsWindowSize
观察输入缓冲区,和最早的观察从缓冲区中删除。例如,假设MetricsWindowSize
是20,缓冲区的指标有10个值从一个以前批处理,和15值传入的。组成20窗口长度的函数使用15传入的观察和测量的最新5测量前一批。
[1]Kempka、MichałWojciech Kotłowski,曼弗雷德·k·Warmuth。“自适应尺度不变的在线学习算法的线性模型”。相关系数(2019年2月)。https://arxiv.org/abs/1902.07528。
[2]兰福德,J。,l。li, and T. Zhang. “Sparse Online Learning Via Truncated Gradient.”j·马赫。学习。Res。10卷,2009年,页777 - 801。
[3]Shalev-Shwartz, S。,Y. Singer, and N. Srebro. “Pegasos: Primal Estimated Sub-Gradient Solver for SVM.”《24日国际会议在机器学习,ICML ' 07,2007年,页807 - 814。
[4]徐,魏。“对最优传递规模与平均随机梯度下降学习。”相关系数、abs / 1107.2490, 2011年。
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。