主要内容

discard金宝appSupportVectors

丢弃支持向量金宝app

语法

mdlOut = discard金宝appSupportVectors(mdl)

描述

mdlOut= discard金宝appSupportVectors (mdl返回经过训练的线性支持向量机(SVM)回归模型金宝appmdlOut,这与经过训练的线性SVM回归模型类似mdl,除了:

  • α而且金宝appSupportVectors属性为空([]).

  • 如果你显示mdlOut,软件列出β属性,而不是α财产。

输入参数

全部展开

训练有素的线性SVM回归模型,指定为RegressionSVMCompactRegressionSVM模型。

如果你使用一个非线性的核函数来训练模型(例如,如果字段mdl。KernelFunction是其他的东西“线性”),则软件会返回一个错误。你只能放弃线性模型的支持向量。金宝app

输出参数

全部展开

训练后的线性SVM回归模型,返回为RegressionSVMCompactRegressionSVM模型。mdlOut是同类型的吗mdl

丢弃支持向量后,属性金宝appα而且金宝appSupportVectors均为空([]).软件会列出该属性β,并且不列出属性α.的预测而且resubPredict方法计算预测的响应使用系数存储在β财产。

例子

全部展开

该模型展示了如何通过丢弃支持向量和其他相关参数来减少训练有素的线性SVM回归模型所使用的磁盘空间。金宝app

加载carsmall数据集。指定马力而且重量作为预测变量(X),英里/加仑作为响应变量(Y).

负载carsmallX =[马力,重量];Y = mpg;

训练线性SVM回归模型,使数据标准化。显示支持向量的个数。金宝app

mdl = fitrsvm(X,Y,“标准化”,true) numSV = size(mll 金宝app. supportvectors,1)
mdl = RegressionSVM PredictorNames: {'x1' 'x2'} ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' Alpha: [77x1 double] Bias: 22.9131 KernelParameters: [1x1 struct] Mu: [109.3441 2.9625e+03] Sigma: [45.3545 805.9668] NumObservations: 93 BoxConstraints: [93x1 double] ConvergenceInfo: [1x1 struct] Is金宝appSupportVector: [93x1 logical] Solver: 'SMO' Properties, Methods numSV = 77

默认情况下,fitrsvm训练线性支持向量机回归模型。软件列表α在显示中。该模型有77个支持向量。金宝app

请注意,预测器和响应变量包含几个值。在训练模型时,fitrsvm将删除包含来自预测器和响应数据的值。因此,训练后的模型仅使用样本数据中包含的100个总观测值中的93个。

丢弃支持向量和其他相关参金宝app数。

mdlOut = discard金宝appSupportVectors(mdl) mdlOut。αmdlOut。年代upportVectors
mdlOut = RegressionSVM PredictorNames: {'x1' 'x2'} ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' Beta: [2x1 double]偏差:22.9131 KernelParameters: [1x1 struct] Mu: [109.3441 2.9625e+03] Sigma: [45.3545 805.9668] NumObservations: 93 BoxConstraints: [93x1 double] ConvergenceInfo: [1x1 struct] IsSupp金宝apportVector: [93x1 logical] Solver: 'SMO' Properties, Methods ans = [] ans = []

软件列表β在显示而不是α.的α而且金宝appSupportVectors属性为空。

比较模型的大小。

Vars = whoos (“mdl”“mdlOut”);(var (1) .bytes一样,var (2) .bytes]
Ans = 15004 13156

mdlOut占用的内存小于mdl因为它不存储支持向量。金宝app

这个例子展示了如何通过压缩模型和丢弃支持向量来减少一个完整的训练过的SVM回归模型的内存消耗。金宝app

加载carsmall示例数据。

负载carsmallrng默认的再现率%

训练线性支持向量机回归模型重量作为预测变量和英里/加仑作为响应变量。标准化数据。

mdl = fitrsvm(重量,MPG,“标准化”,真正的);

请注意,英里/加仑包含几个值。在训练模型时,fitrsvm将删除包含来自预测器和响应数据的值。因此,训练后的模型仅使用样本数据中包含的100个总观测值中的94个。

压缩回归模型以丢弃训练数据和一些与训练过程相关的信息。

compactMdl = compact(mdl);

compactMdl是一个CompactRegressionSVM具有相同参数、支持向量和相关估计的模型金宝appmdl,但不再存储训练数据。

放弃对压缩模型的支持向量金宝app和相关估计。

mdlOut = discard金宝appSupportVectors(compactMdl);

mdlOut是一个CompactRegressionSVM具有相同参数的模型mdl而且compactMdl,但不再存储支持向量和相关估计。金宝app

比较三种SVM回归模型的大小,compactMdlmdl,mdlOut

Vars = whoos (“compactMdl”“mdl”“mdlOut”);(var (1) .bytes一样,var (2) .bytes, var (3) .bytes]
Ans = 3601 13727 2305

压缩模型compactMdl消耗3601字节的内存,而完整的模型mdl占用13727字节内存。该模型mdlOut,它也丢弃了支持向量,消耗2305字节的内存。金宝app

提示

对于训练过的线性SVM回归模型金宝appSupportVectors属性是一个nsv——- - - - - -p矩阵。nsv支持向量的数量(最多为训练样本量)金宝app和p是预测变量的数量。如果有任何预测因素是绝对的,那么p包括说明所有分类预测器水平所需的虚拟变量的数量。的α属性是带有的向量nsv元素。

金宝appSupportVectors而且α对于包含许多观察结果或示例的复杂数据集,属性可能很大。然而,β属性是带有的向量p元素,它们可能要小得多。您可以使用训练过的支持向量机回归模型来预测响应值,即使您丢弃了支持向量金宝app预测而且resubPredict方法使用β计算预测的反应。

如果训练过的线性SVM回归模型有许多支持向量,则使用金宝appdiscard金宝appSupportVectors以减少经过训练的线性SVM回归模型所消耗的磁盘空间量。您可以通过输入显示支持向量矩阵的大小金宝app大小(mdlIn.Su金宝apppportVectors)

算法

预测而且resubPredict用公式估计响应值

f x X 年代 β + β 0

地点:

  • β是Beta值,存储为mdl。β

  • β0偏差值是否存储为mdl。偏见

  • X是训练数据。

  • 年代内核比例值是否存储为mdl.KernelParameters.Scale

这样,软件就可以使用的价值mdl。β即使丢弃支持向量也能做出预测。金宝app

版本历史

在R2015b中引入