Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

update

Actualice los parámetros del modelo para la generación de código

Descripción

Genere código de C/C++ para las funciones de un modelo de aprendizaje automático mediante un objeto de configurador de codificador.Predecirupdate Cree este objeto utilizando y su función de objeto.learnerCoderConfigurergenerateCode A continuación, puede utilizar la función para actualizar los parámetros del modelo en el código generado sin tener que regenerar el código.update Esta característica reduce el esfuerzo necesario para regenerar, volver a implementar y volver a comprobar el código de C/C++ cuando se vuelve a entrenar un modelo con nuevos datos o configuración.

Este diagrama de flujo muestra el flujo de trabajo de generación de código utilizando un configurador de codificador. Uso update para el paso resaltado.

Si no genera código, no es necesario que utilice la función.update Cuando se vuelve a entrenar un modelo, el modelo devuelto ya incluye parámetros modificados.MATLAB®

ejemplo

updatedMdl = update(Mdl,params) Devuelve una versión actualizada de la que contiene nuevos parámetros.Mdlparams

Después de volver a entrenar un modelo, utilice la función para detectar los parámetros modificados en el modelo reentrenado y validar si los valores de parámetro modificados satisfacen los atributos del codificador de los parámetros.validatedUpdateInputs Utilice la salida de los parámetros validados como entrada para actualizar los parámetros del modelo.validatedUpdateInputsparams

Ejemplos

contraer todo

Entrenar un modelo de máquina de vectores de soporte (SVM) utilizando un conjunto de datos parciales y crear un configurador de codificador para el modelo. Utilice las propiedades del configurador del codificador para especificar los atributos del codificador de los parámetros del modelo SVM. Utilice la función del objeto del configurador del codificador para generar el código C que predice las respuestas para los nuevos Datos predictores. A continuación, vuelva a entrenar el modelo utilizando todo el conjunto de datos y actualizar los parámetros en el código generado sin regenerar el código.

Entrenar modelo

Cargue el conjunto de datos y capacite un modelo de regresión SVM utilizando las primeras 50 observaciones.carsmall

load carsmall X = [Horsepower,Weight]; Y = MPG; Mdl = fitrsvm(X(1:50,:),Y(1:50));

es un objeto.MdlRegressionSVM

Cree el configurador del codificador

Cree un configurador de codificador para el modelo utilizando.RegressionSVMlearnerCoderConfigurer Especifique los datos del predictor.X La función utiliza la entrada para configurar los atributos del codificador de la entrada de función.learnerCoderConfigurerXPredecir

configurer = learnerCoderConfigurer(Mdl,X(1:50,:));

es un objeto, que es un configurador de codificador de un objeto.configurerRegressionSVMCoderConfigurerRegressionSVM

Especificar atributos de codificador de parámetros

Especifique los atributos del codificador de los parámetros del modelo de regresión de SVM para que pueda actualizar los parámetros en el código generado después de volver a entrenar el modelo. En este ejemplo se especifican los atributos del codificador de los Datos predictores que se desean pasar al código generado y los atributos del codificador de los vectores de soporte del modelo de regresión SVM.

En primer lugar, especifique los atributos del codificador de modo que el código generado acepte cualquier número de observaciones.X Modifique los atributos y.SizeVectorVariableDimensions El atributo especifica el límite superior del tamaño de los Datos predictores y el atributo especifica si cada dimensión de los Datos predictores tiene un tamaño variable o un tamaño fijo.SizeVectorVariableDimensions

configurer.X.SizeVector = [Inf 2]; configurer.X.VariableDimensions = [true false];

El tamaño de la primera dimensión es el número de observaciones. En este caso, el código especifica que el límite superior del tamaño es y el tamaño es variable, lo que significa que puede tener cualquier número de observaciones.InfX Esta especificación es conveniente si no conoce el número de observaciones al generar código.

El tamaño de la segunda dimensión es el número de variables predictoras. Este valor debe fijarse para un modelo de aprendizaje automático. contiene dos predictores, por lo que el valor del atributo debe ser dos y el valor del atributo debe ser.XSizeVectorVariableDimensionsfalse

Si vuelve a entrenar el modelo SVM con nuevos datos o con diferentes configuraciones, el número de vectores de soporte puede variar. Por lo tanto, especifique los atributos del codificador de modo que pueda actualizar los vectores de soporte en el código generado.SupportVectors

configurer.SupportVectors.SizeVector = [250 2];
SizeVector attribute for Alpha has been modified to satisfy configuration constraints. 
configurer.SupportVectors.VariableDimensions = [true false];
VariableDimensions attribute for Alpha has been modified to satisfy configuration constraints. 

Si usted modifica los atributos del codificador de, después el software modifica los atributos del codificador de para satisfacer las restricciones de la configuración.SupportVectorsAlpha Si la modificación de los atributos del codificador de un parámetro requiere cambios subsiguientes en otros parámetros dependientes para satisfacer las restricciones de configuración, el software cambia los atributos del codificador de los parámetros dependientes.

Generar código

Para generar código de C/C++, debe tener acceso a un compilador de C/C++ que esté configurado correctamente. MATLAB Coder localiza y utiliza un compilador compatible e instalado. Puede usar para ver y cambiar el compilador predeterminado.mex-setup Para obtener más información, consulte.Cambiar el compilador predeterminado (MATLAB)

Se usa para generar código para las funciones del modelo de regresión de SVM () con la configuración predeterminada.generateCodePredecirupdateMdl

generateCode(configurer)
generateCode creates these files in output folder: 'initialize.m', 'predict.m', 'update.m', 'RegressionSVMModel.mat' 

genera los archivos de MATLAB necesarios para generar código, incluidas las dos funciones de punto de entrada y para las funciones de, respectivamente.generateCodepredict.mupdate.mPredecirupdateMdl A continuación, crea una función MEX denominada para las dos funciones de punto de entrada en la carpeta y copia la función MEX a la carpeta actual.generateCodeRegressionSVMModelcodegen\mex\RegressionSVMModel

Compruebe que el código generado

Pasar algunos Datos predictores para comprobar si la función de y la función en la función MEX devuelven las mismas respuestas pronosticadas.PredecirMdlPredecir Para llamar a una función de punto de entrada en una función MEX que tiene más de un punto de entrada, especifique el nombre de la función como el primer argumento de entrada.

yfit = predict(Mdl,X); yfit_mex = RegressionSVMModel('predict',X);

puede incluir diferencias de redondeo en comparación con.yfit_mexyfit En este caso, compare y, permitiendo una pequeña tolerancia.yfityfit_mex

find(abs(yfit-yfit_mex) > 1e-6)
ans =    0x1 empty double column vector 

La comparación confirma que y son iguales dentro de la tolerancia.yfityfit_mex1e–6

Reentrenar modelo y actualizar parámetros en código generado

Vuelva a entrenar el modelo utilizando todo el conjunto de datos.

retrainedMdl = fitrsvm(X,Y);

Extraiga los parámetros que desea actualizar mediante.validatedUpdateInputs Esta función detecta los parámetros del modelo modificados y valida si los valores de parámetro modificados satisfacen los atributos del codificador de los parámetros.retrainedMdl

params = validatedUpdateInputs(configurer,retrainedMdl);

Actualizar los parámetros en el código generado.

RegressionSVMModel('update',params)

Compruebe que el código generado

Compare las salidas de la función y la función en la función MEX actualizada.PredecirretrainedMdlPredecir

yfit = predict(retrainedMdl,X); yfit_mex = RegressionSVMModel('predict',X); find(abs(yfit-yfit_mex) > 1e-6)
ans =    0x1 empty double column vector 

La comparación confirma que y son iguales dentro de la tolerancia.yfityfit_mex1e-6

Entrenar un modelo SVM utilizando un conjunto de datos parciales y crear un configurador de codificador para el modelo. Utilice las propiedades del configurador del codificador para especificar los atributos del codificador de los parámetros del modelo SVM. Utilice la función de objeto del configurador del codificador para generar código C que predice etiquetas para nuevos Datos predictores. A continuación, vuelva a entrenar el modelo utilizando todo el conjunto de datos y actualizar los parámetros en el código generado sin regenerar el código.

Entrenar modelo

Cargue el conjunto de datos.ionosphere Este conjunto de datos tiene 34 predictores y 351 respuestas binarias para las devoluciones de radar, ya sea Bad () o Good ().'b''g' Entrenar un modelo de clasificación de SVM binario utilizando las primeras 50 observaciones.

load ionosphere Mdl = fitcsvm(X(1:50,:),Y(1:50));

es un objeto.MdlClassificationSVM

Cree el configurador del codificador

Cree un configurador de codificador para el modelo utilizando.ClassificationSVMlearnerCoderConfigurer Especifique los datos del predictor.X La función utiliza la entrada para configurar los atributos del codificador de la entrada de función.learnerCoderConfigurerXPredecir Además, establezca el número de salidas en 2 para que el código generado devuelva las etiquetas y las puntuaciones previstas.

configurer = learnerCoderConfigurer(Mdl,X(1:50,:),'NumOutputs',2);

es un objeto, que es un configurador de codificador de un objeto.configurerClassificationSVMCoderConfigurerClassificationSVM

Especificar atributos de codificador de parámetros

Especifique los atributos del codificador de los parámetros del modelo de clasificación de SVM para que pueda actualizar los parámetros en el código generado después de volver a entrenar el modelo. En este ejemplo se especifican los atributos del codificador de los Datos predictores que se desean pasar al código generado y los atributos del codificador de los vectores de soporte del modelo SVM.

En primer lugar, especifique los atributos del codificador de modo que el código generado acepte cualquier número de observaciones.X Modifique los atributos y.SizeVectorVariableDimensions El atributo especifica el límite superior del tamaño de los Datos predictores y el atributo especifica si cada dimensión de los Datos predictores tiene un tamaño variable o un tamaño fijo.SizeVectorVariableDimensions

configurer.X.SizeVector = [Inf 34]; configurer.X.VariableDimensions = [true false];

El tamaño de la primera dimensión es el número de observaciones. En este caso, el código especifica que el límite superior del tamaño es y el tamaño es variable, lo que significa que puede tener cualquier número de observaciones.InfX Esta especificación es conveniente si no conoce el número de observaciones al generar código.

El tamaño de la segunda dimensión es el número de variables predictoras. Este valor debe fijarse para un modelo de aprendizaje automático. contiene 34 predictores, por lo que el valor del atributo debe ser 34 y debe ser el valor del atributo.XSizeVectorVariableDimensionsfalse

Si vuelve a entrenar el modelo SVM con nuevos datos o con diferentes configuraciones, el número de vectores de soporte puede variar. Por lo tanto, especifique los atributos del codificador de modo que pueda actualizar los vectores de soporte en el código generado.SupportVectors

configurer.SupportVectors.SizeVector = [250 34];
SizeVector attribute for Alpha has been modified to satisfy configuration constraints. SizeVector attribute for SupportVectorLabels has been modified to satisfy configuration constraints. 
configurer.SupportVectors.VariableDimensions = [true false];
VariableDimensions attribute for Alpha has been modified to satisfy configuration constraints. VariableDimensions attribute for SupportVectorLabels has been modified to satisfy configuration constraints. 

Si usted modifica los atributos del codificador de, después el software modifica los atributos del codificador de y para satisfacer las restricciones de configuración.SupportVectorsAlphaSupportVectorLabels Si la modificación de los atributos del codificador de un parámetro requiere cambios subsiguientes en otros parámetros dependientes para satisfacer las restricciones de configuración, el software cambia los atributos del codificador de los parámetros dependientes.

Generar código

Para generar código de C/C++, debe tener acceso a un compilador de C/C++ que esté configurado correctamente. MATLAB Coder localiza y utiliza un compilador compatible e instalado. Puede usar para ver y cambiar el compilador predeterminado.mex-setup Para obtener más información, consulte.Cambiar el compilador predeterminado (MATLAB)

Se usa para generar código para las funciones y el modelo de clasificación de SVM () con la configuración predeterminada.generateCodePredecirupdateMdl

generateCode(configurer)
generateCode creates these files in output folder: 'initialize.m', 'predict.m', 'update.m', 'ClassificationSVMModel.mat' 

genera los archivos de MATLAB necesarios para generar código, incluidas las dos funciones de punto de entrada y para las funciones de, respectivamente.generateCodepredict.mupdate.mPredecirupdateMdl A continuación, crea una función MEX denominada para las dos funciones de punto de entrada en la carpeta y copia la función MEX a la carpeta actual.generateCodeClassificationSVMModelcodegen\mex\ClassificationSVMModel

Compruebe que el código generado

Pasar algunos Datos predictores para comprobar si la función de y la función en la función MEX devuelven las mismas etiquetas.PredecirMdlPredecir Para llamar a una función de punto de entrada en una función MEX que tiene más de un punto de entrada, especifique el nombre de la función como el primer argumento de entrada.

[label,score] = predict(Mdl,X); [label_mex,score_mex] = ClassificationSVMModel('predict',X);

Compare y utilice.Etiquetalabel_mexisequal

isequal(label,label_mex)
ans = logical
   1

Devuelve Logical 1 () si todas las entradas son iguales.isequaltrue La comparación confirma que la función y la función de la función MEX devuelven las mismas etiquetas.PredecirMdlPredecir

puede incluir diferencias de redondeo en comparación con.score_mexPuntuación En este caso, compare y, permitiendo una pequeña tolerancia.score_mexPuntuación

find(abs(score-score_mex) > 1e-8)
ans =    0x1 empty double column vector 

La comparación confirma que y son iguales dentro de la tolerancia.Puntuaciónscore_mex1e–8

Reentrenar modelo y actualizar parámetros en código generado

Vuelva a entrenar el modelo utilizando todo el conjunto de datos.

retrainedMdl = fitcsvm(X,Y);

Extraiga los parámetros que desea actualizar mediante.validatedUpdateInputs Esta función detecta los parámetros del modelo modificados y valida si los valores de parámetro modificados satisfacen los atributos del codificador de los parámetros.retrainedMdl

params = validatedUpdateInputs(configurer,retrainedMdl);

Actualizar los parámetros en el código generado.

ClassificationSVMModel('update',params)

Compruebe que el código generado

Compare las salidas de la función y la función en la función MEX actualizada.PredecirretrainedMdlPredecir

[label,score] = predict(retrainedMdl,X); [label_mex,score_mex] = ClassificationSVMModel('predict',X); isequal(label,label_mex)
ans = logical
   1

find(abs(score-score_mex) > 1e-8)
ans =    0x1 empty double column vector 

La comparación confirma que y son iguales, y los valores de puntuación son iguales dentro de la tolerancia.labelslabels_mex

Entrenar un modelo de códigos de salida de corrección de errores (ECOC) utilizando estudiantes binarios de SVM y crear un configurador de codificador para el modelo. Utilice las propiedades del configurador del codificador para especificar los atributos del codificador de los parámetros del modelo ECOC. Utilice la función de objeto del configurador del codificador para generar código C que predice etiquetas para nuevos Datos predictores. A continuación, vuelva a entrenar el modelo utilizando diferentes configuraciones y actualice los parámetros en el código generado sin regenerar el código.

Entrenar modelo

Cargue el conjunto de datos de iris de Fisher.

load fisheriris X = meas; Y = species;

Cree una plantilla de aprendizaje binario de SVM para utilizar una función del kernel gaussiano y para estandarizar los Datos predictores.

t = templateSVM('KernelFunction','gaussian','Standardize',true);

Entrenar un modelo ECOC multiclase utilizando la plantilla.t

Mdl = fitcecoc(X,Y,'Learners',t);

es un objeto.MdlClassificationECOC

Cree el configurador del codificador

Cree un configurador de codificador para el modelo utilizando.ClassificationECOClearnerCoderConfigurer Especifique los datos del predictor.X La función utiliza la entrada para configurar los atributos del codificador de la entrada de función.learnerCoderConfigurerXPredecir Además, establezca el número de salidas en 2 para que el código generado devuelva las dos primeras salidas de la función, que son las etiquetas pronosticadas y las pérdidas binarias promedio negadas.predict

configurer = learnerCoderConfigurer(Mdl,X,'NumOutputs',2)
configurer =    ClassificationECOCCoderConfigurer with properties:     Update Inputs:     BinaryLearners: [1×1 ClassificationSVMCoderConfigurer]              Prior: [1×1 LearnerCoderInput]               Cost: [1×1 LearnerCoderInput]     Predict Inputs:                  X: [1×1 LearnerCoderInput]     Code Generation Parameters:         NumOutputs: 2     OutputFileName: 'ClassificationECOCModel'     Properties, Methods  

es un objeto, que es un configurador de codificador de un objeto.configurerClassificationECOCCoderConfigurerClassificationECOC La pantalla muestra los argumentos de entrada ajustables de y:,,, y.PredecirupdateXBinaryLearnersPriorCosto

Especificar atributos de codificador de parámetros

Especifique los atributos del codificador de argumentos (Datos predictores y los argumentos de par nombre-valor y) y argumentos (vectores de soporte de los alumnos de SVM) para que pueda utilizar estos argumentos como argumentos de entrada y en el código generado.Predecir'Decoding''BinaryLoss'updatePredecirupdate

En primer lugar, especifique los atributos del codificador de modo que el código generado acepte cualquier número de observaciones.X Modifique los atributos y.SizeVectorVariableDimensions El atributo especifica el límite superior del tamaño de los Datos predictores y el atributo especifica si cada dimensión de los Datos predictores tiene un tamaño variable o un tamaño fijo.SizeVectorVariableDimensions

configurer.X.SizeVector = [Inf 4]; configurer.X.VariableDimensions = [true false];

El tamaño de la primera dimensión es el número de observaciones. En este caso, el código especifica que el límite superior del tamaño es y el tamaño es variable, lo que significa que puede tener cualquier número de observaciones.InfX Esta especificación es conveniente si no conoce el número de observaciones al generar código.

El tamaño de la segunda dimensión es el número de variables predictoras. Este valor debe fijarse para un modelo de aprendizaje automático. contiene 4 predictores, por lo que el segundo valor del atributo debe ser 4 y el segundo valor del atributo debe ser.XSizeVectorVariableDimensionsfalse

A continuación, modifique los atributos del codificador y utilice los argumentos de par nombre-valor en el código generado.BinaryLossDecoding'BinaryLoss''Decoding' Mostrar los atributos del codificador de.BinaryLoss

configurer.BinaryLoss
ans =    EnumeratedInput with properties:               Value: 'hinge'     SelectedOption: 'Built-in'     BuiltInOptions: {'hamming'  'linear'  'quadratic'  'exponential'  'binodeviance'  'hinge'  'logit'}         IsConstant: 1         Tunability: 0  

Para usar un valor no predeterminado en el código generado, debe especificar el valor antes de generar el código. Especifique el atributo de as.ValueBinaryLoss'exponential'

configurer.BinaryLoss.Value = 'exponential'; configurer.BinaryLoss
ans =    EnumeratedInput with properties:               Value: 'exponential'     SelectedOption: 'Built-in'     BuiltInOptions: {'hamming'  'linear'  'quadratic'  'exponential'  'binodeviance'  'hinge'  'logit'}         IsConstant: 1         Tunability: 1  

Si modifica valores de atributo cuando es (lógico 0), el software establece la a (lógica 1).TunabilityfalseTunabilitytrue

Mostrar los atributos del codificador de.Decoding

configurer.Decoding
ans =    EnumeratedInput with properties:               Value: 'lossweighted'     SelectedOption: 'Built-in'     BuiltInOptions: {'lossweighted'  'lossbased'}         IsConstant: 1         Tunability: 0  

Especifique el atributo de tal manera que pueda utilizar todos los valores disponibles en el código generado.IsConstantDecodingfalseBuiltInOptions

configurer.Decoding.IsConstant = false; configurer.Decoding
ans =    EnumeratedInput with properties:               Value: [1×1 LearnerCoderInput]     SelectedOption: 'NonConstant'     BuiltInOptions: {'lossweighted'  'lossbased'}         IsConstant: 0         Tunability: 1  

El software cambia el atributo de a un objeto para que pueda utilizar ambos y ' como el valor de.ValueDecodingLearnerCoderInput'lossweighted''lossbased'Decoding' Además, el software establece el to y el to.SelectedOption'NonConstant'Tunabilitytrue

Por último, modifique los atributos de codificador de in.SupportVectorsBinaryLearners Mostrar los atributos del codificador de.SupportVectors

configurer.BinaryLearners.SupportVectors
ans =    LearnerCoderInput with properties:              SizeVector: [54 4]     VariableDimensions: [1 0]               DataType: 'double'             Tunability: 1  

El valor predeterminado es porque cada alumno tiene un número diferente de vectores de soporte.VariableDimensions[true false] Si vuelve a entrenar el modelo ECOC con nuevos datos o diferentes configuraciones, el número de vectores de soporte en los alumnos de SVM puede variar. Por lo tanto, aumente el límite superior del número de vectores de soporte.

configurer.BinaryLearners.SupportVectors.SizeVector = [150 4];
SizeVector attribute for Alpha has been modified to satisfy configuration constraints. SizeVector attribute for SupportVectorLabels has been modified to satisfy configuration constraints. 

Si usted modifica los atributos del codificador de, después el software modifica los atributos del codificador de y para satisfacer las restricciones de configuración.SupportVectorsAlphaSupportVectorLabels Si la modificación de los atributos del codificador de un parámetro requiere cambios subsiguientes en otros parámetros dependientes para satisfacer las restricciones de configuración, el software cambia los atributos del codificador de los parámetros dependientes.

Visualice el configurador del codificador.

configurer
configurer =    ClassificationECOCCoderConfigurer with properties:     Update Inputs:     BinaryLearners: [1×1 ClassificationSVMCoderConfigurer]              Prior: [1×1 LearnerCoderInput]               Cost: [1×1 LearnerCoderInput]     Predict Inputs:                  X: [1×1 LearnerCoderInput]         BinaryLoss: [1×1 EnumeratedInput]           Decoding: [1×1 EnumeratedInput]     Code Generation Parameters:         NumOutputs: 2     OutputFileName: 'ClassificationECOCModel'     Properties, Methods  

La pantalla ahora incluye y también.BinaryLossDecoding

Generar código

Para generar código de C/C++, debe tener acceso a un compilador de C/C++ que esté configurado correctamente. MATLAB Coder localiza y utiliza un compilador compatible e instalado. Puede usar para ver y cambiar el compilador predeterminado.mex-setup Para obtener más información, consulte.Cambiar el compilador predeterminado (MATLAB)

Genere código para las funciones del modelo de clasificación ECOC () con la configuración predeterminada.PredecirupdateMdl

generateCode(configurer)
generateCode creates these files in output folder: 'initialize.m', 'predict.m', 'update.m', 'ClassificationECOCModel.mat' 

La función completa estas acciones:generateCode

  • Genere los archivos de MATLAB necesarios para generar código, incluidas las dos funciones de punto de entrada y para las funciones de, respectivamente.predict.mupdate.mPredecirupdateMdl

  • Cree una función MEX denominada para las dos funciones de punto de entrada.ClassificationECOCModel

  • Cree el código para la función MEX en la carpeta.codegen\mex\ClassificationECOCModel

  • Copie la función MEX a la carpeta actual.

Compruebe que el código generado

Pasar algunos Datos predictores para comprobar si la función de y la función en la función MEX devuelven las mismas etiquetas.PredecirMdlPredecir Para llamar a una función de punto de entrada en una función MEX que tiene más de un punto de entrada, especifique el nombre de la función como el primer argumento de entrada. Dado que especificó como un argumento de entrada ajustable cambiando el atributo antes de generar el código, también debe especificarlo en la llamada a la función MEX, aunque es el valor predeterminado de.'Decoding'IsConstant'lossweighted''Decoding'

[label,NegLoss] = predict(Mdl,X,'BinaryLoss','exponential'); [label_mex,NegLoss_mex] = ClassificationECOCModel('predict',X,'BinaryLoss','exponential','Decoding','lossweighted');

Comparar con mediante el uso de.Etiquetalabel_mexisequal

isequal(label,label_mex)
ans = logical
   1

Devuelve Logical 1 () si todas las entradas son iguales.isequaltrue La comparación confirma que la función y la función de la función MEX devuelven las mismas etiquetas.PredecirMdlPredecir

puede incluir diferencias de redondeo en comparación con.NegLoss_mexNegLoss En este caso, compare con, permitiendo una pequeña tolerancia.NegLoss_mexNegLoss

find(abs(NegLoss-NegLoss_mex) > 1e-8)
ans =    0×1 empty double column vector 

La comparación confirma que y son iguales dentro de la tolerancia.NegLossNegLoss_mex1e–8

Reentrenar modelo y actualizar parámetros en código generado

Vuelva a entrenar el modelo con un ajuste diferente. Especifique como para que el software seleccione un factor de escala adecuado mediante un procedimiento heurístico.'KernelScale''auto'

t_new = templateSVM('KernelFunction','gaussian','Standardize',true,'KernelScale','auto'); retrainedMdl = fitcecoc(X,Y,'Learners',t_new);

Extraiga los parámetros que desea actualizar mediante.validatedUpdateInputs Esta función detecta los parámetros del modelo modificados y valida si los valores de parámetro modificados satisfacen los atributos del codificador de los parámetros.retrainedMdl

params = validatedUpdateInputs(configurer,retrainedMdl);

Actualizar los parámetros en el código generado.

ClassificationECOCModel('update',params)

Compruebe que el código generado

Compare las salidas de la función de las salidas de la función en la función MEX actualizada.PredecirretrainedMdlPredecir

[label,NegLoss] = predict(retrainedMdl,X,'BinaryLoss','exponential','Decoding','lossbased'); [label_mex,NegLoss_mex] = ClassificationECOCModel('predict',X,'BinaryLoss','exponential','Decoding','lossbased'); isequal(label,label_mex)
ans = logical
   1

find(abs(NegLoss-NegLoss_mex) > 1e-8)
ans =    0×1 empty double column vector 

La comparación confirma que y son iguales, y son iguales dentro de la tolerancia.labelslabels_mexNegLossNegLoss_mex

Argumentos de entrada

contraer todo

Modelo de aprendizaje automático, especificado como un objeto de modelo compacto, como se indica en esta tabla de modelos admitidos.

ModeloObjeto de modelo compacto
Regresión de máquina de vectores de soporte (SVM)CompactRegressionSVM
SVM para la clasificación de una clase y binariaCompactClassificationSVM
Modelo multiclase para SVMsCompactClassificationECOC

Para ver las notas de uso de generación de código y las limitaciones de un modelo de aprendizaje automático, consulte la sección generación de código de la página de objetos del modelo.

Parámetros que se actualizarán en el modelo de aprendizaje automático, especificados como una estructura con un campo para cada parámetro que se actualizará.

El conjunto de parámetros que puede actualizar varía en función del modelo de aprendizaje automático, como se describe en esta tabla.

ModeloLos parámetros para actualizar
Regresión de SVM
SVM para la clasificación de una clase y binaria
  • Si es un modelo de clasificación SVM de una clase, no puede incluir o.MdlparamsCostoPrior

Modelo multiclase para SVMs, ,BinaryLearnersCostoPrior

Puede crear mediante la función.paramsvalidatedUpdateInputs Esta función detecta los parámetros modificados en el modelo reentrenado, valida si los valores de parámetro modificados satisfacen los atributos del codificador de los parámetros y devuelve los parámetros que se actualizarán como una estructura.

Argumentos de salida

contraer todo

Modelo de aprendizaje automático actualizado, devuelto como un objeto de modelo compacto que es el mismo tipo de objeto que.Mdl La salida es una versión actualizada de la entrada que contiene nuevos parámetros.updatedMdlMdlparams

Sugerencias

Capacidades ampliadas

Introducido en R2018b