主要内容

预测

从增量学习的线性模型中预测对新观察的反应

描述

实例

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

实例

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

实例

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

例子

全部崩溃

加载人工活动数据集。

负载humanactivity

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

反应可以分为五类:坐、站、走、跑或跳舞。通过确定受试者是否在移动来区分反应(活动> 2)。

Y = actid > 2;

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

TTMdl = fitclinear(壮举,Y)
TTMdl=ClassificationLinear ResponseName:'Y'类名称:[0 1]ScoreTransform:'none'测试版:[60×1双]偏差:-0.2005 Lambda:4.1537e-05学习者:“svm”属性、方法

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

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

IncrementalMdl = incrementalLearner (TTMdl)
IncrementalMdl = incrementalClassificationLinear IsWarm: 1 Metrics: [1×2 table] ClassNames: [0 1] ScoreTransform: 'none' Beta: [60×1 double] Bias: -0.2005 Learner: 'svm'属性,方法

IncrementalMdl是一个递增分类线性使用SVM为增量学习准备模型对象。

  • 这个incrementalLearner函数通过向增量学习器传递已学习的系数以及其他信息来初始化增量学习器TTMdl从培训数据中学习。

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

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

通过转换传统训练模型而产生的增量式学习者可以在不进行进一步处理的情况下生成预测。

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

ttlabels =预测(TTMdl壮举);illables =预测(IncrementalMdl壮举);sameLabels = sum(ttlabels ~= illables) == 0
sameLabels =必然的1.

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

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

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

负载NYCHousing2015rng (1)%的再现性n =大小(NYCHousing2015, 1);shuffidx = randsample (n, n);NYCHousing2015 = NYCHousing2015 (shuffidx:);

提取响应变量销售价格从表中。将日志转换应用于销售价格

Y=对数(NYCHousing2015.SALEPRICE+1);%添加1以避免记录0NYCHousing2015。SALEPRICE = [];

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

catvars = [“区”“BUILDINGCLASSCATEGORY”“社区”]; dumvarstbl=varfun(@(x)dummyvar(分类(x)),NYCHousing2015,...“输入变量”,catvars);dumvarmat=表2阵列(dumvarstbl);NYCHousing2015(:,catvars)=[];

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

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

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

Mdl = incrementalRegressionLinear (“学习者”,“租赁广场”,“EstimationPeriod”, 0);

Mdl是一个增量回归线性模型对象。

通过对每次迭代执行以下步骤,执行增量学习和预测:

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

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

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

%预分配numObsPerChunk=100;n=numel(Y);nchunk=floor(n/numObsPerChunk);r=nan(n,1);图h=plot(r);h.YDataSource=“r”; 伊拉贝尔(“残差”)包含(“迭代”)%增量式拟合对于n = 2:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;Mdl =适合(Mdl X (:, idx), Y (idx),“ObservationsIn”,“专栏”);yhat =预测(Mdl X (:, idx),“ObservationsIn”,“专栏”);r(idx) = Y(idx) - yhat;refreshdata drawnow终止

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

Mdl是一个增量回归线性对流中的所有数据进行训练的模型对象。

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

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

加载人工活动数据集。随机洗牌数据。

负载humanactivityn =元素个数(actid);rng (10);%的再现性idx=randsample(n,n);X=feat(idx,:);Y=actid(idx);

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

反应可以分为五类:坐、站、走、跑或跳舞。通过确定受试者是否在移动来区分反应(活动> 2)。

Y=Y>2;

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

p =大小(X, 2);β= randn (p, 1);偏见= randn (1);Mdl = incrementalClassificationLinear (“学习者”,“物流”,“β”,β,...“偏见”偏见“类名”,独特的(Y));

Mdl是一个递增分类线性模型。它的所有属性都是只读的。不需要指定任意值,您可以采取以下任何一种操作来准备模型:

  • 用遗传算法训练二元分类的logistic回归模型fitclinear在数据子集上(如果可用),然后使用incrementalLearner

  • 增量拟合Mdl通过使用适合

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

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

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

  3. 调用适合将模型与传入数据块相匹配。使用与传入观测值相匹配的新模型覆盖以前的增量模型。

numObsPerChunk=50;nchunk=楼层(n/numObsPerChunk);auc=零(nchunk,1);%增量学习对于n = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;[~, posteriorProb] =预测(Mdl X (idx:));[~, ~, ~, auc (j)] = perfcurve (Y (idx) posteriorProb (:, 2), Mdl.ClassNames (2));Mdl =适合(Mdl X (idx:), Y (idx));终止

Mdl是一个递增分类线性对流中的所有数据进行训练的模型对象。

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

绘图(auc)ylabel(“AUC”)包含(“迭代”)

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

AUC表明分类器能够很好地正确预测运动对象。

输入参数

全部崩溃

增量学习模型,指定为递增分类线性增量回归线性模型对象。您可以创建Mdl直接或转换支持的,传统训练的机器学习模型使用金宝appincrementalLearner函数。详细信息请参见对应的参考页面。

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

  • 如果Mdl是一个经过转换的、传统训练的模型,您可以不作任何修改就预测标签。

  • 否则,Mdl必须满足以下条件,您可以直接指定或通过拟合Mdl使用适合updateMetricsAndFit

    • 如果Mdl是一个增量回归线性模型,其模型系数Mdl.Beta和偏见偏误必须是非空数组。

    • 如果Mdl是一个递增分类线性模型,其模型系数Mdl.Beta和偏见偏误必须是非空数组和类名Mdl。一会必须包含两个类。

    • 无论对象类型如何,如果您配置模型,使函数标准化预测器数据,预测器意味着Mdl。μ和标准偏差标准差必须是非空数组。

用于预测标签的一批预测数据,指定为的浮点矩阵N观察和Mdl。NumPredictors预测变量。预测变量的值决定变量和观测值的方向。

观察标签的长度Y观察的次数X必须平等;Y (J)是观察的标签吗J(行或列)在X

笔记

预测金宝app仅支持浮点输入预测器数据。如果输入模型Mdl表示一个经过转换的、经过传统训练的模型,适合分类数据,请使用杜姆瓦尔将每个分类变量转换为虚拟变量的数字矩阵,并连接所有虚拟变量矩阵和任何其他数字预测器。有关更多详细信息,请参阅虚拟变量

数据类型:|

预测数据观察维度,指定为“专栏”“行”

例子:“ObservationsIn”、“列”

数据类型:字符|字符串

输出参数

全部崩溃

预测响应(或标签),作为分类数组或字符数组返回;浮点、逻辑或字符串向量;或字符向量的单元格数组N行。N是中的观察数X,标签(J)预测的反应是观察结果吗J

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

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

分类分数,返回为N-by-2浮点矩阵Mdl是一个递增分类线性模型。N是中的观察数X评分(J,K)这个分数是对观察进行分类的吗J成类KMdl。一会指定类的顺序。

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

更多关于

全部崩溃

分类分

对于二元分类的线性增量学习模型,原始分类分数用于对观察结果进行分类x,一个行向量,进入正数类为

F ( x ) = β 0 + x β ,

在哪里

  • β0为标量偏差偏误

  • β是系数的列向量吗Mdl.Beta

用于分类的原始分类分数x进入否定类的是——F(x)。该软件将观察结果分类,得出积极的分数。

如果线性分类模型由logistic回归学习者组成,则该软件应用“罗吉特”分数转换为原始分类分数。

扩展功能

在R2020b中引入