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.

kfoldMargin

Márgenes de clasificación para observaciones no utilizadas en la formación

Descripción

ejemplo

m = kfoldMargin(CVMdl) Devuelve la validación cruzada obtenida por el modelo de clasificación lineal, binario y validado.márgenes de clasificaciónCVMdl Es decir, para cada pliegue, se estiman los márgenes de clasificación para las observaciones que mantiene cuando se entrena utilizando todas las demás observaciones.kfoldMargin

contiene márgenes de clasificación para cada fuerza de regularización en los modelos de clasificación lineal que componen.mCVMdl

Argumentos de entrada

expandir todo

Modelo de clasificación lineal, binario y validado mediante validación cruzada, especificado como objeto de modelo.ClassificationPartitionedLinear Puede crear un modelo utilizando y especificando cualquiera de los argumentos de combinación de validación cruzada, nombre-valor, por ejemplo,.ClassificationPartitionedLinearfitclinearCrossVal

Para obtener estimaciones, se aplican los mismos datos utilizados para validar el modelo de clasificación lineal (y).kfoldMarginXY

Argumentos de salida

expandir todo

Validado de forma cruzada, devuelto como un vector numérico o una matriz.márgenes de clasificación

es-por-, donde está el número de observaciones en los datos que crearon (ver y) y es el número de fortalezas de regularización en (es decir,).mnLnCVMdlXYLCVMdlnumel(CVMdl.Trained{1}.Lambda)

m(i,j) es el margen de observación de la clasificación de validación cruzada utilizando el modelo de clasificación lineal que tiene fuerza de regularizacióni CVMdl.Trained{1}.Lambda(j).

Tipos de datos: single | double

Ejemplos

expandir todo

Cargue el conjunto de datos NLP.

load nlpdata

es una matriz dispersa de Datos predictores y es un vector categórico de etiquetas de clase.XY Hay más de dos clases en los datos.

Los modelos deben identificar si la palabra cuenta en una página web son de la documentación de estadísticas y machine learning Toolbox™. Por lo tanto, identifique las etiquetas que corresponden a las páginas web de documentación de estadísticas y machine learning Toolbox™.

Ystats = Y == 'stats';

Valide de forma cruzada un modelo de clasificación lineal y binario que pueda identificar si la palabra cuenta en una página web de documentación es de la documentación de estadísticas y machine learning Toolbox™.

rng(1); % For reproducibility  CVMdl = fitclinear(X,Ystats,'CrossVal','on');

es un modelo.CVMdlClassificationPartitionedLinear De forma predeterminada, el software implementa la validación cruzada de 10 veces. Puede alterar el número de pliegues mediante el argumento de par nombre-valor.'KFold'

Estimar los márgenes de validación cruzada.

m = kfoldMargin(CVMdl); size(m)
ans = 1×2

       31572           1

es un vector 31572-by-1. es el promedio de los márgenes de observación.mm(j)j

Trace los márgenes mediante trazados de caja.k

figure; boxplot(m); h = gca; h.YLim = [-5 30]; title('Distribution of Cross-Validated Margins')

Una forma de realizar la selección de características es comparar los márgenes de varios modelos.k Basándose únicamente en este criterio, el clasificador con los márgenes más grandes es el mejor clasificador.

Cargue el conjunto de datos NLP. Preprocese los datos como en.Los márgenes de validación cruzada de estimación doblek

load nlpdata Ystats = Y == 'stats'; X = X';

Cree estos dos conjuntos de datos:

  • contiene todos los predictores.fullX

  • contiene 1/2 de los predictores elegidos al azar.partX

rng(1); % For reproducibility p = size(X,1); % Number of predictors halfPredIdx = randsample(p,ceil(0.5*p)); fullX = X; partX = X(halfPredIdx,:);

Valide dos modelos binarios de clasificación lineal: uno que utilice todos los predictores y otro que utilice la mitad de los predictores. Optimice la función objetivo utilizando SpaRSA e indique que las observaciones corresponden a las columnas.

CVMdl = fitclinear(fullX,Ystats,'CrossVal','on','Solver','sparsa',...     'ObservationsIn','columns'); PCVMdl = fitclinear(partX,Ystats,'CrossVal','on','Solver','sparsa',...     'ObservationsIn','columns');

y son modelos.CVMdlPCVMdlClassificationPartitionedLinear

Calcule los márgenes de plegado para cada clasificador.k Trace la distribución de los conjuntos de márgenes de plegado utilizando parcelas de caja.k

fullMargins = kfoldMargin(CVMdl); partMargins = kfoldMargin(PCVMdl);  figure; boxplot([fullMargins partMargins],'Labels',...     {'All Predictors','Half of the Predictors'}); h = gca; h.YLim = [-30 60]; title('Distribution of Cross-Validated Margins')

Las distribuciones de los márgenes de los dos clasificadores son similares.

Para determinar una buena fuerza de penalización de lazo para un modelo de clasificación lineal que utiliza un aprendizaje de regresión logística, compare los márgenes de distribución de las distribuciones.k

Cargue el conjunto de datos NLP. Preprocese los datos como en.Los márgenes de validación cruzada de estimación doblek

load nlpdata Ystats = Y == 'stats'; X = X';

Cree un conjunto de 11 fortalezas de regularización logarmicamente espaciadas de

<math display="block">
<mrow>
<mn>1</mn>
<msup>
<mrow>
<mn>0</mn>
</mrow>
<mrow>
<mo>-</mo>
<mn>8</mn>
</mrow>
</msup>
</mrow>
</math>
a través de
<math display="block">
<mrow>
<mn>1</mn>
<msup>
<mrow>
<mn>0</mn>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msup>
</mrow>
</math>
.

Lambda = logspace(-8,1,11);

Valide de forma cruzada un modelo de clasificación lineal y binario mediante la validación cruzada de 5 veces y que utilice cada una de las fortalezas de regularización. Optimice la función objetivo utilizando SpaRSA. Reduzca la tolerancia en el degradado de la función objetiva a.1e-8

rng(10); % For reproducibility CVMdl = fitclinear(X,Ystats,'ObservationsIn','columns','KFold',5, ...     'Learner','logistic','Solver','sparsa','Regularization','lasso', ...     'Lambda',Lambda,'GradientTolerance',1e-8)
CVMdl =    classreg.learning.partition.ClassificationPartitionedLinear     CrossValidatedModel: 'Linear'            ResponseName: 'Y'         NumObservations: 31572                   KFold: 5               Partition: [1×1 cvpartition]              ClassNames: [0 1]          ScoreTransform: 'none'     Properties, Methods  

es un modelo.CVMdlClassificationPartitionedLinear Porque implementa la validación cruzada 5 veces, contiene 5 modelos que el software entrena en cada pliegue.fitclinearCVMdlClassificationLinear

Calcule los márgenes de plegado para cada fuerza de regularización.k

m = kfoldMargin(CVMdl); size(m)
ans = 1×2

       31572          11

es una matriz de 31572 por 11 de márgenes de validación cruzada para cada observación.m Las columnas corresponden a las fortalezas de regularización.

Trace los márgenes para cada fuerza de regularización.k Dado que las puntuaciones de regresión logística están en [0,1], los márgenes se encuentran en [-1, 1]. Reescalar los márgenes para ayudar a identificar la fuerza de regularización que maximiza los márgenes sobre la rejilla.

figure boxplot(10000.^m) ylabel('Exponentiated test-sample margins') xlabel('Lambda indices')

Varios valores de distribuciones de margen de pliegue de rendimiento que se compactan cerca de 10000.Lambdak Los valores más altos de lambda conducen a la dispersión variable predictora, que es una buena calidad de un clasificador.

Elija la fuerza de regularización que se produce justo antes de que los centros de las distribuciones de margen de plegado empiecen a disminuir.k

LambdaFinal = Lambda(5);

Entrenar un modelo de clasificación lineal utilizando todo el conjunto de datos y especificar la fuerza de regularización deseada.

MdlFinal = fitclinear(X,Ystats,'ObservationsIn','columns', ...     'Learner','logistic','Solver','sparsa','Regularization','lasso', ...     'Lambda',LambdaFinal);

Para estimar las etiquetas de las nuevas observaciones, pasar y los nuevos datos a.MdlFinalPredecir

Más acerca de

expandir todo

Introducido en R2016a