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.
Ajuste el modelo de regresión lineal a datos de alta cota
fitrlinear
entrena eficientemente modelos de regresión lineal con Datos predictores de alta dimensión, completos o dispersos. Los modelos de regresión lineal disponibles incluyen máquinas de vectores de soporte regularizados (SVM) y métodos de regresión de mínimos cuadrados. fitrlinear
minimiza la función objetiva utilizando técnicas que reducen el tiempo de computación (p. ej., descenso de gradiente estocástico).
Para reducir el tiempo de cálculo en un conjunto de datos de alta dimensión que incluye muchas variables predictoras, entrenar un modelo de regresión lineal mediante el uso de.fitrlinear
Para conjuntos de Datos predictores de baja y mediana dimensión, consulte.Alternativas para datos de menor dimensión
Devuelve un modelo de regresión lineal entrenado con opciones adicionales especificadas por uno o más argumentos de par.Mdl
= fitrlinear(X
,Y
,Name,Value
)Name,Value
Por ejemplo, puede especificar la implementación de regresión de mínimos cuadrados, especificar la validación cruzada o especificar el tipo de regularización. Es recomendable realizar una validación cruzada mediante el argumento Pair.Kfold
Name,Value
Los resultados de validación cruzada determinan qué tan bien se generaliza el modelo.
[
también devuelve detalles de optimización de hiperparámetros cuando se pasa un par nombre-valor.Mdl
,FitInfo
,HyperparameterOptimizationResults
]
= fitrlinear(___)OptimizeHyperparameters
Entrenar un modelo de regresión lineal mediante SVM, doble SGD y regularización de cresta.
Simular 10000 observaciones de este modelo
es un error normal aleatorio con la media 0 y la desviación estándar 0,3.e
rng(1) % For reproducibility n = 1e4; d = 1e3; nz = 0.1; X = sprandn(n,d,nz); Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);
Entrenar un modelo de regresión lineal. De forma predeterminada, utiliza máquinas de vectores de soporte con una penalización de cresta y optimiza el uso de SGD dual para SVM.fitrlinear
Determine qué tan bien el algoritmo de optimización ajusta el modelo a los datos mediante la extracción de un resumen de ajuste.
[Mdl,FitInfo] = fitrlinear(X,Y)
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double] Bias: -0.0056 Lambda: 1.0000e-04 Learner: 'svm' Properties, Methods
FitInfo = struct with fields:
Lambda: 1.0000e-04
Objective: 0.2725
PassLimit: 10
NumPasses: 10
BatchLimit: []
NumIterations: 100000
GradientNorm: NaN
GradientTolerance: 0
RelativeChangeInBeta: 0.4907
BetaTolerance: 1.0000e-04
DeltaGradient: 1.5816
DeltaGradientTolerance: 0.1000
TerminationCode: 0
TerminationStatus: {'Iteration limit exceeded.'}
Alpha: [10000x1 double]
History: []
FitTime: 0.0924
Solver: {'dual'}
es un modelo.Mdl
RegressionLinear
Puede pasar y el entrenamiento o los nuevos datos para inspeccionar el error medio cuadrado de la muestra.Mdl
loss
O puede pasar y nuevos Datos predictores para predecir respuestas para nuevas observaciones.Mdl
Predecir
es una matriz de estructura que contiene, entre otras cosas, el estado de terminación () y el tiempo que el solucionador tomó para ajustarse al modelo a los datos ().FitInfo
TerminationStatus
FitTime
Es una buena práctica utilizar para determinar si las mediciones de optimización-terminación son satisfactorias.FitInfo
En este caso, alcanzó el número máximo de iteraciones.fitrlinear
Dado que el tiempo de entrenamiento es rápido, puede volver a entrenar el modelo, pero aumentar el número de pasadas a través de los datos. O, pruebe con otro solucionador, como LBFGS.
Para determinar una buena fuerza de penalización de lazo para un modelo de regresión lineal que utiliza mínimos cuadrados, implemente la validación cruzada de 5 veces.
Simular 10000 observaciones de este modelo
es un error normal aleatorio con la media 0 y la desviación estándar 0,3.e
rng(1) % For reproducibility n = 1e4; d = 1e3; nz = 0.1; X = sprandn(n,d,nz); Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);
Cree un conjunto de 15 puntos fuertes de regularización logarmicamente espaciados de
Lambda = logspace(-5,-1,15);
Valide los modelos en cruz. Para aumentar la velocidad de ejecución, transponer los Datos predictores y especificar que las observaciones se encuentran en columnas. Optimice la función objetivo utilizando SpaRSA.
X = X'; CVMdl = fitrlinear(X,Y,'ObservationsIn','columns','KFold',5,'Lambda',Lambda,... 'Learner','leastsquares','Solver','sparsa','Regularization','lasso'); numCLModels = numel(CVMdl.Trained)
numCLModels = 5
es un modelo.CVMdl
RegressionPartitionedLinear
Porque implementa la validación cruzada 5 veces, contiene 5 modelos que el software entrena en cada pliegue.fitrlinear
CVMdl
RegressionLinear
Visualice el primer modelo de regresión lineal entrenado.
Mdl1 = CVMdl.Trained{1}
Mdl1 = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x15 double] Bias: [1x15 double] Lambda: [1x15 double] Learner: 'leastsquares' Properties, Methods
es un objeto de modelo. construido por el entrenamiento en los primeros cuatro pliegues.Mdl1
RegressionLinear
fitrlinear
Mdl1
Porque es una secuencia de fortalezas de regularización, se puede pensar en como 15 modelos, uno para cada fuerza de regularización en.Lambda
Mdl1
Lambda
Estime el MSE validado en cruz.
mse = kfoldLoss(CVMdl);
Valores más altos de plomo a la dispersión variable predictora, que es una buena calidad de un modelo de regresión.Lambda
Para cada fuerza de regularización, entrenar un modelo de regresión lineal utilizando todo el conjunto de datos y las mismas opciones que cuando se revalida los modelos. Determine el número de coeficientes distintos de cero por modelo.
Mdl = fitrlinear(X,Y,'ObservationsIn','columns','Lambda',Lambda,... 'Learner','leastsquares','Solver','sparsa','Regularization','lasso'); numNZCoeff = sum(Mdl.Beta~=0);
En la misma figura, trace el MSE validado en cruz y la frecuencia de los coeficientes distintos de cero para cada fuerza de regularización. Trace todas las variables en la escala de registro.
figure [h,hL1,hL2] = plotyy(log10(Lambda),log10(mse),... log10(Lambda),log10(numNZCoeff)); hL1.Marker = 'o'; hL2.Marker = 'o'; ylabel(h(1),'log_{10} MSE') ylabel(h(2),'log_{10} nonzero-coefficient frequency') xlabel('log_{10} Lambda') hold off
Elija el índice de la fuerza de regularización que equilibra la dispersión variable predictora y el MSE bajo (por ejemplo,).Lambda(10)
idxFinal = 10;
Extraiga el modelo con correspondiente al MSE mínimo.
MdlFinal = selectModels(Mdl,idxFinal)
MdlFinal = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double] Bias: -0.0050 Lambda: 0.0037 Learner: 'leastsquares' Properties, Methods
idxNZCoeff = find(MdlFinal.Beta~=0)
idxNZCoeff = 2×1
100
200
EstCoeff = Mdl.Beta(idxNZCoeff)
EstCoeff = 2×1
1.0051
1.9965
es un modelo con una fuerza de regularización.MdlFinal
RegressionLinear
Los coeficientes distintos de cero están cerca de los coeficientes que simulan los datos.EstCoeff
En este ejemplo se muestra cómo optimizar los hiperparámetros automáticamente mediante.fitrlinear
El ejemplo utiliza datos artificiales (simulados) para el modelo
es un error normal aleatorio con la media 0 y la desviación estándar 0,3.e
rng(1) % For reproducibility n = 1e4; d = 1e3; nz = 0.1; X = sprandn(n,d,nz); Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);
Busque hiperparámetros que minimicen la pérdida de validación cruzada de cinco veces mediante la optimización automática de hiperparámetros.
Para reproducibilidad, utilice la función de adquisición.'expected-improvement-plus'
hyperopts = struct('AcquisitionFunctionName','expected-improvement-plus'); [Mdl,FitInfo,HyperparameterOptimizationResults] = fitrlinear(X,Y,... 'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',hyperopts)
|=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | Lambda | Learner | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 1 | Best | 0.16029 | 1.3457 | 0.16029 | 0.16029 | 2.4206e-09 | svm | | 2 | Best | 0.14496 | 0.66482 | 0.14496 | 0.14601 | 0.001807 | svm | | 3 | Best | 0.13879 | 0.92612 | 0.13879 | 0.14065 | 2.4681e-09 | leastsquares | | 4 | Best | 0.115 | 0.57699 | 0.115 | 0.11501 | 0.021027 | leastsquares | | 5 | Accept | 0.44352 | 0.54971 | 0.115 | 0.1159 | 4.6795 | leastsquares | | 6 | Best | 0.11025 | 0.59978 | 0.11025 | 0.11024 | 0.010671 | leastsquares | | 7 | Accept | 0.13222 | 0.7679 | 0.11025 | 0.11024 | 8.6067e-08 | leastsquares | | 8 | Accept | 0.13262 | 0.65651 | 0.11025 | 0.11023 | 8.5109e-05 | leastsquares | | 9 | Accept | 0.13543 | 0.51929 | 0.11025 | 0.11021 | 2.7562e-06 | leastsquares | | 10 | Accept | 0.15751 | 0.7474 | 0.11025 | 0.11022 | 5.0559e-06 | svm | | 11 | Accept | 0.40673 | 0.58484 | 0.11025 | 0.1102 | 0.52074 | svm | | 12 | Accept | 0.16057 | 0.58393 | 0.11025 | 0.1102 | 0.00014292 | svm | | 13 | Accept | 0.16105 | 1.0615 | 0.11025 | 0.11018 | 1.0079e-07 | svm | | 14 | Accept | 0.12763 | 0.57142 | 0.11025 | 0.11019 | 0.0012085 | leastsquares | | 15 | Accept | 0.13504 | 0.62582 | 0.11025 | 0.11019 | 1.3981e-08 | leastsquares | | 16 | Accept | 0.11041 | 0.63469 | 0.11025 | 0.11026 | 0.0093968 | leastsquares | | 17 | Best | 0.10954 | 0.52427 | 0.10954 | 0.11003 | 0.010393 | leastsquares | | 18 | Accept | 0.10998 | 0.54976 | 0.10954 | 0.11002 | 0.010254 | leastsquares | | 19 | Accept | 0.45314 | 0.59717 | 0.10954 | 0.11001 | 9.9932 | svm | | 20 | Best | 0.10753 | 1.0083 | 0.10753 | 0.10759 | 0.022576 | svm | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | Lambda | Learner | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Best | 0.10737 | 1.0968 | 0.10737 | 0.10728 | 0.010171 | svm | | 22 | Accept | 0.13448 | 0.83027 | 0.10737 | 0.10727 | 1.5344e-05 | leastsquares | | 23 | Best | 0.10645 | 0.781 | 0.10645 | 0.10565 | 0.015495 | svm | | 24 | Accept | 0.13598 | 0.77541 | 0.10645 | 0.10559 | 4.5984e-07 | leastsquares | | 25 | Accept | 0.15962 | 0.9332 | 0.10645 | 0.10556 | 1.4302e-08 | svm | | 26 | Accept | 0.10689 | 0.68007 | 0.10645 | 0.10616 | 0.015391 | svm | | 27 | Accept | 0.13748 | 0.8129 | 0.10645 | 0.10614 | 1.001e-09 | leastsquares | | 28 | Accept | 0.10692 | 0.78686 | 0.10645 | 0.10639 | 0.015761 | svm | | 29 | Accept | 0.10681 | 0.73864 | 0.10645 | 0.10649 | 0.015777 | svm | | 30 | Accept | 0.34314 | 0.50563 | 0.10645 | 0.10651 | 0.39671 | leastsquares | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 86.2813 seconds. Total objective function evaluation time: 22.0367 Best observed feasible point: Lambda Learner ________ _______ 0.015495 svm Observed objective function value = 0.10645 Estimated objective function value = 0.10651 Function evaluation time = 0.781 Best estimated feasible point (according to models): Lambda Learner ________ _______ 0.015777 svm Estimated objective function value = 0.10651 Estimated function evaluation time = 0.78215
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double] Bias: -0.0018 Lambda: 0.0158 Learner: 'svm' Properties, Methods
FitInfo = struct with fields:
Lambda: 0.0158
Objective: 0.2309
PassLimit: 10
NumPasses: 10
BatchLimit: []
NumIterations: 99989
GradientNorm: NaN
GradientTolerance: 0
RelativeChangeInBeta: 0.0641
BetaTolerance: 1.0000e-04
DeltaGradient: 1.1697
DeltaGradientTolerance: 0.1000
TerminationCode: 0
TerminationStatus: {'Iteration limit exceeded.'}
Alpha: [10000x1 double]
History: []
FitTime: 0.0843
Solver: {'dual'}
HyperparameterOptimizationResults = BayesianOptimization with properties: ObjectiveFcn: @createObjFcn/inMemoryObjFcn VariableDescriptions: [3x1 optimizableVariable] Options: [1x1 struct] MinObjective: 0.1065 XAtMinObjective: [1x2 table] MinEstimatedObjective: 0.1065 XAtMinEstimatedObjective: [1x2 table] NumObjectiveEvaluations: 30 TotalElapsedTime: 86.2813 NextPoint: [1x2 table] XTrace: [30x2 table] ObjectiveTrace: [30x1 double] ConstraintsTrace: [] UserDataTrace: {30x1 cell} ObjectiveEvaluationTimeTrace: [30x1 double] IterationTimeTrace: [30x1 double] ErrorTrace: [30x1 double] FeasibilityTrace: [30x1 logical] FeasibilityProbabilityTrace: [30x1 double] IndexOfMinimumTrace: [30x1 double] ObjectiveMinimumTrace: [30x1 double] EstimatedObjectiveMinimumTrace: [30x1 double]
Esta técnica de optimización es más simple que la mostrada en, pero no le permite negociar la complejidad del modelo y la pérdida de validación cruzada.Encontrar multa lazo bueno usando validación cruzada
X
— Los Datos predictoresDatos de predictor, especificados como una matriz dispersa o por completo.np
La longitud y el número de observaciones deben ser iguales.Y
X
Si orienta la matriz predictora para que las observaciones se correspondan con las columnas y las especifique, puede experimentar una reducción significativa en el tiempo de ejecución de la optimización.'ObservationsIn','columns'
Tipos de datos: single
| double
Y
— Los datos de respuestaDatos de respuesta, especificados como vector numérico dimensional.n La longitud y el número de observaciones deben ser iguales.Y
X
Tipos de datos: single
| double
fitrlinear
elimina las observaciones faltantes, es decir, las observaciones con cualquiera de estas características:
elementos de la respuesta (o)NaN
Y
ValidationData
{2}
Al menos un valor en una observación predictora (fila en o)NaN
X
ValidationData{1}
valor o peso (o)NaN
0
Weights
ValidationData{3}
Para la economía de uso de memoria, es recomendable eliminar manualmente las observaciones que contengan valores faltantes de los datos de entrenamiento antes del entrenamiento.
Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,Value
Name
Value
Name
Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN
Mdl = fitrlinear(X,Y,'Learner','leastsquares','CrossVal','on','Regularization','lasso')
No puede usar ningún argumento de par nombre-valor de validación cruzada junto con el argumento de par nombre-valor.'OptimizeHyperparameters'
Solo puede modificar la validación cruzada mediante el argumento de par nombre-valor.'OptimizeHyperparameters'
'HyperparameterOptimizationOptions'
'Epsilon'
— La mitad del ancho de la banda de Epsilon insensibleiqr(Y)/13.49
(predeterminado) | valor escalar no negativoLa mitad del ancho de la banda sin distinción de épsilon, especificada como el par separado por comas que consta de un valor escalar no negativo. solo se aplica a los alumnos de SVM.'Epsilon'
'Epsilon'
El valor predeterminado es, que es una estimación de la desviación estándar utilizando el rango intercuartil de la variable de respuesta.Epsilon
iqr(Y)/13.49
Y
Si es igual a cero, el valor predeterminado es 0,1.iqr(Y)
Epsilon
Ejemplo: 'Epsilon',0.3
Tipos de datos: single
| double
'Lambda'
— La fuerza del término de regularización'auto'
(predeterminado) | escalar no negativo | Vector de valores no negativosLa fuerza del término de regularización, especificada como el par separado por comas que consiste en y, un escalar no negativo, o un vector de valores no negativos.'Lambda'
'auto'
Para, = 1/.'auto'
Lambda
n
Si especifica una validación cruzada, el argumento de par nombre-valor (p. ej.,), es el número de observaciones en pliegue.CrossVal
n
De lo contrario, es el tamaño de muestra de entrenamiento.n
Para un vector de valores no negativos, el software optimiza secuencialmente la función objetiva para cada valor diferenciado en orden ascendente.Lambda
Si es o y es, entonces el software no utiliza las estimaciones de coeficiente anteriores como un para la siguiente iteración de optimización.Solver
'sgd'
'asgd'
Regularización
'lasso'
comienzo cálido De lo contrario, el software utiliza inicios cálidos.
Si es así, cualquier estimación de coeficiente de 0 conserva su valor cuando el software optimiza el uso de los valores subsiguientes en.Regularización
'lasso'
Lambda
Devuelve estimaciones de coeficiente para todas las iteraciones de optimización.
Ejemplo: 'Lambda',10.^(-(10:-2:2))
Tipos de datos: char
| string
| double
| single
'Learner'
— Tipo de modelo de regresión lineal'svm'
(predeterminado) | 'leastsquares'
Tipo de modelo de regresión lineal, especificado como el par separado por comas que consta de y o.'Learner'
'svm'
'leastsquares'
En esta tabla,
es un vector de coeficientes.βp
es una observación de variables predictoras.xp
es el sesgo escalar.b
Valor | Algoritmo | Rango de respuesta | Función de pérdida |
---|---|---|---|
'leastsquares' | Regresión lineal a través de mínimos cuadrados ordinarios | ∊ (-∞, ∞)y | Error cuadrado medio (MSE): |
'svm' | Apoye la regresión de la máquina vectorial | Igual que'leastsquares' | Insensible a la Epsilon: |
Ejemplo: 'Learner','leastsquares'
'ObservationsIn'
— La dimensión de observación de Datos predictores'rows'
(predeterminado) | 'columns'
Dimensión de observación de Datos predictores, especificada como el par separado por comas que consta de y o.'ObservationsIn'
'columns'
'rows'
Si orienta la matriz predictora para que las observaciones se correspondan con las columnas y las especifique, puede experimentar una reducción significativa en el tiempo de ejecución de la optimización.'ObservationsIn','columns'
'Regularization'
— Tipo de penalización de complejidad'lasso'
| 'ridge'
Tipo de penalización de complejidad, especificado como el par separado por comas que consta de y o.'Regularization'
'lasso'
'ridge'
El software compone la función objetiva para la minimización de la suma de la función de pérdida promedio (ver) y el término de regularización en esta tabla.Learner
Valor | Descripción |
---|---|
'lasso' | Penalización de lazo (L1): |
'ridge' | Pena de cresta (L2): |
Para especificar la intensidad del término de regularización, que se encuentra en las expresiones, utilice.λLambda
El software excluye el término de sesgo (β0) de la sanción por regularización.
Si es, entonces el valor predeterminado es.Solver
'sparsa'
Regularización
'lasso'
De lo contrario, el valor predeterminado es.'ridge'
Para la selección de variables predictoras, especifique.'lasso'
Para la precisión de la optimización, especifique.'ridge'
Ejemplo: 'Regularization','lasso'
'Solver'
— Técnica de minimización de función objetiva'sgd'
| 'asgd'
| 'dual'
| 'bfgs'
| 'lbfgs'
| 'sparsa'
| matriz de cadena | matriz de vectores de caracteresTécnica de minimización de función objetiva, especificada como el par separado por comas que consta de un vector de caracteres o un escalar de cadena, una matriz de cadenas o una matriz de vectores de caracteres con valores de esta tabla.'Solver'
Valor | Descripción | Restricciones |
---|---|---|
'sgd' | Descenso del gradiente estocástico (SGD)[5][3] | |
'asgd' | Descenso de gradiente estocástico promedio (ASGD)[8] | |
'dual' | SGD dual para SVM[2][7] | debe ser y debe ser.Regularización 'ridge' Learner 'svm' |
'bfgs' | Algoritmo de Broyden-Fletcher-Goldfarb-Shanno quasi-Newton (BFGS)[4] | Ineficiente si es muy alta dimensional.X |
'lbfgs' | BFGS de memoria limitada (LBFGS)[4] | debe ser.Regularización 'ridge' |
'sparsa' | Reconstrucción dispersa por aproximación separable (SpaRSA)[6] | debe ser.Regularización 'lasso' |
Si especifica:
Una penalización de cresta (ver) y (100 o menos variables predictoras), entonces el solucionador predeterminado es.Regularización
size(X,1) <= 100
'bfgs'
Un modelo de regresión de SVM (ver), una penalización de cresta y (más de 100 variables predictoras), entonces el solucionador predeterminado es.Learner
size(X,1) > 100
'dual'
Una penalización de lazo y contiene 100 o menos variables predictoras, entonces el solucionador predeterminado es.X
'sparsa'
De lo contrario, el solucionador predeterminado es.'sgd'
Si especifica una matriz de cadenas o una matriz de celdas de nombres de solucionador, el software utiliza todos los solucionadores en el orden especificado para cada uno.Lambda
Para obtener más información sobre qué solucionador elegir, consulte.Consejos
Ejemplo: 'Solver',{'sgd','lbfgs'}
'Beta'
— Los cálculos del coeficiente lineal inicialzeros(p
,1)
(predeterminado) | Vector numérico | matriz numéricaEstimación de coeficiente lineal inicial (), especificada como el par separado por comas que consiste en un vector numérico o una matriz numérica. es el número de variables predictoras en y es el número de valores de fuerza de regularización (para más detalles, ver).β'Beta'
ppLpX
LLambda
Si especifica un vector dimensional, el software optimiza los tiempos de función objetivo utilizando este proceso.pL
El software optimiza el uso como el valor inicial y el valor mínimo de como la fuerza de regularización.Beta
Lambda
El software optimiza de nuevo utilizando la estimación resultante de la optimización anterior como un, y el siguiente valor más pequeño en como la fuerza de regularización.comienzo cálidoLambda
El software implementa el paso 2 hasta que agota todos los valores.Lambda
Si especifica a-by-Matrix, el software optimiza los tiempos de función objetivo.pLL En la iteración j
, el software utiliza Beta(:,
como el valor inicial y, después de ordenarlo en orden ascendente, utilizaj
)Lambda
Lambda(
como la fuerza de regularización.j
)
Si usted fija, después el software ignora.'Solver','dual'
Beta
Tipos de datos: single
| double
'Bias'
— Estimación de intercepción inicialLa estimación de intercepción inicial (), especificada como el par separado por comas que consta de un vector numérico o una cota numérica o una dimensión. es el número de valores de fuerza de regularización (para obtener más información, consulte).b'Bias'
LLLambda
Si especifica un escalar, el software optimiza los tiempos de función objetivo utilizando este proceso.L
El software optimiza el uso como el valor inicial y el valor mínimo de como la fuerza de regularización.Bias
Lambda
El utiliza la estimación resultante como la siguiente iteración de optimización y utiliza el siguiente valor más pequeño como la fuerza de regularización.comienzo cálidoLambda
El software implementa el paso 2 hasta que agota todos los valores.Lambda
Si especifica un vector dimensional, el software optimiza los tiempos de función objetivo.LL En la iteración
j
, el software utiliza
Bias(
como el valor inicial y, después de ordenarlo en orden ascendente, utilizaj
)Lambda
Lambda(
como la fuerza de regularización.j
)
Por defecto:
Tipos de datos: single
| double
'FitBias'
— Indicador de inclusión de intersección modelo linealtrue
(predeterminado) | false
Indicador de inclusión de intersección de modelo lineal, especificado como el par separado por comas que consta de y o.'FitBias'
true
false
Valor | Descripción |
---|---|
true | El software incluye el término de sesgo en el modelo lineal y, a continuación, lo estima.b |
false | El software establece = 0 durante la estimación.b |
Ejemplo: 'FitBias',false
Tipos de datos: logical
'PostFitBias'
— Indicador para ajustar la intercepción del modelo lineal después de la optimizaciónfalse
(predeterminado) | true
Marcar para ajustar la intercepción del modelo lineal después de la optimización, especificada como el par separado por comas que consta de y o.'PostFitBias'
true
false
Valor | Descripción |
---|---|
false | El software estima el término de sesgo y los coeficientes durante la optimización.bβ |
true |
Para estimar, el software:b
|
Si especifica, debe ser true.true
FitBias
Ejemplo: 'PostFitBias',true
Tipos de datos: logical
'Verbose'
— Nivel de verbosidad0
(predeterminado) | entero no negativoNivel de verbosidad, especificado como el par separado por comas que consta de un entero no negativo. controla la cantidad de información de diagnóstico'Verbose'
Verbose
fitrlinear
aparece en la línea de comandos.
Valor | Descripción |
---|---|
0 | fitrlinear no muestra información de diagnóstico. |
1 | fitrlinear muestra y almacena periódicamente el valor de la función objetiva, la magnitud del degradado y otra información de diagnóstico. contiene la información de diagnóstico.FitInfo.History |
Cualquier otro entero positivo | fitrlinear muestra y almacena información de diagnóstico en cada iteración de optimización. contiene la información de diagnóstico.FitInfo.History |
Ejemplo: 'Verbose',1
Tipos de datos: double
| single
'BatchSize'
— Mini-tamaño de loteTamaño de mini lote, especificado como el par separado por comas que consta de un entero positivo.'BatchSize'
En cada iteración, el software estima el subdegradado utilizando observaciones de los datos de entrenamiento.BatchSize
Si es una matriz numérica, el valor predeterminado es.X
10
Si es una matriz dispersa, el valor predeterminado es, donde (el de).X
max([10,ceil(sqrt(ff))])
ff = numel(X)/nnz(X)
factor de plenitudX
Ejemplo: 'BatchSize',100
Tipos de datos: single
| double
'LearnRate'
— Tasa de aprendizajeVelocidad de aprendizaje, especificada como el par separado por comas que consta de un escalar positivo. especifica cuántos pasos se han de realizar por iteración.'LearnRate'
LearnRate
En cada iteración, el degradado especifica la dirección y la magnitud de cada paso.
Si es así, especifica la tasa de aprendizaje inicialRegularización
'ridge'
LearnRate
γ0. El software determina la velocidad de aprendizaje para la iteración,t
ΓtUsando
Si es, entonces, para todas las iteraciones, es constante.Regularización
'lasso'
LearnRate
De forma predeterminada, es, donde es si las observaciones componen las columnas de, y de lo contrario.LearnRate
1/sqrt(1+max((sum(X.^2,obsDim))))
obsDim
1
X
2
Ejemplo: 'LearnRate',0.01
Tipos de datos: single
| double
'OptimizeLearnRate'
— Marcar para disminuir la tasa de aprendizajetrue
(predeterminado) | false
Marcar para disminuir la velocidad de aprendizaje cuando el software detecta la divergencia (es decir, sobrepisar el mínimo), especificado como el par separado por comas que consiste en y o.'OptimizeLearnRate'
true
false
Si es, entonces:OptimizeLearnRate
'true'
Para las pocas iteraciones de optimización, el software comienza la optimización utilizando como la tasa de aprendizaje.LearnRate
Si el valor de la función objetiva aumenta, el software se reinicia y utiliza la mitad del valor actual de la tasa de aprendizaje.
El software recorre en iteración el paso 2 hasta que la función objetiva disminuye.
Ejemplo: 'OptimizeLearnRate',true
Tipos de datos: logical
'TruncationPeriod'
— El número de mini-lotes entre el truncamiento de lazo se ejecuta10
(predeterminado) | entero positivoNúmero de minilotes entre ejecuciones de truncamiento de lazo, especificadas como el par separado por comas que consta de un entero positivo.'TruncationPeriod'
Después de una ejecución de truncamiento, el software aplica un umbral suave a los coeficientes lineales. Es decir, después de procesar = mini-lotes, el software trunca el coeficiente estimado usandokTruncationPeriod
j
Para SGD, es la estimación de coeficiente después de procesar mini-lotes.jk Γt es la velocidad de aprendizaje en la iteración. es el valor de.tλLambda
Para ASGD, es el coeficiente de estimación promediado después de procesar mini-lotes,jk
Si es, después el software ignora.Regularización
'ridge'
TruncationPeriod
Ejemplo: 'TruncationPeriod',100
Tipos de datos: single
| double
'Weights'
— Los pesos de observaciónones(n,1)/n
(predeterminado) | Vector numérico de valores positivosPonderaciones de observación, especificadas como el par separado por comas que consta de un vector numérico de valores positivos.'Weights'
fitrlinear
pesa las observaciones con el valor correspondiente en.X
Weights
El tamaño de debe ser igual, el número de observaciones en.Weights
nX
fitrlinear
Normaliza para sumar a 1.Weights
Tipos de datos: double
| single
'ResponseName'
— Nombre de variable de respuesta'Y'
(predeterminado) | Vector de caracteres | escalar de cadenaNombre de variable de respuesta, especificado como el par separado por comas que consta de un vector de caracteres o un escalar de cadena.'ResponseName'
Si proporciona, puede usar para especificar un nombre para la variable de respuesta.Y
'ResponseName'
Si usted suministra o, entonces usted no puede utilizar.ResponseVarName
Fórmula
'ResponseName'
Ejemplo: 'ResponseName','response'
Tipos de datos: char
| string
'ResponseTransform'
— La transformación de respuesta'none'
(predeterminado) | identificador de funciónTransformación de respuesta, especificada como el par separado por comas que consta de y uno o un identificador de función.'ResponseTransform'
'none'
El valor predeterminado es, que significa, o ninguna transformación.'none'
@(y)y
Para una función o una función que defina, utilice su manejador de funciones.MATLAB® El identificador de función debe aceptar un vector (los valores de respuesta originales) y devolver un vector del mismo tamaño (los valores de respuesta transformados).
Ejemplo: Supongamos que crea un identificador de función que aplica una transformación exponencial a un vector de entrada mediante el uso de.myfunction = @(y)exp(y)
A continuación, puede especificar la transformación de respuesta como.'ResponseTransform',myfunction
Tipos de datos: char
| string
| function_handle
'CrossVal'
— La marca de validación cruzada'off'
(predeterminado) | 'on'
Indicador de validación cruzada, especificado como el par separado por comas que consta de y o.'Crossval'
'on'
'off'
Si se especifica, el software implementa la validación cruzada de 10 veces.'on'
Para invalidar esta configuración de validación cruzada, use uno de estos argumentos de par nombre-valor:, o.CVPartition
Holdout
KFold
Para crear un modelo validado de forma cruzada, puede usar un argumento de par nombre-valor de validación cruzada a la vez.
Ejemplo: 'Crossval','on'
'CVPartition'
— La partición de validación cruzada[]
(predeterminado) | objeto de particióncvpartition
Partición de validación cruzada, especificada como el par separado por comas que consta de un objeto de partición creado por.'CVPartition'
cvpartition
cvpartition
El objeto de partición especifica el tipo de validación cruzada y también la indización para conjuntos de entrenamiento y validación.
Para crear un modelo con validación cruzada, puede utilizar una de estas cuatro opciones solamente:, o.'
CVPartition
'
'
Holdout
'
'
KFold
'
'Holdout'
— Fracción de datos para la validación de exclusiónFracción de datos utilizada para la validación de exclusión, especificada como el par separado por comas que consta de y un valor escalar en el intervalo (0,1).'Holdout'
Si especifica 'Holdout',
, a continuación, el software: p
Reservas al azar
% de los datos como datos de validación y entrena el modelo utilizando el resto de los datosp
*100
Almacena el modelo compacto y entrenado en la propiedad del modelo con validación cruzada.Trained
Para crear un modelo con validación cruzada, puede utilizar una de estas cuatro opciones solamente:, o.'
CVPartition
'
'
Holdout
'
'
KFold
'
Ejemplo: 'Holdout',0.1
Tipos de datos: double
| single
'KFold'
— Número de pliegues10
(predeterminado) | valor entero positivo mayor que 1Número de pliegues que se utilizarán en un clasificador con validación cruzada, especificado como el par separado por comas y que consta de un valor entero positivo mayor que 1.'KFold'
Si especifica, p. ej., 'KFold',k
, a continuación, el software:
Divide aleatoriamente los datos en conjuntosk
Para cada conjunto, reserva el conjunto como datos de validación y entrena el modelo utilizando el otro k – 1 Establece
Almacena el k
modelos compactos y entrenados en las celdas de un k
-por-1 vector de celda en la propiedad del modelo validado por la Cruz.Trained
Para crear un modelo con validación cruzada, puede utilizar una de estas cuatro opciones solamente:, o.'
CVPartition
'
'
Holdout
'
'
KFold
'
Ejemplo: 'KFold',8
Tipos de datos: single
| double
'BatchLimit'
— Número máximo de lotesNúmero máximo de lotes a procesar, especificado como el par separado por comas que consta de un entero positivo.'BatchLimit'
Cuando el software procesa lotes, finaliza la optimización.BatchLimit
Por defecto:
El software pasa a través de los tiempos de datos.PassLimit
Si especifica varios solucionadores y utiliza (a) SGD para obtener una aproximación inicial para el siguiente solucionador, entonces el valor predeterminado es. es el valor del argumento de par nombre-valor.ceil(1e6/BatchSize)
BatchSize
'
BatchSize
'
Si especifica y, a continuación, el software elige el argumento que resulta en el procesamiento de la menor cantidad de observaciones.'BatchLimit'
'
PassLimit
'
Si especifica pero no, el software procesa suficientes lotes para completar hasta un paso completo a través de los datos.'BatchLimit'
'PassLimit'
Ejemplo: 'BatchLimit',100
Tipos de datos: single
| double
'BetaTolerance'
— Tolerancia relativa sobre los coeficientes lineales y el término de sesgo1e-4
(predeterminado) | escalar no negativoTolerancia relativa en los coeficientes lineales y el término de sesgo (intercepción), especificado como el par separado por comas que consta de un escalar no negativo.'BetaTolerance'
Dejar , es decir, el vector de los coeficientes y el término de sesgo en la iteración de optimización.t Si , la optimización finaliza.
Si el software converge para el último solucionador especificado en, a continuación, finaliza la optimización.Solver
De lo contrario, el software utiliza el siguiente solucionador especificado en.Solver
Ejemplo: 'BetaTolerance',1e-6
Tipos de datos: single
| double
'NumCheckConvergence'
— Número de lotes que se procesan antes de la siguiente comprobación de convergenciaNúmero de lotes que se procesan antes de la siguiente comprobación de convergencia, especificado como el par separado por comas y que consta de un entero positivo.'NumCheckConvergence'
Para especificar el tamaño del lote, consulte.BatchSize
El software comprueba la convergencia de aproximadamente 10 veces por paso a través de todo el conjunto de datos de forma predeterminada.
Ejemplo: 'NumCheckConvergence',100
Tipos de datos: single
| double
'PassLimit'
— Número máximo de pasadas1
(predeterminado) | entero positivoNúmero máximo de pasadas a través de los datos, especificadas como el par separado por comas que consta de un entero positivo.'PassLimit'
fitrlinear
procesa todas las observaciones cuando completa una pasada a través de los datos.
Cuando fitrlinear
pasa a través de los tiempos de datos, finaliza la optimización.PassLimit
Si especifica y, a continuación,'
BatchLimit
'
PassLimit
fitrlinear
elige el argumento que resulta en el procesamiento de la menor cantidad de observaciones. Para obtener más información, consulte.Algoritmos
Ejemplo: 'PassLimit',5
Tipos de datos: single
| double
'ValidationData'
— Datos de validación para la detección de convergencia de optimizaciónDatos para la detección de convergencia de optimización, especificados como el par separado por comas que consta de una matriz de celdas.'ValidationData'
Durante la optimización, el software estima periódicamente la pérdida de.ValidationData
Si aumenta la pérdida de datos de validación, el software finaliza la optimización. Para obtener más información, consulte.Algoritmos Para optimizar los hiperparámetros mediante la validación cruzada, consulte Opciones de validación cruzada, como.CrossVal
debe contener una matriz de Datos predictores, por o por completo o disperso, que tenga la misma orientación que.ValidationData(1)
mppmX
Las variables predictoras en los datos de entrenamiento y deben corresponder.X
ValidationData{1}
El número de observaciones en ambos sets puede variar.
debe contener una matriz de respuestas con la longitud correspondiente al número de observaciones en.ValidationData(2)
mValidationData{1}
Opcionalmente, puede contener un vector numérico dimensional de ponderaciones de observación.ValidationData(3)
m El software normaliza los pesos con los datos de validación para que sumará a 1.
Si especifica, a continuación, para mostrar la pérdida de validación en la línea de comandos, especifique un valor mayor que 0 para.ValidationData
Verbose
Si el software converge para el último solucionador especificado en, a continuación, finaliza la optimización.Solver
De lo contrario, el software utiliza el siguiente solucionador especificado en.Solver
De forma predeterminada, el software no detecta la convergencia supervisando la pérdida de datos de validación.
'GradientTolerance'
— Tolerancia de degradado absoluta1e-6
(predeterminado) | escalar no negativoTolerancia de degradado absoluta, especificada como el par separado por comas que consta de un escalar no negativo. se aplica a estos valores de:,, y.'GradientTolerance'
GradientTolerance
Solver
'bfgs'
'lbfgs'
'sparsa'
Dejar ser el vector de degradado de la función objetiva con respecto a los coeficientes y el término de sesgo en la iteración de optimización.t Si , la optimización finaliza.
Si también especifica, la optimización finaliza cuandoBetaTolerance
fitrlinear
satisface cualquier criterio de detención.
Si fitrlinear
converge para el último solucionador especificado en, a continuación, finaliza la optimización.Solver
Lo contrario fitrlinear
utiliza el siguiente solucionador especificado en.Solver
Ejemplo: 'GradientTolerance',eps
Tipos de datos: single
| double
'IterationLimit'
— Número máximo de iteraciones de optimización1000
(predeterminado) | entero positivoNúmero máximo de iteraciones de optimización, especificadas como el par separado por comas que consta de un entero positivo. se aplica a estos valores de:,, y.'IterationLimit'
IterationLimit
Solver
'bfgs'
'lbfgs'
'sparsa'
Ejemplo: 'IterationLimit',1e7
Tipos de datos: single
| double
'BetaTolerance'
— Tolerancia relativa sobre los coeficientes lineales y el término de sesgo1e-4
(predeterminado) | escalar no negativoTolerancia relativa en los coeficientes lineales y el término de sesgo (intercepción), especificado como el par separado por comas que consta de un escalar no negativo.'BetaTolerance'
Dejar , es decir, el vector de los coeficientes y el término de sesgo en la iteración de optimización.t Si , la optimización finaliza.
Si también especifica, la optimización finaliza cuando el software satisface cualquier criterio de detención.DeltaGradientTolerance
Si el software converge para el último solucionador especificado en, a continuación, finaliza la optimización.Solver
De lo contrario, el software utiliza el siguiente solucionador especificado en.Solver
Ejemplo: 'BetaTolerance',1e-6
Tipos de datos: single
| double
'DeltaGradientTolerance'
— Tolerancia de diferencia de degradado0.1
(predeterminado) | escalar no negativoTolerancia de diferencia de degradado entre los violadores de grupo superior e inferior, especificados como el par separado por comas que consta de un escalar no negativo. se aplica al valor de Only.Las condiciones de complementariedad de Karush-Kuhn-Tucker (KKT)'DeltaGradientTolerance'
DeltaGradientTolerance
'dual'
Solver
Si la magnitud de los violadores KKT es menor que, entoncesDeltaGradientTolerance
fitrlinear
finaliza la optimización.
Si fitrlinear
converge para el último solucionador especificado en, a continuación, finaliza la optimización.Solver
Lo contrario
fitrlinear
utiliza el siguiente solucionador especificado en.Solver
Ejemplo: 'DeltaGapTolerance',1e-2
Tipos de datos: double
| single
'NumCheckConvergence'
— Número de pasadas a través del conjunto de datos completo para procesar antes de la siguiente comprobación de convergencia5
(predeterminado) | entero positivoNúmero de pasadas a través del conjunto de datos completo para procesar antes de la siguiente comprobación de convergencia, especificada como el par separado por comas que consta de un entero positivo y otro.'NumCheckConvergence'
Ejemplo: 'NumCheckConvergence',100
Tipos de datos: single
| double
'PassLimit'
— Número máximo de pasadas10
(predeterminado) | entero positivoNúmero máximo de pasadas a través de los datos, especificadas como el par separado por comas que consta de un entero positivo.'PassLimit'
Cuando el software completa una pasada a través de los datos, ha procesado todas las observaciones.
Cuando el software pasa a través de los tiempos de datos, finaliza la optimización.PassLimit
Ejemplo: 'PassLimit',5
Tipos de datos: single
| double
'ValidationData'
— Datos de validación para la detección de convergencia de optimizaciónDatos para la detección de convergencia de optimización, especificados como el par separado por comas que consta de una matriz de celdas.'ValidationData'
Durante la optimización, el software estima periódicamente la pérdida de.ValidationData
Si aumenta la pérdida de datos de validación, el software finaliza la optimización. Para obtener más información, consulte.Algoritmos Para optimizar los hiperparámetros mediante la validación cruzada, consulte Opciones de validación cruzada, como.CrossVal
debe contener una matriz de Datos predictores, por o por completo o disperso, que tenga la misma orientación que.ValidationData(1)
mppmX
Las variables predictoras en los datos de entrenamiento y deben corresponder.X
ValidationData{1}
El número de observaciones en ambos sets puede variar.
debe contener una matriz de respuestas con la longitud correspondiente al número de observaciones en.ValidationData(2)
mValidationData{1}
Opcionalmente, puede contener un vector numérico dimensional de ponderaciones de observación.ValidationData(3)
m El software normaliza los pesos con los datos de validación para que sumará a 1.
Si especifica, a continuación, para mostrar la pérdida de validación en la línea de comandos, especifique un valor mayor que 0 para.ValidationData
Verbose
Si el software converge para el último solucionador especificado en, a continuación, finaliza la optimización.Solver
De lo contrario, el software utiliza el siguiente solucionador especificado en.Solver
De forma predeterminada, el software no detecta la convergencia supervisando la pérdida de datos de validación.
'BetaTolerance'
— Tolerancia relativa sobre los coeficientes lineales y el término de sesgo1e-4
(predeterminado) | escalar no negativoTolerancia relativa en los coeficientes lineales y el término de sesgo (intercepción), especificado como el par separado por comas que consta de un escalar no negativo.'BetaTolerance'
Dejar , es decir, el vector de los coeficientes y el término de sesgo en la iteración de optimización.t Si , la optimización finaliza.
Si también especifica, la optimización finaliza cuando el software satisface cualquier criterio de detención.GradientTolerance
Si el software converge para el último solucionador especificado en, a continuación, finaliza la optimización.Solver
De lo contrario, el software utiliza el siguiente solucionador especificado en.Solver
Ejemplo: 'BetaTolerance',1e-6
Tipos de datos: single
| double
'GradientTolerance'
— Tolerancia de degradado absoluta1e-6
(predeterminado) | escalar no negativoTolerancia de degradado absoluta, especificada como el par separado por comas que consta de un escalar no negativo.'GradientTolerance'
Dejar ser el vector de degradado de la función objetiva con respecto a los coeficientes y el término de sesgo en la iteración de optimización.t Si , la optimización finaliza.
Si también especifica, la optimización finaliza cuando el software satisface cualquier criterio de detención.BetaTolerance
Si el software converge para el último solucionador especificado en el software, la optimización finaliza. De lo contrario, el software utiliza el siguiente solucionador especificado en.Solver
Ejemplo: 'GradientTolerance',1e-5
Tipos de datos: single
| double
'HessianHistorySize'
— Tamaño del búfer histórico para la aproximación hessiana15
(predeterminado) | entero positivoTamaño del búfer de historial para la aproximación de hessian, especificado como el par separado por comas que consta de un entero positivo.'HessianHistorySize'
Es decir, en cada iteración, el software compone el hessian utilizando estadísticas de las últimas iteraciones.HessianHistorySize
El software no es compatible con SpaRSA.'HessianHistorySize'
Ejemplo: 'HessianHistorySize',10
Tipos de datos: single
| double
'IterationLimit'
— Número máximo de iteraciones de optimización1000
(predeterminado) | entero positivoNúmero máximo de iteraciones de optimización, especificadas como el par separado por comas que consta de un entero positivo. se aplica a estos valores de:,, y.'IterationLimit'
IterationLimit
Solver
'bfgs'
'lbfgs'
'sparsa'
Ejemplo: 'IterationLimit',500
Tipos de datos: single
| double
'ValidationData'
— Datos de validación para la detección de convergencia de optimizaciónDatos para la detección de convergencia de optimización, especificados como el par separado por comas que consta de una matriz de celdas.'ValidationData'
Durante la optimización, el software estima periódicamente la pérdida de.ValidationData
Si aumenta la pérdida de datos de validación, el software finaliza la optimización. Para obtener más información, consulte.Algoritmos Para optimizar los hiperparámetros mediante la validación cruzada, consulte Opciones de validación cruzada, como.CrossVal
debe contener una matriz de Datos predictores, por o por completo o disperso, que tenga la misma orientación que.ValidationData(1)
mppmX
Las variables predictoras en los datos de entrenamiento y deben corresponder.X
ValidationData{1}
El número de observaciones en ambos sets puede variar.
debe contener una matriz de respuestas con la longitud correspondiente al número de observaciones en.ValidationData(2)
mValidationData{1}
Opcionalmente, puede contener un vector numérico dimensional de ponderaciones de observación.ValidationData(3)
m El software normaliza los pesos con los datos de validación para que sumará a 1.
Si especifica, a continuación, para mostrar la pérdida de validación en la línea de comandos, especifique un valor mayor que 0 para.ValidationData
Verbose
Si el software converge para el último solucionador especificado en, a continuación, finaliza la optimización.Solver
De lo contrario, el software utiliza el siguiente solucionador especificado en.Solver
De forma predeterminada, el software no detecta la convergencia supervisando la pérdida de datos de validación.
'OptimizeHyperparameters'
— Parámetros para optimizar'none'
(predeterminado) | 'auto'
| 'all'
| matriz de cadenas o matriz de celdas de nombres de parámetro elegibles | Vector de objetosoptimizableVariable
Parámetros para optimizar, especificados como el par separado por comas que consta de uno de los siguientes:'OptimizeHyperparameters'
— No optimice.'none'
Uso.'auto'
{'Lambda','Learner'}
: Optimice todos los parámetros elegibles.'all'
Matriz de cadenas o matriz de celdas de nombres de parámetro elegibles.
Vector de objetos, normalmente la salida de.optimizableVariable
hiperparámetros
La optimización intenta minimizar la pérdida de validación cruzada (error) para variando los parámetros.fitrlinear
Para controlar el tipo de validación cruzada y otros aspectos de la optimización, utilice el par nombre-valor.HyperparameterOptimizationOptions
valores reemplazan los valores que se establecen con otros argumentos de par nombre-valor.'OptimizeHyperparameters'
Por ejemplo, si se establece en hace que los valores se apliquen.'OptimizeHyperparameters'
'auto'
'auto'
Los parámetros elegibles para son:fitrlinear
Establezca parámetros no predeterminados pasando un vector de objetos que tienen valores no predeterminados.optimizableVariable
Por ejemplo,
load carsmall params = hyperparameters('fitrlinear',[Horsepower,Weight],MPG); params(1).Range = [1e-3,2e4];
Pase como el valor de.params
OptimizeHyperparameters
De forma predeterminada, la visualización iterativa aparece en la línea de comandos y los trazados aparecen según el número de hiperparámetros de la optimización. Para la optimización y los trazados, la función objetivo es log(1 + cross-validation loss) para la regresión y la tasa de clasificación errónea para la clasificación. Para controlar la visualización iterativa, establezca el campo del argumento de par nombre-valor.Verbose
'HyperparameterOptimizationOptions'
Para controlar los trazados, establezca el campo del argumento de par nombre-valor.ShowPlots
'HyperparameterOptimizationOptions'
Para ver un ejemplo, vea.Optimice una regresión lineal
Ejemplo: 'OptimizeHyperparameters','auto'
'HyperparameterOptimizationOptions'
— Las opciones de optimizaciónOpciones de optimización, especificadas como el par separado por comas que consta de una estructura.'HyperparameterOptimizationOptions'
Este argumento modifica el efecto del argumento de par nombre-valor.OptimizeHyperparameters
Todos los campos de la estructura son opcionales.
Nombre de campo | Valores | Predeterminado |
---|---|---|
Optimizer |
búsquedas en orden aleatorio, utilizando muestreo uniforme sin sustitución de la rejilla. | 'bayesopt' |
AcquisitionFunctionName |
Las funciones de adquisición cuyos nombres incluyen no producen resultados reproducibles porque la optimización depende del tiempo de ejecución de la función objetiva. | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Número máximo de evaluaciones de funciones objetivas. | para o, y toda la rejilla para30 'bayesopt' 'randomsearch' 'gridsearch' |
MaxTime | Límite de tiempo, especificado como real positivo. El límite de tiempo es en segundos, medido por y. | Inf |
NumGridDivisions | Para el número de valores de cada dimensión.'gridsearch' El valor puede ser un vector de enteros positivos que da el número de valores para cada dimensión, o un escalar que se aplica a todas las dimensiones. Este campo se omite para las variables categóricas. | 10 |
ShowPlots | Valor lógico que indica si se mostrarán los trazados. Si, este campo traza el mejor valor de la función objetiva con respecto al número de iteración.true Si hay uno o dos parámetros de optimización, y si es así, también traza un modelo de la función objetiva contra los parámetros.Optimizer 'bayesopt' ShowPlots | true |
SaveIntermediateResults | Valor lógico que indica si se guardan los resultados cuando es.Optimizer 'bayesopt' Si, este campo sobrescribe una variable de espacio de trabajo denominada en cada iteración.true 'BayesoptResults' La variable es un objeto.BayesianOptimization | false |
Verbose | Mostrar en la línea de comandos.
Para obtener información detallada, vea el argumento de par nombre-valor. | 1 |
UseParallel | Valor lógico que indica si se debe ejecutar la optimización bayesiana en paralelo, lo que requiere.Parallel Computing Toolbox™ Para obtener más información, consulte.Optimización bayesiana paralela | false |
Repartition | Valor lógico que indica si se vuelve a particionar la validación cruzada en cada iteración. Si, el optimizador utiliza una sola partición para la optimización. normalmente proporciona los resultados más sólidos, ya que esta configuración tiene en cuenta el ruido de partición. | false |
No utilice más de uno de los tres nombres de campo siguientes. | ||
CVPartition | Un objeto, creado por.cvpartition cvpartition | Si no especifica ningún campo de validación cruzada'Kfold',5 |
Holdout | Un escalar en el rango que representa la fracción de exclusión.(0,1) | |
Kfold | Un entero mayor que 1. |
Ejemplo: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)
Tipos de datos: struct
Mdl
— Modelo de regresión lineal entrenadoRegressionLinear
| objeto de modelo validado entreRegressionPartitionedLinear
Modelo de regresión lineal entrenado, devuelto como objeto de modelo o objeto de modelo validado de forma cruzada.RegressionLinear
RegressionPartitionedLinear
Si establece cualquiera de los argumentos de par nombre-valor,, o, a continuación, es un objeto de modelo validado por Cruz.KFold
Holdout
CrossVal
CVPartition
Mdl
RegressionPartitionedLinear
De lo contrario, es un objeto de modelo.Mdl
RegressionLinear
Para hacer referencia a las propiedades de, utilice notación de puntos.Mdl
Por ejemplo, escriba en la ventana de comandos para mostrar el vector o la matriz de los coeficientes estimados.Mdl.Beta
A diferencia de otros modelos de regresión, y para el uso de memoria económica, y los objetos de modelo no almacenan los datos de entrenamiento ni los detalles de optimización (por ejemplo, el historial de convergencia).RegressionLinear
RegressionPartitionedLinear
FitInfo
— Los detalles de optimizaciónDetalles de optimización, devueltos como una matriz de estructura.
Los campos especifican los valores finales o las especificaciones del argumento de par nombre-valor, por ejemplo, es el valor de la función objetivo cuando finaliza la optimización.Objective
Las filas de campos multidimensionales corresponden a los valores de y las columnas corresponden a los valores de.Lambda
Solver
Esta tabla describe algunos campos notables.
Campo | Descripción | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TerminationStatus |
| ||||||||||||||
FitTime | Tiempo transcurrido, reloj de pared en segundos | ||||||||||||||
History | Una matriz de estructura de información de optimización para cada iteración. El campo almacena los tipos de solucionador mediante codificación de enteros.
|
Para acceder a los campos, utilice notación de puntos. Por ejemplo, para acceder al vector de los valores de función objetiva para cada iteración, escriba.FitInfo.History.Objective
Es una buena práctica examinar para evaluar si la convergencia es satisfactoria.FitInfo
HyperparameterOptimizationResults
— La optimización de la validación cruzada de los hiperparámetrosBayesianOptimization
| tabla de hiperparámetros y valores asociadosOptimización de validación cruzada de hiperparámetros, devueltos como un objeto o una tabla de hiperparámetros y valores asociados.BayesianOptimization
La salida no está vacía cuando el valor de no es.'OptimizeHyperparameters'
'none'
El valor de salida depende del valor de campo del argumento de par nombre-valor:Optimizer
'HyperparameterOptimizationOptions'
Valor de campoOptimizer | Valor deHyperparameterOptimizationResults |
---|---|
predeterminado'bayesopt' | Objeto de claseBayesianOptimization |
O'gridsearch' 'randomsearch' | Tabla de hiperparámetros utilizados, valores de función objetiva observados (pérdida de validación cruzada) y rango de observaciones de menor (mejor) a mayor (peor) |
Si es, después el término de la pérdida en la función objetiva es la mitad del MSE.Learner
'leastsquares'
loss
vuelve el MSE por abandono. Por lo tanto, si usted utiliza para marcar el reenvío, o el entrenamiento, el error entonces hay una discrepancia entre el MSE devuelto por y los resultados de la optimización en o devueltos a la línea de comando estableciendo un nivel de verbosidad positivo usando.loss
loss
FitInfo
Verbose
A son estimaciones iniciales de los coeficientes beta y el término de sesgo suministrados a una rutina de optimización para una convergencia más rápida.comienzo cálido
Los modelos de regresión y clasificación lineal de alta dimensión minimizan las funciones objetivas con relativa rapidez, pero a costa de cierta precisión, la restricción de las variables predictoras de solo numérico y el modelo debe ser lineal con respecto a los parámetros. Si el conjunto de datos de predictor es de baja a media dimensión, o contiene variables heterogéneas, debe usar la función de ajuste de la clasificación o la regresión adecuada. Para ayudarle a decidir qué función de ajuste es adecuada para su conjunto de datos de dimensiones reducidas, utilice esta tabla.
Modelo para ajustar | Función | Diferencias algorítmicas notables |
---|---|---|
Svm |
| |
La regresión lineal |
| |
La regresión logística |
|
Es una práctica recomendada orientar la matriz predictora para que las observaciones se correspondan con las columnas y se especifiquen.'ObservationsIn','columns'
Como resultado, puede experimentar una reducción significativa en el tiempo de ejecución de la optimización.
Para una mejor precisión de la optimización si es alta dimensional y es, establezca cualquiera de estas combinaciones para:X
Regularización
'ridge'
Solver
'sgd'
'asgd'
Si es'dual'
Learner
'svm'
{'sgd','lbfgs'}
{'asgd','lbfgs'}
Si es{'dual','lbfgs'}
Learner
'svm'
Otras combinaciones pueden resultar en una precisión de optimización deficiente.
Para una mejor precisión de la optimización si es moderada-a través de baja dimensional y está, establecido en.X
Regularización
'ridge'
Solver
'bfgs'
Si es así, establezca cualquiera de estas combinaciones para:Regularización
'lasso'
Solver
'sgd'
'asgd'
'sparsa'
{'sgd','sparsa'}
{'asgd','sparsa'}
Al elegir entre SGD y ASGD, tenga en cuenta que:
SGD tarda menos tiempo por iteración, pero requiere más iteraciones para converger.
ASGD requiere menos iteraciones para converger, pero toma más tiempo por iteración.
Si tiene pocas observaciones, pero muchas variables predictoras, entonces:X
Especificar.'PostFitBias',true
Para los solucionadores de SGD o ASGD, establezca un entero positivo que sea mayor que 1, por ejemplo, 5 o 10.PassLimit
Esta configuración a menudo resulta en una mejor precisión.
Para los solucionadores de SGD y ASGD, afecta a la tasa de convergencia.BatchSize
Si es demasiado pequeño, entoncesBatchSize
fitrlinear
alcanza el mínimo en muchas iteraciones, pero calcula el degradado por iteración rápidamente.
Si es demasiado grande, entoncesBatchSize
fitrlinear
alcanza el mínimo en menos iteraciones, pero calcula el degradado por iteración lentamente.
Las grandes tasas de aprendizaje (ver) aceleran la convergencia al mínimo, pero pueden dar lugar a una divergencia (es decir, sobrepisar el mínimo).LearnRate
Las pequeñas tasas de aprendizaje aseguran la convergencia al mínimo, pero pueden conducir a una terminación lenta.
Cuando se utilizan las penas de lazo, experimentar con varios valores de.TruncationPeriod
Por ejemplo, establecer en y, a continuación,.TruncationPeriod
1
10
100
Para mayor eficiencia, fitrlinear
no estandariza los Datos predictores. Para estandarizar, introduzcaX
X = bsxfun(@rdivide,bsxfun(@minus,X,mean(X,2)),std(X,0,2));
El código requiere orientar los predictores y observaciones como las filas y columnas de, respectivamente.X
Además, para la economía de uso de memoria, el código reemplaza los Datos predictores originales de los datos estandarizados.
Después de entrenar un modelo, puede generar código de C/C++ que predice las respuestas de los nuevos datos. La generación de código C/C++ requiere MATLABCoder™. Para obtener más información, consulte.Introducción a la generación de código
Si especifica, a continuación, durante la optimización de la función objetiva:ValidationData
fitrlinear
estima la pérdida de validación de usar periódicamente el modelo actual y realiza un seguimiento de la estimación mínima.ValidationData
Cuando fitrlinear
estima una pérdida de validación, compara la estimación con la estimación mínima.
Cuando las estimaciones de pérdidas de validación posteriores superan la estimación mínima cinco veces, fitrlinear
finaliza la optimización.
Si especifica e implementa una rutina de validación cruzada (,, o), entonces:ValidationData
CrossVal
CVPartition
Holdout
KFold
fitrlinear
particiones aleatoriamente y de acuerdo con la rutina de validación cruzada que elija.X
Y
fitrlinear
entrena el modelo utilizando la partición de datos de entrenamiento. Durante la optimización de la función objetiva, fitrlinear
utiliza como otra forma posible de terminar la optimización (para obtener más información, consulte la viñeta anterior).ValidationData
una vez fitrlinear
satisface un criterio de detención, construye un modelo entrenado basado en los coeficientes lineales optimizados y la interceptación.
Si implementa la validación cruzada, yk fitrlinear
no ha agotado todos los pliegues del set de entrenamiento, entonces fitrlinear
regresa al paso 2 para entrenar usando el siguiente pliegue del conjunto de entrenamiento.
Lo contrario fitrlinear
finaliza el entrenamiento y, a continuación, devuelve el modelo con validación cruzada.
Puede determinar la calidad del modelo validado en cruz. Por ejemplo:
Para determinar la pérdida de validación utilizando los datos de exclusión o fuera de pliegue del paso 1, pase el modelo validado en cruz.kfoldLoss
Para predecir las observaciones de los datos de exclusión o fuera de pliegue del paso 1, pase el modelo validado en cruz.kfoldPredict
[1] Ho, C. H. and C. J. Lin. “Large-Scale Linear Support Vector Regression.” Journal of Machine Learning Research, Vol. 13, 2012, pp. 3323–3348.
[2] Hsieh, C. J., K. W. Chang, C. J. Lin, S. S. Keerthi, and S. Sundararajan. “A Dual Coordinate Descent Method for Large-Scale Linear SVM.” Proceedings of the 25th International Conference on Machine Learning, ICML ’08, 2001, pp. 408–415.
[3] Langford, J., L. Li, and T. Zhang. “Sparse Online Learning Via Truncated Gradient.” J. Mach. Learn. Res., Vol. 10, 2009, pp. 777–801.
[4] Nocedal, J. and S. J. Wright. Numerical Optimization, 2nd ed., New York: Springer, 2006.
[5] Shalev-Shwartz, S., Y. Singer, and N. Srebro. “Pegasos: Primal Estimated Sub-Gradient Solver for SVM.” Proceedings of the 24th International Conference on Machine Learning, ICML ’07, 2007, pp. 807–814.
[6] Wright, S. J., R. D. Nowak, and M. A. T. Figueiredo. “Sparse Reconstruction by Separable Approximation.” Trans. Sig. Proc., Vol. 57, No 7, 2009, pp. 2479–2493.
[7] Xiao, Lin. “Dual Averaging Methods for Regularized Stochastic Learning and Online Optimization.” J. Mach. Learn. Res., Vol. 11, 2010, pp. 2543–2596.
[8] Xu, Wei. “Towards Optimal One Pass Large Scale Learning with Averaged Stochastic Gradient Descent.” CoRR, abs/1107.2490, 2011.
Notas de uso y limitaciones:
Algunos argumentos de par de nombre-valor tienen valores predeterminados diferentes, en comparación con la función en memoria.fitrlinear
Los argumentos de par nombre-valor admitidos y las diferencias son:
'Epsilon'
— Sólo admite.'ObservationsIn'
'rows'
: Puede ser (predeterminado) o escalar.'Lambda'
'auto'
'Learner'
— Sólo admite.'Regularization'
'ridge'
— Sólo admite.'Solver'
'lbfgs'
— El valor predeterminado es'Verbose'
1
'Beta'
'Bias'
— Sólo admite.'FitBias'
true
: El valor debe ser una matriz alta.'Weights'
'HessianHistorySize'
— El valor predeterminado es relajado.'BetaTolerance'
1e-3
— El valor predeterminado es relajado.'GradientTolerance'
1e-3
— El valor predeterminado es relajado.'IterationLimit'
20
— El valor del parámetro debe ser.'OptimizeHyperparameters'
'Regularization'
'ridge'
: Para la validación cruzada, la optimización alta solo admite la validación.'HyperparameterOptimizationOptions'
'Holdout'
Por ejemplo, puede especificar.fitrlinear(X,Y,'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',struct('Holdout',0.2))
Para matrices altas implementa LBFGS distribuyendo el cálculo de la pérdida y el gradiente entre las diferentes partes de la matriz alta en cada iteración.fitrlinear
Otros solucionadores no están disponibles para matrices altas.
Cuando los valores iniciales para y no se dan, primero se reajusta las estimaciones iniciales de los parámetros mediante el ajuste del modelo localmente a partes de los datos y la combinación de los coeficientes mediante la promediación.Beta
Bias
fitrlinear
Para obtener más información, consulte.Arreglos altos (MATLAB)
Para ejecutar en paralelo, establezca la opción en.'UseParallel'
true
Para realizar la optimización de hiperparámetros paralelos, utilice el argumento de par nombre-valor en la llamada a esta función.'HyperparameterOptions', struct('UseParallel',true)
Para obtener más información sobre la optimización de hiperparámetros paralelos, consulte.Optimización bayesiana paralela
Para obtener más información general sobre la computación paralela, consulte.Run MATLAB Functions with Automatic Parallel Support (Parallel Computing Toolbox)
Lazo
| RegressionLinear
| RegressionPartitionedLinear
| fitclinear
| fitlm
| fitrsvm
| kfoldLoss
| kfoldPredict
| predict
| ridge
A modified version of this example exists on your system. Do you want to open this version instead? (es)
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.