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.

fscnca

Selección de características mediante análisis de componentes de vecindad para clasificación

Descripción

ejemplo

mdl = fscnca(X,Y) realiza la selección de características para la clasificación utilizando los predictores y las respuestas en.XY

Aprende los pesos de las entidades utilizando una adaptación diagonal del análisis de componentes de vecindad (NCA) con regularización.fscnca

ejemplo

mdl = fscnca(X,Y,Name,Value) realiza la selección de características para la clasificación con opciones adicionales especificadas por uno o más argumentos de par nombre-valor.

Ejemplos

contraer todo

Genere datos de juguete donde la variable de respuesta dependa de los predictores 3º, 9th y 15th.

rng(0,'twister'); % For reproducibility N = 100; X = rand(N,20); y = -ones(N,1); y(X(:,3).*X(:,9)./X(:,15) < 0.4) = 1;

Ajuste el modelo de análisis de componentes de vecindad para la clasificación.

mdl = fscnca(X,y,'Solver','sgd','Verbose',1);
 o Tuning initial learning rate: NumTuningIterations = 20, TuningSubsetSize = 100  |===============================================| |    TUNING    | TUNING SUBSET |    LEARNING    | |     ITER     |   FUN VALUE   |      RATE      | |===============================================| |            1 | -3.755936e-01 |   2.000000e-01 | |            2 | -3.950971e-01 |   4.000000e-01 | |            3 | -4.311848e-01 |   8.000000e-01 | |            4 | -4.903195e-01 |   1.600000e+00 | |            5 | -5.630190e-01 |   3.200000e+00 | |            6 | -6.166993e-01 |   6.400000e+00 | |            7 | -6.255669e-01 |   1.280000e+01 | |            8 | -6.255669e-01 |   1.280000e+01 | |            9 | -6.255669e-01 |   1.280000e+01 | |           10 | -6.255669e-01 |   1.280000e+01 | |           11 | -6.255669e-01 |   1.280000e+01 | |           12 | -6.255669e-01 |   1.280000e+01 | |           13 | -6.255669e-01 |   1.280000e+01 | |           14 | -6.279210e-01 |   2.560000e+01 | |           15 | -6.279210e-01 |   2.560000e+01 | |           16 | -6.279210e-01 |   2.560000e+01 | |           17 | -6.279210e-01 |   2.560000e+01 | |           18 | -6.279210e-01 |   2.560000e+01 | |           19 | -6.279210e-01 |   2.560000e+01 | |           20 | -6.279210e-01 |   2.560000e+01 |   o Solver = SGD, MiniBatchSize = 10, PassLimit = 5  |==========================================================================================| |   PASS   |     ITER     | AVG MINIBATCH | AVG MINIBATCH |   NORM STEP   |    LEARNING    | |          |              |   FUN VALUE   |   NORM GRAD   |               |      RATE      | |==========================================================================================| |        0 |            9 | -5.658450e-01 |  4.492407e-02 |  9.290605e-01 |   2.560000e+01 | |        1 |           19 | -6.131382e-01 |  4.923625e-02 |  7.421541e-01 |   1.280000e+01 | |        2 |           29 | -6.225056e-01 |  3.738784e-02 |  3.277588e-01 |   8.533333e+00 | |        3 |           39 | -6.233366e-01 |  4.947901e-02 |  5.431133e-01 |   6.400000e+00 | |        4 |           49 | -6.238576e-01 |  3.445763e-02 |  2.946188e-01 |   5.120000e+00 |           Two norm of the final step = 2.946e-01 Relative two norm of the final step = 6.588e-02, TolX = 1.000e-06 EXIT: Iteration or pass limit reached. 

Trace las operaciones seleccionadas. Los pesos de las entidades irrelevantes deben estar cerca de cero.

figure() plot(mdl.FeatureWeights,'ro') grid on xlabel('Feature index') ylabel('Feature weight')

detecta correctamente las funciones relevantes.fscnca

Cargue los datos de muestra

load ovariancancer;  whos
  Name        Size                Bytes  Class     Attributes    grp       216x1                 26784  cell                   obs       216x4000            3456000  single               

Este ejemplo utiliza el conjunto de datos de cáncer de ovario de alta resolución que se generó mediante la matriz de proteínas WCX2. Los datos provienen de la.Programa de proteómica clínica FDA-NCI de Databank Después de algunos pasos de preprocesamiento, el conjunto de datos tiene dos variables: y.obsgrp La variable consta de 216 observaciones con 4000 características.obs Cada elemento define el grupo al que pertenece la fila correspondiente.grpobs

Divida los datos en conjuntos de pruebas y entrenamiento

Se utiliza para dividir los datos en un conjunto de entrenamiento de tamaño 160 y un conjunto de prueba de tamaño 56.cvpartition Tanto el conjunto de entrenamiento como el conjunto de pruebas tienen aproximadamente las mismas proporciones de grupo que en.grp

rng(1); % For reproducibility cvp = cvpartition(grp,'holdout',56)
cvp =  Hold-out cross validation partition    NumObservations: 216        NumTestSets: 1          TrainSize: 160           TestSize: 56 
Xtrain = obs(cvp.training,:); ytrain = grp(cvp.training,:); Xtest  = obs(cvp.test,:); ytest  = grp(cvp.test,:);

Determine si la selección de características es necesaria

Calcule el error de generalización sin ajuste.

nca = fscnca(Xtrain,ytrain,'FitMethod','none'); L = loss(nca,Xtest,ytest)
L = 0.0893 

Esta opción calcula el error de generalización del modelo de selección de características de análisis de componentes de vecindad (NCA) utilizando los pesos de entidades iniciales (en este caso, los pesos de entidades predeterminados) proporcionados.fscnca

Ajuste NCA sin parámetro de regularización (lambda = 0)

nca = fscnca(Xtrain,ytrain,'FitMethod','exact','Lambda',0,...       'Solver','sgd','Standardize',true); L = loss(nca,Xtest,ytest)
L = 0.0714 

La mejora en el valor de pérdida sugiere que la selección de características es una buena idea. Ajustar el

<math display="block">
<mrow>
<mi>λ</mi>
</mrow>
</math>
valor suele mejorar los resultados.

Ajuste el parámetro de regularización para NCA mediante la validación cruzada de cinco veces

Sintonización

<math display="block">
<mrow>
<mi>λ</mi>
</mrow>
</math>
significa encontrar el
<math display="block">
<mrow>
<mi>λ</mi>
</mrow>
</math>
valor que produce la pérdida de clasificación mínima. Para sintonizar
<math display="block">
<mrow>
<mi>λ</mi>
</mrow>
</math>
mediante la validación cruzada:

1. Particione los datos de entrenamiento en cinco pliegues y extraiga el número de conjuntos de validación (prueba). Para cada pliegue, asigna cuatro quintas partes de los datos como un conjunto de entrenamiento y un quinto de los datos como un conjunto de pruebas.cvpartition

cvp = cvpartition(ytrain,'kfold',5); numvalidsets = cvp.NumTestSets;

Asignar

<math display="block">
<mrow>
<mi>λ</mi>
</mrow>
</math>
valores y crear una matriz para almacenar los valores de la función de pérdida.

n = length(ytrain); lambdavals = linspace(0,20,20)/n; lossvals = zeros(length(lambdavals),numvalidsets);

2. Entrena el modelo NCA para cada

<math display="block">
<mrow>
<mi>λ</mi>
</mrow>
</math>
valor, utilizando el conjunto de entrenamiento en cada pliegue.

3. Calcule la pérdida de clasificación para el conjunto de pruebas correspondiente en el pliegue utilizando el modelo NCA. Registre el valor de pérdida.

4. Repite este proceso para todos los pliegues y todos los

<math display="block">
<mrow>
<mi>λ</mi>
</mrow>
</math>
Valores.

for i = 1:length(lambdavals)     for k = 1:numvalidsets         X = Xtrain(cvp.training(k),:);         y = ytrain(cvp.training(k),:);         Xvalid = Xtrain(cvp.test(k),:);         yvalid = ytrain(cvp.test(k),:);          nca = fscnca(X,y,'FitMethod','exact', ...              'Solver','sgd','Lambda',lambdavals(i), ...              'IterationLimit',30,'GradientTolerance',1e-4, ...              'Standardize',true);                            lossvals(i,k) = loss(nca,Xvalid,yvalid,'LossFunction','classiferror');     end end

Calcule la pérdida media obtenida de los pliegues para cada

<math display="block">
<mrow>
<mi>λ</mi>
</mrow>
</math>
Valor.

meanloss = mean(lossvals,2);

Trace los valores de pérdida promedio frente a los

<math display="block">
<mrow>
<mi>λ</mi>
</mrow>
</math>
Valores.

figure() plot(lambdavals,meanloss,'ro-') xlabel('Lambda') ylabel('Loss (MSE)') grid on

Encuentre el mejor valor lambda que corresponda a la pérdida promedio mínima.

[~,idx] = min(meanloss) % Find the index
idx = 2 
bestlambda = lambdavals(idx) % Find the best lambda value
bestlambda = 0.0066 
bestloss = meanloss(idx)
bestloss = 0.0250 

Ajuste el modelo NCA en todos los datos utilizando los mejores

<math display="block">
<mrow>
<mi>λ</mi>
</mrow>
</math>
y trazar los pesos de las entidades

Utilice el solucionador lbfgs y estandarice los valores predictores.

nca = fscnca(Xtrain,ytrain,'FitMethod','exact','Solver','sgd',...     'Lambda',bestlambda,'Standardize',true,'Verbose',1);
 o Tuning initial learning rate: NumTuningIterations = 20, TuningSubsetSize = 100  |===============================================| |    TUNING    | TUNING SUBSET |    LEARNING    | |     ITER     |   FUN VALUE   |      RATE      | |===============================================| |            1 |  2.403497e+01 |   2.000000e-01 | |            2 |  2.275050e+01 |   4.000000e-01 | |            3 |  2.036845e+01 |   8.000000e-01 | |            4 |  1.627647e+01 |   1.600000e+00 | |            5 |  1.023512e+01 |   3.200000e+00 | |            6 |  3.864283e+00 |   6.400000e+00 | |            7 |  4.743816e-01 |   1.280000e+01 | |            8 | -7.260138e-01 |   2.560000e+01 | |            9 | -7.260138e-01 |   2.560000e+01 | |           10 | -7.260138e-01 |   2.560000e+01 | |           11 | -7.260138e-01 |   2.560000e+01 | |           12 | -7.260138e-01 |   2.560000e+01 | |           13 | -7.260138e-01 |   2.560000e+01 | |           14 | -7.260138e-01 |   2.560000e+01 | |           15 | -7.260138e-01 |   2.560000e+01 | |           16 | -7.260138e-01 |   2.560000e+01 | |           17 | -7.260138e-01 |   2.560000e+01 | |           18 | -7.260138e-01 |   2.560000e+01 | |           19 | -7.260138e-01 |   2.560000e+01 | |           20 | -7.260138e-01 |   2.560000e+01 |   o Solver = SGD, MiniBatchSize = 10, PassLimit = 5  |==========================================================================================| |   PASS   |     ITER     | AVG MINIBATCH | AVG MINIBATCH |   NORM STEP   |    LEARNING    | |          |              |   FUN VALUE   |   NORM GRAD   |               |      RATE      | |==========================================================================================| |        0 |            9 |  4.016078e+00 |  2.835465e-02 |  5.395984e+00 |   2.560000e+01 | |        1 |           19 | -6.726156e-01 |  6.111354e-02 |  5.021138e-01 |   1.280000e+01 | |        1 |           29 | -8.316555e-01 |  4.024185e-02 |  1.196030e+00 |   1.280000e+01 | |        2 |           39 | -8.838656e-01 |  2.333418e-02 |  1.225839e-01 |   8.533333e+00 | |        3 |           49 | -8.669035e-01 |  3.413150e-02 |  3.421881e-01 |   6.400000e+00 | |        3 |           59 | -8.906935e-01 |  1.946293e-02 |  2.232510e-01 |   6.400000e+00 | |        4 |           69 | -8.778630e-01 |  3.561283e-02 |  3.290643e-01 |   5.120000e+00 | |        4 |           79 | -8.857136e-01 |  2.516633e-02 |  3.902977e-01 |   5.120000e+00 |           Two norm of the final step = 3.903e-01 Relative two norm of the final step = 6.171e-03, TolX = 1.000e-06 EXIT: Iteration or pass limit reached. 

Trace los pesos de las entidades.

figure() plot(nca.FeatureWeights,'ro') xlabel('Feature index') ylabel('Feature weight') grid on

Seleccione entidades utilizando los pesos de entidades y un umbral relativo.

tol    = 0.02; selidx = find(nca.FeatureWeights > tol*max(1,max(nca.FeatureWeights)))
selidx = 72×1

   565
   611
   654
   681
   737
   743
   744
   750
   754
   839
      ⋮

Calcule la pérdida de clasificación mediante el conjunto de pruebas.

L = loss(nca,Xtest,ytest)
L = 0.0179 

Clasifique las observaciones utilizando las entidades seleccionadas

Extraiga las entidades con pesos de entidades mayores que 0 de los datos de entrenamiento.

features = Xtrain(:,selidx);

Aplique un clasificador de máquina de vectores de soporte usando las características seleccionadas al conjunto de entrenamiento reducido.

svmMdl = fitcsvm(features,ytrain);

Evalúe la precisión del clasificador entrenado en los datos de prueba que no se han utilizado para seleccionar entidades.

L = loss(svmMdl,Xtest(:,selidx),ytest)
L = single
    0

Argumentos de entrada

contraer todo

Valores de la variable predictora, especificados como un-por-matriz, donde es el número de observaciones y es el número de variables predictoras.npnp

Tipos de datos: single | double

Etiquetas de clase, especificadas como un vector categórico, Vector lógico, Vector numérico, matriz de cadenas, matriz de celdas de vectores de caracteres de longitud o matriz de caracteres con filas, donde está el número de observaciones.nnn Elemento o fila de es la etiqueta de clase correspondiente a la fila de (observación).iiYiXi

Tipos de datos: single | double | logical | char | string | cell | categorical

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

Ejemplo: especifica el solucionador como el descenso de degradado estocástico, los pesos de observación como los valores en el vector y establece el parámetro de regularización en 0,0003.'Solver','sgd','Weights',W,'Lambda',0.0003W

Opciones de ajuste

contraer todo

Método para ajustar el modelo, especificado como el par separado por comas que consta de uno de los siguientes:'FitMethod'

  • : Realiza el ajuste utilizando todos los datos.'exact'

  • — Sin ajuste.'none' Utilice esta opción para evaluar el error de generalización del modelo NCA utilizando los pesos de entidades iniciales suministrados en la llamada a.fscnca

  • : Divide los datos en particiones (subconjuntos), se ajusta a cada partición mediante el método y devuelve el promedio de los pesos de las entidades.'average'exact Puede especificar el número de particiones mediante el argumento de par nombre-valor.NumPartitions

Ejemplo: 'FitMethod','none'

Número de particiones para dividir los datos para usar con la opción, especificado como el par separado por comas que consta de y un valor entero entre 2 y, donde es el número de observaciones.'FitMethod','average''NumPartitions'nn

Ejemplo: 'NumPartitions',15

Tipos de datos: double | single

Parámetro de regularización para evitar el sobreajuste, especificado como el par separado por comas que consta de un escalar no negativo.'Lambda'

A medida que aumenta el número de observaciones, la probabilidad de sobreajuste disminuye y la cantidad necesaria de regularización también disminuye.n Vea y aprenda a ajustar el parámetro de regularización.Identifique las características relevantes para la clasificaciónAjustar el parámetro de regularización para detectar características mediante NCA para la clasificación

Ejemplo: 'Lambda',0.002

Tipos de datos: double | single

Ancho del kernel, especificado como el par separado por comas que consta de un escalar real positivo.'LengthScale'

Un valor de escala de longitud de 1 es sensible cuando todos los predictores están en la misma escala. Si los predictores en son de muy diferentes magnitudes, a continuación, considere la estandarización de los valores predictores utilizando y estableciendo.X'Standardize',true'LengthScale',1

Ejemplo: 'LengthScale',1.5

Tipos de datos: double | single

Pesos de entidades iniciales, especificados como el par separado por comas que consta de un vector a-by-1 de escalares positivos reales, donde es el número de predictores en los datos de entrenamiento.'InitialFeatureWeights'pp

La función objetiva regularizada para optimizar los pesos de las entidades es no convexa. Como resultado, el uso de diferentes pesos de entidades iniciales puede dar resultados diferentes. Establecer todos los pesos de las entidades iniciales en 1 generalmente funciona bien, pero en algunos casos, la inicialización aleatoria puede ofrecer soluciones de mejor calidad.rand(p,1)

Tipos de datos: double | single

Pesos de observación, especificados como el par separado por comas que consiste en y un vector de-por-1 de escalares positivos reales.'ObservationWeights'n Utilice pesas de observación para especificar una mayor importancia de algunas observaciones en comparación con otras. Las ponderaciones predeterminadas asignan la misma importancia a todas las observaciones.

Tipos de datos: double | single

Probabilidades previas para cada clase, especificadas como el par separado por comas que consta de uno de los siguientes:'Prior'

  • — Obtiene las probabilidades de clase previas de las frecuencias de clase.'empirical'fscnca

  • : establece todas las probabilidades de clase iguales.'uniform'fscnca

  • Estructura con dos campos:

    • — Vector de probabilidades de clase.ClassProbs Si son valores numéricos con un total mayor que 1, los normaliza para sumar hasta 1.fsnca

    • — Nombres de clase correspondientes a las probabilidades de clase en.ClassNamesClassProbs

Ejemplo: 'Prior','uniform'

Indicador para estandarizar los Datos predictores, especificados como el par separado por comas que consta de y cualquiera o.'Standardize'falsetrue Para obtener más información, consulte.Impacto de la estandarización

Ejemplo: 'Standardize',true

Tipos de datos: logical

Indicador de nivel de verbosidad para la visualización de Resumen de convergencia, especificado como el par separado por comas que consta de uno de los siguientes:'Verbose'

  • 0 — ningún Resumen de convergencia

  • 1 — Resumen de convergencia, incluida la norma de los valores de función de gradiente y objetivo

  • > 1 — más información de convergencia, dependiendo del algoritmo de ajuste

    Cuando se utiliza el solucionador y el nivel de detalle > 1, la información de convergencia incluye la iteración del registro desde el mini-batch intermedio LBFGS encaja.'minibatch-lbfgs'

Ejemplo: 'Verbose',1

Tipos de datos: double | single

Tipo de solucionador para estimar ponderaciones de entidades, especificado como el par separado por comas que consta de uno de los siguientes:'Solver'

  • — Algoritmo de memoria limitada de Broyden-Fletcher-Goldfarb-Shanno (LBFGS)'lbfgs'

  • — Algoritmo de descenso de degradado estocástico (SGD)'sgd'

  • — Descenso del gradiente estocástico con el algoritmo LBFGS aplicado a los mini-lotes'minibatch-lbfgs'

El valor predeterminado es para ≤ 1000, y para > 1000.'lbfgs'n'sgd'n

Ejemplo: 'solver','minibatch-lbfgs'

Función de pérdida, especificada como el par separado por comas que consta de y uno de los siguientes.'LossFunction'

  • — Error de clasificación errónea'classiferror'

    l(yi,yj)={1ifyiyj,0otherwise.

  • @lossfun — Manija de la función de pérdida personalizada. Una función de pérdida tiene este formulario. es un vector de-por-1 y es un vector de-por-1. es un-por-matriz de valores de pérdida tales que es el valor de pérdida para y.

    function L = lossfun(Yu,Yv) % calculation of loss ...
    YuuYvvLuvL(i,j)Yu(i)Yv(j)

La función objetivo para la minimización incluye la función de pérdida l(yi,yj) como sigue:

f(w)=1ni=1nj=1,jinpijl(yi,yj)+λr=1pwr2,

donde está el vector de peso de la característica, es el número de observaciones, y es el número de variables predictoras.wnp pij es la probabilidad de que xj es el punto de referencia para xi. Para obtener más información, consulte.Selección de características de NCA para clasificación

Ejemplo: 'LossFunction',@lossfun

Tamaño de memoria, en MB, para usar para la función objetiva y el cálculo de degradado, especificado como el par separado por comas que consta de y un entero.'CacheSize'

Ejemplo: 'CacheSize',1500MB

Tipos de datos: double | single

LBFGS Options

contraer todo

Tamaño del búfer de historial para la aproximación de hessian para el solucionador, especificado como el par separado por comas que consta de un entero positivo.'lbfgs''HessianHistorySize' En cada iteración, la función utiliza las iteraciones más recientes para construir una aproximación al hessian inverso.HessianHistorySize

Ejemplo: 'HessianHistorySize',20

Tipos de datos: double | single

Tamaño de paso inicial para el solucionador, especificado como el par separado por comas que consta de un escalar real positivo.'lbfgs''InitialStepSize' De forma predeterminada, la función determina el tamaño del paso inicial automáticamente.

Tipos de datos: double | single

Método de búsqueda de línea, especificado como el par separado por comas que consta de uno de los siguientes:'LineSearchMethod'

  • — La búsqueda débil de la línea Wolfe'weakwolfe'

  • — Fuerte búsqueda de la línea Wolfe'strongwolfe'

  • — Búsqueda de la línea de backtracking'backtracking'

Ejemplo: 'LineSearchMethod','backtracking'

Número máximo de iteraciones de búsqueda de líneas, especificadas como el par separado por comas y que consta de un entero positivo.'MaxLineSearchIterations'

Ejemplo: 'MaxLineSearchIterations',25

Tipos de datos: double | single

Tolerancia de convergencia relativa en la norma de degradado para el solucionador, especificada como el par separado por comas que consta de y un escalar real positivo.lbfgs'GradientTolerance'

Ejemplo: 'GradientTolerance',0.000002

Tipos de datos: double | single

Opciones de SGD

contraer todo

Tasa de aprendizaje inicial para el solucionador, especificada como el par separado por comas que consta de un escalar real positivo.'sgd''InitialLearningRate'

Cuando se utiliza el tipo de solucionador, la velocidad de aprendizaje se descompone en iteraciones a partir del valor especificado para.'sgd''InitialLearningRate'

El valor predeterminado significa que la tasa de aprendizaje inicial se determina mediante experimentos en pequeños subconjuntos de datos.'auto' Utilice el argumento de par nombre-valor para especificar el número de iteraciones para ajustar automáticamente la tasa de aprendizaje inicial.NumTuningIterations Utilice el argumento de par nombre-valor para especificar el número de observaciones que se utilizarán para ajustar automáticamente la tasa de aprendizaje inicial.TuningSubsetSize

Para el tipo de solucionador, puede establecer un valor muy alto.'minibatch-lbfgs''InitialLearningRate' En este caso, la función aplica LBFGS a cada mini lote por separado con pesos de entidades iniciales del mini lote anterior.

Para asegurarse de que la tasa de aprendizaje inicial elegida disminuye el valor objetivo con cada iteración, trace los valores de versus los guardados en la propiedad.IterationObjectivemdl.FitInfo

Puede utilizar el método con el mismo para empezar desde la solución actual y ejecutar iteraciones adicionalesrefit'InitialFeatureWeights'mdl.FeatureWeights

Ejemplo: 'InitialLearningRate',0.9

Tipos de datos: double | single

Número de observaciones que se utilizarán en cada lote para el solucionador, especificado como el par separado por comas y que consta de un entero positivo de 1 a.'sgd''MiniBatchSize'n

Ejemplo: 'MiniBatchSize',25

Tipos de datos: double | single

Número máximo de pasadas a través de todas las observaciones para el solucionador, especificadas como el par separado por comas que consta de y un entero positivo.n'sgd''PassLimit' Cada paso a través de todos los datos se llama una época.

Ejemplo: 'PassLimit',10

Tipos de datos: double | single

Frecuencia de lotes para mostrar el Resumen de convergencia para el solucionador, especificado como el par separado por comas que consta de y un entero positivo.'sgd''NumPrint' Este argumento se aplica cuando el valor es mayor que 0. se procesan los minilotes para cada línea del Resumen de convergencia que se muestra en la línea de comandos.'Verbose'NumPrint

Ejemplo: 'NumPrint',5

Tipos de datos: double | single

Número de iteraciones de optimización para el solucionador, especificadas como el par separado por comas y que consta de un entero positivo.'sgd''NumTuningIterations' Esta opción solo es válida para.'InitialLearningRate','auto'

Ejemplo: 'NumTuningIterations',15

Tipos de datos: double | single

Número de observaciones que se utilizarán para ajustar la velocidad de aprendizaje inicial, especificada como el par separado por comas consistente en un valor entero positivo de 1 a.'TuningSubsetSize'n Esta opción solo es válida para.'InitialLearningRate','auto'

Ejemplo: 'TuningSubsetSize',25

Tipos de datos: double | single

Opciones de SGD o LBFGS

contraer todo

Número máximo de iteraciones, especificadas como el par separado por comas y que consta de un entero positivo.'IterationLimit' El valor predeterminado es 10000 para SGD y 1000 para LBFGS y mini-batch LBFGS.

Cada paso a través de un lote es una iteración. Cada paso a través de todos los datos es una época. Si los datos se dividen en minilotes, cada época equivale a iteraciones.kk

Ejemplo: 'IterationLimit',250

Tipos de datos: double | single

Tolerancia de convergencia en el tamaño del paso, especificado como el par separado por comas que consta de un escalar real positivo.'StepTolerance' El solucionador utiliza una tolerancia de paso absoluta y el solucionador utiliza una tolerancia de paso relativa.'lbfgs''sgd'

Ejemplo: 'StepTolerance',0.000005

Tipos de datos: double | single

Opciones de mini-batch LBFGS

contraer todo

Número máximo de iteraciones por paso mini-lote LBFGS, especificado como el par separado por comas que consta de un entero positivo.'MiniBatchLBFGSIterations'

Ejemplo: 'MiniBatchLBFGSIterations',15

Mini-batch LBFGS algorithm is a combination of SGD and LBFGS methods. Therefore, all of the name-value pair arguments that apply to SGD and LBFGS solvers also apply to the mini-batch LBFGS algorithm.

Tipos de datos: double | single

Argumentos de salida

contraer todo

Modelo de análisis de componentes de vecindad para la clasificación, devuelto como objeto.FeatureSelectionNCAClassification

Introducido en R2016b