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.

regularize

Encuentre pesos para minimizar el error de reenvío más el plazo de penalización

Sintaxis

ens1 = regularize(ens)
ens1 = regularize(ens,Name,Value)

Descripción

ens1 = regularize(ens) encuentra los pesos óptimos para los estudiantes en la regularización de lazo. Devuelve un conjunto de regresión idéntico, pero con una propiedad rellenada.ensregularizeensRegularización

ens1 = regularize(ens,Name,Value) calcula los pesos óptimos con opciones adicionales especificadas por uno o más argumentos de par.Name,Value Puede especificar varios argumentos de par nombre-valor en cualquier orden como.Name1,Value1,…,NameN,ValueN

Argumentos de entrada

ens

Un conjunto de regresión, creado por.fitrensemble

Argumentos de par nombre-valor

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,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

'lambda'

Vector de valores de parámetro de regularización no negativo para lazo. Para la configuración predeterminada de, calcula el valor más pequeño para el que son todos los pesos óptimos para los alumnos.lambdaregularizelambda_max0 El valor predeterminado de es un vector que incluye y nueve números exponencialmente espaciados de a.lambda0lambda_max/1000lambda_max

Predeterminado: [0 logspace(log10(lambda_max/1000),log10(lambda_max),9)]

'MaxIter'

Número máximo de iteraciones permitidas, especificadas como un entero positivo. Si el algoritmo ejecuta iteraciones antes de alcanzar la tolerancia de convergencia, la función deja de iterar y devuelve un mensaje de advertencia.MaxIter La función puede devolver más de una advertencia cuando uno o el número de valores es mayor que 1.npasslambda

Predeterminado: 1e3

'npass'

Número máximo de pasadas para la optimización de lazo, un entero positivo.

Predeterminado: 10

'reltol'

Tolerancia relativa a la pérdida regularizada para el lazo, un escalar positivo numérico.

Predeterminado: 1e-3

'verbose'

Nivel de verbosidad, ya sea o.01 Cuando se establece en, muestra más información a medida que se ejecuta.1regularize

Predeterminado: 0

Argumentos de salida

ens1

Un conjunto de regresión. Normalmente se establece en el mismo nombre que.ens1ens

Ejemplos

expandir todo

Regularice un conjunto de árboles enrosados.

Genere datos de ejemplo.

rng(10,'twister') % For reproducibility X = rand(2000,20); Y = repmat(-1,2000,1); Y(sum(X(:,1:5),2)>2.5) = 1;

Puede crear un conjunto de clasificación en bolsas de 300 árboles a partir de los datos de muestra.

bag = fitrensemble(X,Y,'Method','Bag','NumLearningCycles',300); 

utiliza un objeto de árbol de plantilla predeterminado como un factor débil cuando es.fitrensembletemplateTree()'Method''Bag' En este ejemplo, para la reproducibilidad, especifique Cuándo crea un objeto de plantilla de árbol y, a continuación, utilice el objeto como un factor débil.'Reproducible',true

t = templateTree('Reproducible',true); % For reproducibiliy of random predictor selections bag = fitrensemble(X,Y,'Method','Bag','NumLearningCycles',300,'Learners',t);

Regularice el conjunto de árboles de regresión embolvado.

bag = regularize(bag,'lambda',[0.001 0.1],'verbose',1);
Starting lasso minimization for Lambda=0.001. Initial MSE=0.110607.     Lasso minimization completed pass 1 for Lambda=0.001         MSE = 0.0899652         Relative change in MSE = 0.229442         Number of learners with non-zero weights = 12     Lasso minimization completed pass 2 for Lambda=0.001         MSE = 0.064488         Relative change in MSE = 0.39507         Number of learners with non-zero weights = 43     Lasso minimization completed pass 3 for Lambda=0.001         MSE = 0.0608422         Relative change in MSE = 0.0599211         Number of learners with non-zero weights = 64     Lasso minimization completed pass 4 for Lambda=0.001         MSE = 0.060069         Relative change in MSE = 0.0128723         Number of learners with non-zero weights = 82     Lasso minimization completed pass 5 for Lambda=0.001         MSE = 0.0599398         Relative change in MSE = 0.00215497         Number of learners with non-zero weights = 96     Lasso minimization completed pass 6 for Lambda=0.001         MSE = 0.0599369         Relative change in MSE = 4.80374e-05         Number of learners with non-zero weights = 109     Lasso minimization completed pass 7 for Lambda=0.001         MSE = 0.0599364         Relative change in MSE = 9.35973e-06         Number of learners with non-zero weights = 113     Lasso minimization completed pass 8 for Lambda=0.001         MSE = 0.0599364         Relative change in MSE = 1.99253e-08         Number of learners with non-zero weights = 114     Lasso minimization completed pass 9 for Lambda=0.001         MSE = 0.0599364         Relative change in MSE = 5.04823e-08         Number of learners with non-zero weights = 113     Completed lasso minimization for Lambda=0.001.     Resubstitution MSE changed from 0.110607 to 0.0599364.     Number of learners reduced from 300 to 113. Starting lasso minimization for Lambda=0.1. Initial MSE=0.110607.     Lasso minimization completed pass 1 for Lambda=0.1         MSE = 0.113013         Relative change in MSE = 0.0212927         Number of learners with non-zero weights = 10     Lasso minimization completed pass 2 for Lambda=0.1         MSE = 0.086583         Relative change in MSE = 0.30526         Number of learners with non-zero weights = 27     Lasso minimization completed pass 3 for Lambda=0.1         MSE = 0.080426         Relative change in MSE = 0.0765551         Number of learners with non-zero weights = 42     Lasso minimization completed pass 4 for Lambda=0.1         MSE = 0.0795375         Relative change in MSE = 0.0111715         Number of learners with non-zero weights = 57     Lasso minimization completed pass 5 for Lambda=0.1         MSE = 0.0792383         Relative change in MSE = 0.00377496         Number of learners with non-zero weights = 67     Lasso minimization completed pass 6 for Lambda=0.1         MSE = 0.0786905         Relative change in MSE = 0.00696198         Number of learners with non-zero weights = 75     Lasso minimization completed pass 7 for Lambda=0.1         MSE = 0.0787969         Relative change in MSE = 0.00134974         Number of learners with non-zero weights = 77     Lasso minimization completed pass 8 for Lambda=0.1         MSE = 0.0788049         Relative change in MSE = 0.00010252         Number of learners with non-zero weights = 87     Lasso minimization completed pass 9 for Lambda=0.1         MSE = 0.0788065         Relative change in MSE = 1.98213e-05         Number of learners with non-zero weights = 87     Completed lasso minimization for Lambda=0.1.     Resubstitution MSE changed from 0.110607 to 0.0788065.     Number of learners reduced from 300 to 87. 

informes sobre su progreso.regularize

Inspeccione la estructura de regularización resultante.

bag.Regularization
ans = struct with fields:
               Method: 'Lasso'
       TrainedWeights: [300x2 double]
               Lambda: [1.0000e-03 0.1000]
    ResubstitutionMSE: [0.0599 0.0788]
       CombineWeights: @classreg.learning.combiner.WeightedSum

Compruebe Cuántos alumnos del conjunto regularizado tienen pesos positivos. Estos son los alumnos incluidos en un conjunto encogido.

sum(bag.Regularization.TrainedWeights > 0)
ans = 1×2

   113    87

Encoge el conjunto usando los pesos de.Lambda = 0.1

cmp = shrink(bag,'weightcolumn',2)
cmp =    classreg.learning.regr.CompactRegressionEnsemble              ResponseName: 'Y'     CategoricalPredictors: []         ResponseTransform: 'none'                NumTrained: 87     Properties, Methods  

El conjunto compacto contiene miembros, menos de 1/3 del original.87300

Más acerca de

expandir todo