Está en la página 1de 22

fscnca

La selección de características usando análisis de componentes vecinos para la clasificación

Sintaxis
md1 = fscenca (X, Y)
mdl = fscnca (X, Y, Nombre, Value)

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

fscnca aprende los pesos característica mediante una adaptación diagonal de


análisis de componentes barrio (NCA) con regularización.

mdl = fscnca (X, Y, Nombre, Value) realiza la selección de características para la


clasificación con opciones adicionales especificados por uno o más pares de
argumentos nombre-valor.
Ejemplos

Detectar las características relevantes de los datos mediante NCA para la Clasificación

Generar datos de juguete, donde la variable de respuesta depende de la 3, 9, y


15 de predictores.

Montar el modelo de análisis de componentes vecinos para la clasificación.

Trazar las características seleccionadas. Los pesos de las características son irrelevantes en
caso de que estén cerca de cero.
fscnca detecta correctamente determinadas características.

Identificar Características relevantes de Clasificación


Cargar datos de ejemplo

Este ejemplo utiliza la alta resolución de ovario conjunto de datos de cáncer que se ha
generado utilizando la matriz de proteína WCX2. La información es del banco de datos del
Programa de proteómica de la clínica FDA-NCI. Después de algunos pasos de
preprocesamiento, el conjunto de datos tiene dos variables: obs y grp. La variable obs consta
de 216 observaciones con 4000 funciones. Cada elemento de grp define el grupo al que
pertenece la fila correspondiente de obs.

Divida a los datos de entrenamiento y prueba

Utilizar los datos de dividir Cvpartitionto en un conjunto de entrenamiento de tamaño 160 y un


conjunto de prueba de tamaño 56.
Tanto el conjunto de entrenamiento y el equipo de prueba tienen más o menos las mismas
proporciones de grupo como en grp.

Determinar si la función de selección es necesario


Calcule withoutfitting error generalización.

Esta opción calcula el error de generalización de la función de modelo de análisis de


componentes barrio (NCA) selección a través de los pesos de características iniciales (en este
caso los pesos de funciones por defecto) previsto en fscnca.
Montar NCA sin parámetro de regularización (Lambda = 0)
El mejoramiento del valor de pérdida sugiere que la selección de características es una buena
idea. Sintonizaciónel valor A generalmente mejora los resultados.

Ajustar el parámetro de regularización para NCA utilizando cinco veces la validación


cruzada

Ajustar \ significa encontrar el valor \ que produce producir el mínimo de clasificación pérdida.
Para sintonizar A usando la validación cruzada:

1. Particionar los datos de entrenamiento en cinco pliegues y extraer la validación numberof


(prueba) conjuntos. Para cada pliegue, cvpartition asigna cuatro quintas partes Ofthe datos
como un conjunto de entrenamiento, y una quinta parte de los datos como un conjunto de
prueba.

Asignar un valor y crear una matriz para almacenar los valores de la función de pérdida.

2. Entrenar al NCA modelfor cada Un valor, utilizando el conjunto de entrenamiento en cada


pliegue.

3. Calcular la pérdida de clasificación para el conjunto de prueba correspondiente en el pliegue


utilizando el modelo de NCA. Registre el valor de pérdida.

4. Repita este proceso para todos los pliegues y todos los valores de lambda.

Calcular la pérdida media fromthefolds obtenidos para cada Un valor.

Representar gráficamente los valores medios de pérdida frente a los 4 valores.


Encontrar el mejor valor lambda que corresponde a la pérdida mínima.

Ajusta el modelo de los nca en todos los datos usando la mejor lambda y graficando las
características de los pesos.

Use el ibfgs solucionador y estandarice los valores predictores.


Calcular la pérdida de clasificación que utiliza el equipo de prueba.

Clasificar observaciones utilizando las características seleccionadas

Extraer las características con los pesos de características superiores a 0 partir de los datos de
entrenamiento.

Aplicar un clasificador de máquina de vectores de soporte utilizando las características


seleccionadas al conjunto training reducida.

Evaluar la precisión del clasificador entrenado en los datos de prueba que no ha sido utilizado
para la selección de características.
caracteristicas = Xtrain (:, selids);

syvmMdl = fitcsvm (características, ytrain);

L = pérdida (syvmMd1, XTEST (:, selidx), ytest)

L=

0,0174

“Tune Regularización de parámetros para detectar Funciones Uso de NCA para la


clasificación”
Los argumentos de entrada

valores de la variable X = Predictor


n-por-p matriz

Predictor valores de las variables, especificados como una matriz n-por-p, donde nis
el número de observaciones y p es el número de variables predictoras.
Tipos de datos: solo | doble

¥ - etiquetas de clase
vector categórica | vector de lógica | vector numérico | matriz de células de vectores de
caracteres de longitud n | matriz de caracteres con n filas

etiquetas de clase, especificado como un vector categórica, vector lógico, vector numérico,
matriz de células ofcharacter vectores oflength n, o matriz de caracteres con n filas, donde
NIS las ofobservations numéricas. Elemento i o fila 1 de ¥ es la etiqueta de clase
correspondiente a la fila 1 de X (observación 1).

Tipos de datos: solo | doble | lógica | Char | celular | categórico

Argumentos par nombre-valor

Especificar pares separados por comas opcionales de nombre, argumentos de valores.


Nombre es el nombre del argumento y el valor es el valor correspondiente. El nombre
debe aparecer entre comillas simples Meide (" '). Puede especificar varios de nombre y
valor de pares argumentos m cualquier orden que Namei, valueu, ..., NombreN, ValueNn.

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

Opciones de ajuste

'FitMethod' - Método para ajustar el modelo


'Exacta' (por defecto) | 'Ninguno' | 'promedio'

Método para ajustar el modelo, especificado como el par separada por comas que
consiste en 'FitMethod' y uno de los siguientes:

- 'Exacta' - Realiza apropiado el uso de todos los datos.


- 'Ninguno' - Nofitting. Utilice esta opción para evaluar el error generalización del
modelo NCA utilizando los pesos de características iniciales suministrados en la
llamada a fscnca.
- 'Promedio' - divide los datos en particiones (subconjuntos), se ajusta a cada
partición usando el método exacto, y devuelve el promedio deEl pesos de
características. Puede especificar los ofpartitions número con el nombre de
numPartitions-valor del argumento par.

Ejemplo: 'FitMethod', 'none'


Tipos de datos: char

'' numPartitions - Número de particiones max (2, min


(10, n)) (predeterminado) | imteger entre 2 y n

ofpartitions numéricos para dividir los datos para usar con 'FitMethod', opción 'medio',
especificado como el par separada por comas que consiste en 'numPartitions' y un
valor de número entero entre 2 y n, donde n es el número de observaciones.
Ejemplo: 'numPartitions', 15
Tipos de datos: doble | soltero
'Lambda' - parámetro de regularización
1 / n (predeterminado) | escalar no negativo

parámetro de regularización, especificado como el par separada por comas que


consiste en 'Lambda' y un escalar no negativo.

Para n observaciones, se espera que el mejor valor Lambda que minimiza el error
generalización deEl modelo NCA a ser un múltiplo de 1 / n.
Ejemplo: 'Lambda', 0,002
Tipos de datos: doble | soltero
* Escalas de longitud' - Anchura del grano
1 (por defecto) | escalar real positivo

Ancho deEl kernel, especificado como el par separada por comas que consiste en
'escalas de longitud' y un escalar real positivo.

Alength valor de la escala de 1 es sensata cuando todos los predictores son en la


misma escala. Siel predictores en X son ofvery diferentes magnitudes, y luego
considerar la estandarización de la
los valores de predicción utilizando 'Normalizar', verdaderos y el
establecimiento de 'escalas de longitud', T1. Ejemplo: 'escalas de longitud',
1,5
Tipos de datos: doble | soltero

'InitialFeatureWeights' - pesos de características iniciales


los (p, 1) (por defecto) | p-por-1 vector de escalares reales
positivas

los pesos de características iniciales, especificados como el par separada por comas
que consiste en * InitialFeatureWeights' y vector ap-por-1 ofreal escalares positivos,
donde p es la ofpredictors numéricos en los datos de entrenamiento.

La función objetivo regularizado para la optimización de pesos característica es


convexo. Como resultado, el uso de diferentes pesos de características iniciales puede
dar resultados diferentes. Configuración de todos los pesos de características iniciales a
1 por lo general funciona bien, pero en algunos casos, la inicialización aleatoria usando
rand (p, 1) puede dar soluciones de mejor calidad.

Tipos de datos: doble | soltero

'' - Pesos pesos de observación


n-por-1 vector de 1s (por defecto) | n-por-1 vector de escalares reales positivas

los pesos de observación, especificados como el par separada por comas que consiste
en '' ObservationWeights y un vector de n-por-1 de escalares reales positivas. Utilizar
pesos de observación para especificar mayor importancia de algunas observaciones
en comparación con los demás. los
pesos por defecto asigna la misma importancia a todas las observaciones.
Tipos de datos: doble | soltero

'previo' - Las probabilidades previas para cada clase


“Empírica (por defecto) | 'uniforme' | estructura

Las probabilidades previas para cada clase, especificados como el par separada por
comas que consiste en 'Antes' y uno deEl siguiente:

- 'Empírica' - fscnca obtiene las probabilidades de clase anteriores de frecuencias de


clase.
- 'Uniforme' - fscnca establece todas las probabilidades de clase iguales.
- Estructura con dos campos:

- ClassProbs - vector de probabilidades de clase. Si estos son los valores


numéricos con un mayor número de 1, fsnca normaliza les permite añadir
hasta 1.
- Classnames - Los nombres de clases correspondientes a las
probabilidades de clase en ClassProbs.

Ejemplo: 'Antes', 'uniforme'


Tipos de datos: char | struct

"Estandarizar' - Indicador para la normalización de los datos


predictor O (por defecto) | 1

Indicador para la normalización de los datos de predicción, especificados como el par


separada por comas que consiste en 'Estandarizar' y, o bien 0 (falso) o 1 (verdadero).
Para obtener más información, consulte “Impacto de Normalización” en la página 15-131.
Ejemplo: 'Estandarizar', t
Tipos de datos: lógica
'Detallado' - Indicador del nivel de verbosidad
0 (por defecto) | 1 | > 1

Indicador de nivel de verbosidad de la pantalla de resumen de convergencia, especificado


como el par separada por comas que consiste en 'Verbose' y uno de los siguientes:

- No hay un resumen de convergencia O-


- 1- Resumen de Convergencia, incluidos los valores de la función objetivo ofgradient
norma y
- > 1- Más información convergencia, según el algoritmo de ajuste

Cuando se utiliza solucionador 'minibatch-lbfgs' y nivel de verbosidad => 1, la


información de la convergencia incluye iteración el registro de LBFGSfits minibatch
intermedios.

Ejemplo: 'Verbose', 1
Tipos de datos: doble | soltero
'Solver' - Tipo de Solver
'lbfgs * | '' Sgqd' | '' minibatch-lbfgs

Tipo de Solver para la estimación de los pesos de características, especificado como


el par separada por comas que consiste en 'Solver' y uno deEl siguiente:

- '' - lbfgs memoria limitada Broyden- Fletcher-Goldfarb-Shanno (lbfgs) algoritmo


- '' Sgd' - descenso de gradiente estocástico (SGD) algoritmo
- 'Mainibatch-lbfgs' - descenso de gradiente estocástico con LBFGSalgorithm apphed a
los mini-lotes

Por defecto es '1lbfgs' para n = 1000, y 'sgd' para n> 1000.


Ejemplo: 'solver', 'minibatch-lbfgs'
Tipos de datos: char

'LossFunction' - función de pérdida


'Classiferror''(por defecto) | identificador de función

función de pérdida, especificado como el par separada por comas que consiste en
'LossFunction' y uno de los siguientes.

- 'Classiferror' - error de clasificación, que se define como

1n

i=1

donde k; es la clase predicha y ¢; es la verdadera clase para i observación. I (k; + f;)

esel indicador para cuando el Y; no es el mismo que f; .

- identificador de función - la pérdida de la función personalizada. Por ejemplo, para


la 'LossFunction', L nombre-valor par, L debe tener la siguiente forma:

L = lossFen (Yn, Ym)


Yn es un vector de n-por-1 y Ym es un vector de m-por-1. L es una matriz de n por m
ofloss valores tales que L (i, j) es el valor de pérdida por Yn (i) y Ym (j).

Ejemplo: 'LossFunction', L
Tipos de datos: char | function_handle

"CacheSize' - Tamaño de la memoria


1000 MB (predeterminado) | entero

Tamaño de la memoria, en MB, que se utilizará para la función objetivo y el cálculo del
gradiente, tal como se especifica el par separada por comas que consiste en
'CacheSize' y un entero.

Ejemplo: 'CacheSize', 1500MB


Tipos de datos: doble | soltero

Opciones lbfgs

'HessianHistorySize' - Tamaño de la historia bufferfor aproximación de


Hesse 15 (por defecto) | entero positivo
Tamaño ofhistory tampón para la aproximación de Hesse para el solucionador 'lbfgs',
especificado como el par separada por comas que consiste en 'HessianHistorySize' y
entero positivo. En cada iteración de la función utiliza los más recientes iteraciones
HessianHistorySizZe para construir una aproximación a la inversa de Hesse.

Ejemplo: 'HessianHistorySize', 20
Tipos de datos: doble | soltero

'InitialStepSize' - Tamaño inicial paso


'Auto' (por defecto) | escalar real positivo

tamaño de paso inicial para el solucionador 'lbfgs', especificado como el par separada
por comas que consiste en 'InitialStepSize' Anda escalar real positivo. Por defecto, la
función determina el tamaño inicial paso automáticamente.
Tipos de datos: doble | soltero

'LineSearchMethod' - método de búsqueda Línea


* Weakwolfe'(por defecto) | 'Strongwolfe' | 'Marcha atrás'

método de búsqueda de línea, especificado como el par separada por


comas que consiste en * "LineSearchMethod' y uno deEl siguiente:

- '' Weakwolfe' - Débil búsqueda line Wolfe


- 'Strongwolfe' - Fuerte de búsqueda de línea Wolfe
- 'Retroceso' - Búsqueda línea Backtracking

Ejemplo: 'LineSearchMethod', '' backtracking


Tipos de datos: char

'' MaxLineSearchIterations - Número máximo de iteraciones línea de


búsqueda 20 (por defecto) | entero positivo

Número máximo ofline iteraciones de búsqueda, especificado como el par


separada por comas que consiste en '' MaxLineSearchIterations y número entero
positivo.

Ejemplo: 'MaxLineSearchIterations', 25
Tipos de datos: doble | soltero

'GradientTolerance' - tolerancia de convergencia relativa


1e-6 (por defecto) | escalar real positivo
tolerancia de convergencia relativa en la norma del gradiente para solucionador 1bfgSs,
especificado como el par separada por comas que consiste en 'GradientTolerance' Anda
escalar real positivo.

Ejemplo: 'GradientTolerance'', 0.000002


Tipos de datos: doble | soltero

Opciones SGD

'InitialLearningRate' - tasa de aprendizaje inicial para solucionador


'SGD' 'Auto' (por defecto) | escalar real positivo

tasa de aprendizaje inicial para el 'sgd' solucionador, especificado como el par


separada por comas que consiste en 'InitialLearningRate' Anda escalar real
positivo.

Cuando se utiliza el tipo solucionador 'sgd', la tasa de aprendizaje decae más de


iteraciones que comienzan con el valor especificado para 'InitialLearningRate'.

El 'auto' por defecto significa que la tasa de aprendizaje inicial se determina mediante
experimentos en pequeños subconjuntos de datos. Utilice el argumento nombre-valor par
NumTuningIterations para especificar los números ofiterations para sintonizar
automáticamente la velocidad de aprendizaje inicial.
Utilice el argumento nombre-valor par TuningSubsetSize para especificar el
número de observaciones a utilizar para el ajuste automáticamente la velocidad de
aprendizaje inicial.

Para el tipo de solucionador 'minibatch-lbfgs', conjunto youcan Toa valor muy alto
'InitialLearningRate'. En este caso, la función se aplica lbfgs a cada mini-lote por
separado con los pesos de características iniciales de los últimos mini-lotes.

Para asegurarse de que la tasa de aprendizaje inicial elegido disminuye el valor objetivo
con cada iteración, la trama de la iteración en comparación con los valores objetivos
guardados en la md1.FitInfo
propiedad.
Se puede utilizar el método de volver a montar con 'InitialFeatureWeights' igual a
md1.FeatureWeights para comenzar a partir de la solución actual y efectuar iteraciones
adicionales

Ejemplo: 'InitialLearningRate'', 0,9


Tipos de datos: doble | soltero

'MiniBatchSize' - Número de observaciones a utilizar en cada lote para el 'SGD'


solucionador min (10.n) (por defecto) | valor entero positivo de 1 tonelada
Número de observaciones a utilizar en cada lote para el 'sgd' solucionador, especificado
como el par separada por comas que consiste en 'MiniBatchSize' y un número entero
positivo de 1 a ri.
Ejemplo: 'MiniBatchSize', 25

Tipos de datos: doble | soltero

'' PassLimit' - Número máximo de pases para solucionador


'SGD' 5 (por defecto) | entero positivo

Número máximo ofpasses throwch todas las n observaciones para solucionador 'Sqd',
especificados como el par separada por comas que consiste en 'PassLimit' y una mteger
positivo. Cada paso a través de todos los 1s datos llamado una época.

Ejemplo: 'PassLimit', 10

Tipos de datos: doble | soltero

'NumPrint' - Frecuencia de los lotes para la visualización de resumen de


convergencia 10 (por defecto) | valor entero positivo

ofbatches de frecuencia para mostrar resumen de convergencia para el solucionador 'sgd',


especificado como el par separada por comas que consiste en 'NumPrint' y un número
entero positivo. Este argumento manzanas cuando el valor de 'detallado' es mayor que 0.
NumPrint MIM-lotes se procesan para cada lima del resumen de convergencia que se
muestra en la HNE comando.
Ejemplo: 'NumPrint', 5

Tipos de datos: doble | soltero

'' NumTuningIterations - Número de iteraciones de ajuste


20 (por defecto) | entero positivo

Número de iteraciones de ajuste para el solucionador 'sgd', especificado como el par


separada por comas que consiste en 'NumTuninglterations' y un número entero positivo.
Esta opción es válida sólo para 'InitialLearningRate', 'auto'.

Ejemplo: 'NumTuningIterations', 15
Tipos de datos: doble | soltero

'TuningSubsetSize' - Número de observaciones a utilizar para el ajuste de la tasa


inicial de aprendizaje min (100, n) (predeterminado) | valor entero positivo de 1
tonelada
observaciones numberof a utilizar para el ajuste de la tasa de aprendizaje inicial, especificado
como el par separada por comas que consiste en 'TuningSubsetSize' y un valor de número
entero positivo de 1 a n. Esta opción es válida sólo para 'InitialLearningRate', 'auto'.
Ejemplo: 'TuningSubsetSize', 25
Tipos de datos: doble | soltero

Opciones SGD o lbfgs

* IterationLimit' - Número máximo de iteraciones entero


positivo

iteraciones numberof máxima, especificados como el par separada por comas que consiste
en “iterationLimit' y un número entero positivo. El valor predeterminado es 10000 para SGD
y 1000 para
LBFGSand lbfgs mini-lotes.

Cada paso a través de un lote es una iteración. Cada pase a través de todos los datos es una
época.
Si los datos se divide en k mini-lotes, a continuación, cada época es equivalente a k
iteraciones.

Ejemplo: 'iterationLimit', 250


Tipos de datos: doble | soltero

'StepTolerance' - tolerancia de convergencia en el tamaño de paso


le-6 (por defecto) | escalar real positivo

tolerancia de convergencia en el tamaño del paso, especificado como el par separada por
comas que consiste
de 'StepTolerance' Anda escalar real positivo. El solucionador 'lbfgs' utiliza una tolerancia
absoluta paso. y el solucionador 'sgd' utiliza una tolerancia paso relativo.

Ejemplo: 'StepTolerance', 0.000005


Tipos de datos: doble | soltero

Mini-Batch Opciones lbfgs

'' MiniBatchLBFGSIterations - Número máximo de iteraciones por lbfgs mini-lotes

10 (por defecto) | entero positivo


iteraciones numberof máximos por LBFGSstep mini-lote, especificados como el par
separada por comas que consiste en '' MiniBatchLBFGSIterations y un entero positivo.
Ejemplo: 'MiniBatchLBFGSIterations', 15

Mini-batch LEFGS algoritmo es una combinación de métodos 5GD y lbfgs.


Por lo tanto, todos los de nombre y valor del par de argumentos que se aplican a
5GD y lbfgs solucionadores también se aplican al algoritmo lbfgs mini-lotes.

Tipos de datos: doble | soltero

Argumentos de salida

md1 - Barrio modelo de análisis de componentes para la

clasificación objeto FeatureSelectionNCAGlassification

modelo de análisis de componentes Barrio para la clasificación,


devuelve como una objeto FeatureSelectionNCAClassification.

También podría gustarte