sklearn.neighbors
.NeighborhoodComponentsAnalysis¶
- class sklearn.neighbors.NeighborhoodComponentsAnalysis¶
Análisis de componentes del vecindario
El análisis de Componentes del Vecindario (Neighborhood Component Analysis, NCA) es un algoritmo de aprendizaje automático para el aprendizaje métrico. Aprende una transformación lineal de forma supervisada para mejorar la precisión de la clasificación de una regla estocástica de vecinos más cercanos en el espacio transformado.
Más información en el Manual de usuario.
- Parámetros
- n_componentsentero, default=None
Dimensionalidad preferida del espacio proyectado. Si es None se establecerá en
n_features
.- init{“auto”, “pca”, “lda”, “identity”, “random”} o ndarray de la forma (n_features_a, n_features_b), default=”auto”
Inicialización de la transformación lineal. Las opciones posibles son “auto”, “pca”, “lda”, “identity”, “random” y una matriz numérica de forma (n_features_a, n_features_b).
- “auto”
Dependiendo de
n_components
, la inicialización más razonable será elegida. Sin_components <= n_classes
usamos “lda”, ya que usa información de etiquetas. Si no, peron_components < min(n_features, n_samples)
, usamos “pca”, ya que proyecta datos en direcciones significativas (aquellas de mayor varianza). De lo contrario, sólo utilizaremos la «identity».- “pca”
Los componentes principales
n_components
de las entradas pasadas afit
serán usados para inicializar la transformación. (VerPCA
)- “lda”
min(n_components, n_classes)
los componentes más discriminativos de las entradas pasadas afit
serán usados para inicializar la transformación. (Sin_components > n_classes
, el resto de los componentes serán cero.) (VerLinearDiscriminantAnalysis
)- “identity”
Si
n_components
es estrictamente menor que la dimensionalidad de las entradas pasadas afit
, la matriz de identidad será truncada a las primeras filasn_components
.- “random”
La transformación inicial será un arreglo aleatorio de forma
(n_components, n_features)
. Cada valor es muestreado de la distribución normal estándar.- arreglo numpy
n_features_b debe coincidir con la dimensionalidad de las entradas pasadas a
fit
y n_features_a debe ser menor o igual a eso. Sin_components
no es None, n_features_a debe coincidirlo.
- warm_startbooleano, default=False
Si es True y
fit
ha sido llamado antes, la solución de la llamada anterior afit
se utiliza como la transformación lineal inicial (n_components
einit
serán ignorados).- max_iterentero, default=50
Número máximo de iteraciones en la optimización.
- tolflotante, default=1e-5
Tolerancia de conversión para la optimización.
- callbackinvocable, default=None
Si no es None, esta función es llamada después de cada iteración del optimizador, tomando como argumentos la solución actual (matriz de transformación aplanada) y el número de iteraciones. Esto puede ser útil en caso de que uno quiera examinar o almacenar la transformación encontrada después de cada iteración.
- verboseentero, default=0
Si es 0, no se imprimirán mensajes de progreso. Si es 1, los mensajes de progreso se imprimirán en stdout. Si > 1, los mensajes de progreso se imprimirán y el parámetro
disp
descipy.optimize.minimize
se establecerá enverbose - 2
.- random_stateentero o numpy.Randomstate, default=None
Un objeto generador de números pseudoaleatorios o una semilla para él si es int. Si
init='random'
,random_state
se utiliza para inicializar la transformación aleatoria. Siinit='pca'
,random_state
se pasa como argumento a PCA cuando se inicializa la transformación. Pasa un entero para obtener resultados reproducibles a través de múltiples llamadas a la función. Ver :term:Glosario <random_state>
.
- Atributos
- components_ndarray de forma (n_components, n_features)
La transformación lineal aprendida durante el ajuste.
- n_iter_entero
Cuenta el número de iteraciones realizadas por el optimizador.
- random_state_numpy.RandomState
Objeto generador de números pseudoaleatorio utilizado durante la inicialización.
Referencias
- 1
J. Goldberger, G. Hinton, S. Roweis, R. Salakhutdinov. «Neighbourhood Components Analysis». Advances in Neural Information Processing Systems. 17, 513-520, 2005. http://www.cs.nyu.edu/~roweis/papers/ncanips.pdf
- 2
Entrada de Wikipedia sobre el Análisis de Componentes del Vecindario https://en.wikipedia.org/wiki/Neighbourhood_components_analysis
Ejemplos
>>> from sklearn.neighbors import NeighborhoodComponentsAnalysis >>> from sklearn.neighbors import KNeighborsClassifier >>> from sklearn.datasets import load_iris >>> from sklearn.model_selection import train_test_split >>> X, y = load_iris(return_X_y=True) >>> X_train, X_test, y_train, y_test = train_test_split(X, y, ... stratify=y, test_size=0.7, random_state=42) >>> nca = NeighborhoodComponentsAnalysis(random_state=42) >>> nca.fit(X_train, y_train) NeighborhoodComponentsAnalysis(...) >>> knn = KNeighborsClassifier(n_neighbors=3) >>> knn.fit(X_train, y_train) KNeighborsClassifier(...) >>> print(knn.score(X_test, y_test)) 0.933333... >>> knn.fit(nca.transform(X_train), y_train) KNeighborsClassifier(...) >>> print(knn.score(nca.transform(X_test), y_test)) 0.961904...
Métodos
Ajusta el modelo de acuerdo a los datos de entrenamiento dados.
Se ajustan los datos y luego se transforman.
Obtiene los parámetros de este estimador.
Establece los parámetros de este estimador.
Se aplica la transformación aprendida a los datos dados.
- fit()¶
Ajusta el modelo de acuerdo a los datos de entrenamiento dados.
- Parámetros
- Xarray-like de forma (n_samples_X, n_features)
Las muestras de entrenamiento.
- yarray-like de forma (n_samples,)
Las etiquetas de entrenamiento correspondientes.
- Devuelve
- selfobjeto
devuelve un modelo de NeighborhoodComponentsAnalysis entrenado.
- fit_transform()¶
Se ajustan los datos y luego se transforman.
Ajusta el transformador a
X
yy
con los parámetros opcionalesfit_params
y devuelve una versión transformada deX
.- Parámetros
- Xarray-like de forma (n_samples_X, n_features)
Muestras de entrada.
- yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None
Valores objetivo (None para transformaciones no supervisadas).
- **fit_paramsdict
Parámetros de ajuste adicionales.
- Devuelve
- X_newarreglo ndarray de forma (n_samples, n_features_new)
Arreglo transformado.
- get_params()¶
Obtiene los parámetros de este estimador.
- Parámetros
- deepbooleano, default=True
Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.
- Devuelve
- paramsdict
Nombres de parámetros mapeados a sus valores.
- set_params()¶
Establece los parámetros de este estimador.
El método funciona tanto con estimadores simples como en objetos anidados (como
Pipeline
). Estos últimos tienen parámetros de la forma<component>__<parameter>
para que sea posible actualizar cada componente de un objeto anidado.- Parámetros
- **paramsdict
Parámetros del estimador.
- Devuelve
- selfinstancia del estimador
Instancia de estimador.
- transform()¶
Se aplica la transformación aprendida a los datos dados.
- Parámetros
- Xarray-like de forma (n_samples_X, n_features)
Muestras de datos.
- Devuelve
- X_embedded: ndarray de forma (n_samples, n_components)
Las muestras de datos transformadas.
- Plantea
- NotFittedError
Si
fit
no ha sido llamado antes.