文档帮助中心文档
从增量学习的线性模型中预测对新观察的反应
标签=预测(Mdl, X)
标签=预测(Mdl X, ObservationsIn,尺寸)
[标签,分数]=预测(___)
实例
标签=预测(Mdl,X)返回预测的响应或标签标签对预测数据的观察X从增量学习模型Mdl.
标签=预测(Mdl,X)
标签
Mdl
X
标签=预测(Mdl,X“ObservationsIn”,维)指定预测器数据的观察维度“行”(默认)或“专栏”.例如,指定“ObservationsIn”、“列”表示预测器数据中的观测值是沿着列的X.
标签=预测(Mdl,X“ObservationsIn”,维)
维
“行”
“专栏”
“ObservationsIn”、“列”
[标签,分数) =预测(___)同样的回报分类的分数对于所有的类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表示传统训练线性分类模型的模型对象。
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为增量学习准备模型对象。
IncrementalMdl
递增分类线性
这个incrementalLearner函数通过向增量学习器传递已学习的系数以及其他信息来初始化增量学习器TTMdl从培训数据中学习。
incrementalLearner
IncrementalMdl是温暖的IsWarm是1.),这意味着增量学习功能可以开始跟踪性能指标。
IsWarm
1.
这个incrementalLearner使用自适应比例不变解算器配置要训练的模型,而fitclinear训练TTMdl使用BFGS求解器
fitclinear
通过转换传统训练模型而产生的增量式学习者可以在不进行进一步处理的情况下生成预测。
使用这两个模型预测所有观察值的类标签。
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终止
Mdl是一个增量回归线性对流中的所有数据进行训练的模型对象。
残差在增量学习中对称地分布在0附近。
为了计算后验类别概率,指定逻辑回归增量学习器。
加载人工活动数据集。随机洗牌数据。
负载humanactivityn =元素个数(actid);rng (10);%的再现性idx=randsample(n,n);X=feat(idx,:);Y=actid(idx);
Y=Y>2;
为二元分类创建一个增量逻辑回归模型。它准备预测通过指定类名和任意系数和偏差值。
预测
p =大小(X, 2);β= randn (p, 1);偏见= randn (1);Mdl = incrementalClassificationLinear (“学习者”,“物流”,“β”,β,...“偏见”偏见“类名”,独特的(Y));
Mdl是一个递增分类线性模型。它的所有属性都是只读的。不需要指定任意值,您可以采取以下任何一种操作来准备模型:
用遗传算法训练二元分类的logistic回归模型fitclinear在数据子集上(如果可用),然后使用incrementalLearner.
增量拟合Mdl通过使用适合.
适合
模拟一个数据流,并对每个传入的50个观察数据块执行以下操作。
调用预测预测传入数据块中观测值的分类分数。分类分数是logistic回归学习者的后验类概率。
调用perfcurve使用传入数据块计算ROC曲线下面积(AUC),并存储结果。
perfcurve
调用适合将模型与传入数据块相匹配。使用与传入观测值相匹配的新模型覆盖以前的增量模型。
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”)包含(“迭代”)
AUC表明分类器能够很好地正确预测运动对象。
增量学习模型,指定为递增分类线性或增量回归线性模型对象。您可以创建Mdl直接或转换支持的,传统训练的机器学习模型使用金宝appincrementalLearner函数。详细信息请参见对应的参考页面。
您必须配置Mdl来预测一批观测结果的标签。
如果Mdl是一个经过转换的、传统训练的模型,您可以不作任何修改就预测标签。
否则,Mdl必须满足以下条件,您可以直接指定或通过拟合Mdl使用适合或updateMetricsAndFit.
updateMetricsAndFit
如果Mdl是一个增量回归线性模型,其模型系数Mdl.Beta和偏见偏误必须是非空数组。
Mdl.Beta
偏误
如果Mdl是一个递增分类线性模型,其模型系数Mdl.Beta和偏见偏误必须是非空数组和类名Mdl。一会必须包含两个类。
Mdl。一会
无论对象类型如何,如果您配置模型,使函数标准化预测器数据,预测器意味着Mdl。μ和标准偏差标准差必须是非空数组。
Mdl。μ
标准差
用于预测标签的一批预测数据,指定为的浮点矩阵N观察和Mdl。NumPredictors预测变量。预测变量的值维决定变量和观测值的方向。
Mdl。NumPredictors
观察标签的长度Y观察的次数X必须平等;Y (J)是观察的标签吗J(行或列)在X.
Y
Y (J)
J
笔记
预测金宝app仅支持浮点输入预测器数据。如果输入模型Mdl表示一个经过转换的、经过传统训练的模型,适合分类数据,请使用杜姆瓦尔将每个分类变量转换为虚拟变量的数字矩阵,并连接所有虚拟变量矩阵和任何其他数字预测器。有关更多详细信息,请参阅虚拟变量.
杜姆瓦尔
数据类型:单|双
单
双
预测数据观察维度,指定为“专栏”或“行”.
例子:“ObservationsIn”、“列”
数据类型:字符|字符串
字符
字符串
预测响应(或标签),作为分类数组或字符数组返回;浮点、逻辑或字符串向量;或字符向量的单元格数组N行。N是中的观察数X,标签(J)预测的反应是观察结果吗J.
标签(J)
对于分类问题,标签与中存储的类名具有相同的数据类型Mdl。一会.(软件将字符串数组视为字符向量的单元数组。)
对于回归问题,标签是一个浮点向量。
分类分数,返回为N-by-2浮点矩阵Mdl是一个递增分类线性模型。N是中的观察数X.评分(J,K)这个分数是对观察进行分类的吗J成类K.Mdl。一会指定类的顺序。
评分(J,K)
K
如果Mdl。学习者是“支持向量机”,预测返回原始分类分数。如果Mdl。学习者是“物流”,分类分数为后验概率。
Mdl。学习者
“支持向量机”
“物流”
对于二元分类的线性增量学习模型,原始分类分数用于对观察结果进行分类x,一个行向量,进入正数类为
F ( x ) = β 0 + x β ,
在哪里
β0为标量偏差偏误.
β是系数的列向量吗Mdl.Beta.
用于分类的原始分类分数x进入否定类的是——F(x)。该软件将观察结果分类,得出积极的分数。
如果线性分类模型由logistic回归学习者组成,则该软件应用“罗吉特”分数转换为原始分类分数。
“罗吉特”
使用注意事项及限制:
使用saveLearnerForCoder,loadLearnerForCoder,codegen(MATLAB编码器)为预测函数。通过使用保存一个训练过的模型saveLearnerForCoder.定义一个入口点函数,通过使用loadLearnerForCoder并调用预测函数。然后使用codegen为入口点函数生成代码。
saveLearnerForCoder
loadLearnerForCoder
codegen
为生成单精度C/C++代码预测,指定名称-值参数“数据类型”、“单”当你打电话给loadLearnerForCoder函数。
“数据类型”、“单”
这个表格包含关于的参数的注释预测.表中未包含的参数完全支持。金宝app
有关模型对象的使用说明和限制,请参见递增分类线性或增量回归线性.
批到批,观察的数量可以是可变的大小。
预测变量的数量必须等于Mdl。NumPredictors.
X必须单或双.
适用以下限制:
如果您配置Mdl洗牌数据(洗牌是真正的,或Mdl。解算器是“新加坡元”或“asgd”),预测函数在将模型拟合到这批之前,将每批传入的观测数据随机打乱。打乱的观测结果的顺序可能与MATLAB生成的顺序不匹配®.因此,如果你适合Mdl在生成预测之前,MATLAB中计算的预测和生成的代码计算的预测可能不相等。
洗牌
真正的
Mdl。解算器
“新加坡元”
“asgd”
对所有浮点输入参数和对象属性使用同构数据类型单或双.
有关更多信息,请参见代码生成简介.
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。
与当地办事处联系