主要内容

预测

从线性增量学习模型预测新观测的响应

描述

例子

标签=预测(MdlX返回预测的响应(或标签)标签预测数据中的观察结果X从增量学习模型Mdl

例子

标签=预测(MdlX“ObservationsIn”,也指定预测器数据的观察维度“行”(默认)或“列”.例如,指定“ObservationsIn”、“列”表示预测器数据中的观测值沿列的方向X

例子

标签分数预测,预测___同样的回报分类的分数对于所有类,当Mdl是一种用于分类的增量学习模型,使用前面语法中的任何输入参数组合。

例子

全部折叠

加载人类活动数据集。

负载humanactivity

关于数据集的详细信息,请输入描述在命令行。

回答可以分为五类:坐着、站着、走着、跑着或跳舞。通过识别被测者是否在移动(actid> 2)。

Y = actid > 2;

对整个数据集拟合线性分类模型。

TTMdl = fitclinear(专长,Y)
TTMdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'none' Beta: [60x1 double]偏差:-0.2005 Lambda: 4.1537e-05学习者:'svm'属性,方法

TTMdl是一个ClassificationLinear模型对象表示传统训练的线性分类模型。

将传统训练的线性分类模型转换为增量学习的二元分类线性模型。

IncrementalMdl =增量学习者(TTMdl)
IncrementalMdl = incrementalClassificationLinear IsWarm: 1 Metrics: [1x2 table] ClassNames: [0 1] ScoreTransform: 'none' Beta: [60x1 double]偏差:-0.2005 Learner: 'svm'属性,方法

IncrementalMdl是一个incrementalClassificationLinear利用支持向量机为增量学习准备模型对象。

  • incrementalLearner函数通过将学习到的系数以及其他信息传递给增量学习器来初始化增量学习器TTMdl从训练数据中学习。

  • IncrementalMdl是温暖的(IsWarm1),这意味着增量学习功能可以开始跟踪性能指标。

  • incrementalLearner配置使用自适应比例不变求解器训练的模型,而fitclinear训练有素的TTMdl使用BFGS求解器

通过转换传统训练模型创建的增量学习器可以生成预测,而无需进一步处理。

使用这两种模型预测所有观测值的类别标签。

ttlabels = predict(TTMdl,feat);illables = predict(IncrementalMdl,壮举);sameLabels = sum(ttlabels ~= illables) == 0
sameLabels =逻辑1

这两个模型对每个观测结果都预测了相同的标签。

如果你沿着预测器数据矩阵的列定向观察,你可以在增量学习期间体验到效率的提高。

加载和洗牌2015年纽约市住房数据集。有关数据的详细信息,请参见纽约市开放数据

负载NYCHousing2015rng (1)%用于再现性n = size(NYCHousing2015,1);Shuffidx = randsample(n,n);NYCHousing2015 = NYCHousing2015(shuffidx,:);

提取响应变量SALEPRICE从桌子上。将日志转换应用于SALEPRICE

Y = log(NYCHousing2015。售价+ 1);添加1以避免log为0NYCHousing2015。售价= [];

从分类预测器创建虚拟变量矩阵。

Catvars = [“区”“BUILDINGCLASSCATEGORY”“社区”];dumvarstbl = varfun(@(x)dummyvar(categorical(x)),NYCHousing2015,...“数据源”, catvars);Dumvarmat = table2array(dumvarstbl);NYCHousing2015(:,catvars) = [];

将表中所有其他数值变量视为销售价格的线性预测因子。将虚拟变量矩阵连接到其余的预测器数据,并将数据转置以加快计算速度。

idxnum = varfun(@isnumeric,NYCHousing2015,“OutputFormat”“统一”);X = [dumvarmat NYCHousing2015{:,idxnum}]';

为增量学习配置一个线性回归模型,没有估计周期。

Mdl =增量回归线性(“学习者”“leastsquares”“EstimationPeriod”, 0);

Mdl是一个incrementalRegressionLinear模型对象。

执行增量学习和预测,每次迭代都遵循以下步骤:

  • 通过一次处理100个观测数据块来模拟数据流。

  • 使模型适合传入的数据块。指定观察值沿数据列方向排列。用新模型覆盖以前的增量模型。

  • 使用拟合的模型和传入的数据块预测响应。指定观察值沿数据列方向排列。

%预先配置numObsPerChunk = 100;n =数字(Y);nchunk = floor(n/numObsPerChunk);R = nan(n,1);图h =图(r);h.YDataSource =“r”;ylabel (“残差”)包含(“迭代”%增量拟合j = 2:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1);iend = min(n,numObsPerChunk*j);Idx = ibegin:iend;Mdl = fit(Mdl,X(:,idx),Y(idx),“ObservationsIn”“列”);yhat = predict(Mdl,X(:,idx),“ObservationsIn”“列”);r(idx) = Y(idx) - yhat;refreshdata drawnow结束

图中包含一个轴对象。axis对象包含一个line类型的对象。

Mdl是一个incrementalRegressionLinear在流中的所有数据上训练的模型对象。

残差在整个增量学习过程中对称地分布在0附近。

要计算后验类概率,请指定逻辑回归增量学习器。

加载人类活动数据集。随机打乱数据。

负载humanactivityN = numel(actid);rng (10);%用于再现性Idx = randsample(n,n);X = feat(idx,:);Y = actid(idx);

关于数据集的详细信息,请输入描述在命令行。

回答可以分为五类:坐着、站着、走着、跑着或跳舞。通过识别被测者是否在移动(actid> 2)。

Y = Y > 2;

为二元分类创建增量逻辑回归模型。准备好预测通过指定类名和任意系数和偏置值。

p = size(X,2);Beta = randn(p,1);偏差= randn(1);Mdl =增量分类线性(“学习者”“物流”“β”,β,...“偏见”偏见,“类名”,独特的(Y));

Mdl是一个incrementalClassificationLinear模型。它的所有属性都是只读的。而不是指定任意的值,你可以采取以下任何一种操作来准备模型:

  • 训练用于二元分类的逻辑回归模型fitclinear在数据的子集上(如果可用),然后通过使用将模型转换为增量学习器incrementalLearner

  • 逐步适应Mdl通过使用适合

模拟一个数据流,并对每个传入的50个观测数据块执行以下操作。

  1. 调用预测预测输入数据块中观测值的分类分数。分类分数是逻辑回归学习者的后验类概率。

  2. 调用rocmetrics使用输入的数据块计算ROC曲线下的面积(AUC),并存储结果。

  3. 调用适合使模型适合传入的数据块。将先前的增量模型覆盖为一个适合于新观测值的新模型。

numObsPerChunk = 50;nchunk = floor(n/numObsPerChunk);Auc = 0 (nchunk,1);%增量学习j = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1);iend = min(n,numObsPerChunk*j);Idx = ibegin:iend;[~,posteriorProb] = predict(Mdl,X(idx,:));rocObj = rocmetrics(Y(idx),posteriorProb, mll . classnames);auc(j) = rocObj.AUC(1);Mdl = fit(Mdl,X(idx,:),Y(idx));结束

Mdl是一个incrementalClassificationLinear在流中的所有数据上训练的模型对象。

在输入的数据块上绘制AUC。

情节(auc) ylabel (“AUC”)包含(“迭代”

图中包含一个轴对象。axis对象包含一个line类型的对象。

图中显示,在增量学习过程中,分类器可以很好地预测移动的主题。

输入参数

全部折叠

增量学习模型,指定为incrementalClassificationLinearincrementalRegressionLinear模型对象。你可以创建Mdl直接或通过转换支持的,传统训练的机器学习模型使用金宝appincrementalLearner函数。更多详细信息,请参见相应的参考页面。

您必须配置Mdl为一批观察结果预测标签。

  • 如果Mdl是一个转换的,传统训练的模型,你可以预测标签没有任何修改。

  • 否则,Mdl必须满足以下条件,你可以直接指定或拟合Mdl到数据使用适合updateMetricsAndFit

    • 如果Mdl是一个incrementalRegressionLinear它的模型系数Mdl。β和偏见Mdl。偏见必须为非空数组。

    • 如果Mdl是一个incrementalClassificationLinear它的模型系数Mdl。β和偏见Mdl。偏见必须为非空数组和类名Mdl。一会必须包含两个类。

    • 无论对象类型如何,如果配置模型使函数标准化预测器数据,那么预测器意味着Mdl。μ还有标准差Mdl。σ必须为非空数组。

要为其预测标签的一批预测器数据,指定为的浮点矩阵n观察和Mdl。NumPredictors预测变量。的价值确定变量和观测值的方向。

请注意

预测金宝app仅支持浮点输入预测器数据。如果输入数据包括分类数据,则必须准备分类数据的编码版本。使用dummyvar将每个分类变量转换为虚拟变量的数字矩阵。然后,连接所有虚拟变量矩阵和任何其他数值预测。详情请参见虚拟变量

数据类型:|

预测器数据观测维数,指定为“列”“行”

例子:“ObservationsIn”、“列”

数据类型:字符|字符串

输出参数

全部折叠

预测的响应(标签),作为类别或字符数组返回;浮点、逻辑或字符串向量;或者单元格数组的字符向量n行。n观察的数量在吗X,标签(j预测的反应是观察吗j

  • 对于回归问题,标签是浮点向量。

  • 对于分类问题,标签存储的类名具有相同的数据类型Mdl。一会(该软件将字符串数组视为字符向量的单元格数组。)

    预测函数将观察结果划分为得分最高的类别。为了观察分数,该函数将观察结果划分为多数类,这在训练标签中所占的比例最大。

分类的分数,作为n-by-2浮点矩阵时Mdl是一个incrementalClassificationLinear模型。n观察的数量在吗X评分(jk这是观察分类的分数吗j成类kMdl。一会指定类的顺序。

如果Mdl。学习者“支持向量机”预测返回原始分类分数。如果Mdl。学习者“物流”,分类分数为后验概率。

更多关于

全部折叠

分类分

对于线性增量学习模型的二进制分类,原始分类分对观测进行分类x,一个行向量,入正类为

f x β 0 + x β

在哪里

  • β0是标量偏置Mdl。偏见

  • β是系数的列向量吗Mdl。β

用于分类的原始分类分数x进入负类的是-fx).该软件将观察结果分为产生正分的类别。

如果线性分类模型由逻辑回归学习器组成,则该软件应用分对数的分数转换为原始分类分数。

扩展功能

版本历史

R2020b中介绍