sklearn.neighbors
.KNeighborsTransformer¶
- class sklearn.neighbors.KNeighborsTransformer¶
Transformar X en un gráfico (ponderado) de k vecinos más cercanos
Los datos transformados son un gráfico disperso devuelto por kneighbors_graph.
Más información en el Manual de usuario.
Nuevo en la versión 0.22.
- Parámetros
- mode{“distance”, “connectivity”}, default=”distance”
Tipo de matriz devuelta: “connectivity” devolverá la matriz de conectividad con unos y ceros, y “distance” devolverá las distancias entre vecinos según la métrica dada.
- n_neighborsint, default=5
Número de vecinos para cada muestra en el gráfico disperso transformado. Por razones de compatibilidad, ya que cada muestra se considera como su propio vecino, se calculará un vecino adicional cuando mode == “distance”. En este caso, el gráfico disperso contiene (n_neighbors + 1) vecinos.
- algorithm{“auto”, “ball_tree”, “kd_tree”, “brute”}, default=”auto”
Algoritmo usado para calcular los vecinos más cercanos:
“ball_tree” will use
BallTree
“kd_tree” will use
KDTree
“brute” usará una búsqueda de fuerza bruta.
“auto” intentará decidir el algoritmo más apropiado basado en los valores pasados al método
fit
.
Nota: el ajuste en la entrada dispersa anulará el ajuste de este parámetro, utilizando la fuerza bruta.
- leaf_sizeint, default=30
Tamaño de hoja pasado a BallTree o KDTree. Esto puede afectar la velocidad de la construcción y la consulta, así como la memoria necesaria para almacenar el árbol. El valor óptimo depende de la naturaleza del problema.
- metriccadena o invocable, default=”minkowski”
métrica a utilizar para el cálculo de la distancia. Se puede utilizar cualquier métrica de scikit-learn o scipy.spatial.distance.
Si la métrica es una función invocable, se llama a cada par de instancias (filas) y se registra el valor resultante. El invocable debe tomar dos arreglos como entrada y devolver un valor que indique la distancia entre ellos. Esto funciona para las métricas de Scipy, pero es menos eficiente que pasar el nombre de la métrica como una cadena.
Las matrices de distancia no son compatibles.
Valores válidos para la métrica son:
de scikit-learn: [“cityblock”, “cosine”, “euclidean”, “l1”, “l2”, “manhattan”]
de scipy.spatial.distance: [“braycurtis”, “canberra”, “chebyshev”, “correlation”, “dice”, “hamming”, “jaccard”, “kulsinski”, “mahalanobis”, “minkowski”, “rogerstanimoto”, “russellrao”, “seuclidean”, “sokalmichener”, “sokalsneath”, “sqeuclidean”, “yule”]
Consulta la documentación de scipy.spatial.distance para obtener detalles sobre estas métricas.
- pint, default=2
Parámetro para la métrica de Minkowski de sklearn.metrics.pairwise.pairwise_distances. Cuando p = 1, esto es equivalente a usar manhattan_distance (l1), y euclidean_distance (l2) para p = 2. Para p arbitrario, se utiliza minkowski_distance (l_p).
- metric_paramsdict, default=None
Argumentos adicionales de palabras clave para la función métrica.
- n_jobsint, default=1
El número de trabajos paralelos a ejecutar para la búsqueda de vecinos. Si
-1
, el número de trabajos se establece en el número de núcleos de la CPU.
- Atributos
- effective_metric_cadena o invocable
La métrica de distancia utilizada. Será la misma que el parámetro
metric
o un sinónimo de ésta, por ejemplo, “euclidean” si el parámetrometric
se establece en “minkowski” y el parámetrop
se establece en 2.- effective_metric_params_dict
Argumentos adicionales para la función métrica. Para la mayoría de las métricas será lo mismo que el parámetro
metric_params
, pero también puede contener el valor del parámetrop
si el atributoeffective_metric_
se establece comominkowski
.- n_samples_fit_int
Número de muestras en los datos ajustados.
Ejemplos
>>> from sklearn.manifold import Isomap >>> from sklearn.neighbors import KNeighborsTransformer >>> from sklearn.pipeline import make_pipeline >>> estimator = make_pipeline( ... KNeighborsTransformer(n_neighbors=5, mode='distance'), ... Isomap(neighbors_algorithm='precomputed'))
Métodos
Ajustar el transformador de k-vecinos más cercanos a partir del conjunto de datos de entrenamiento.
Se ajustan los datos y luego se transforman.
Obtiene los parámetros para este estimador.
Encuentra a los K-vecinos de un punto.
Calcula el grafo (ponderado) de k-vecinos para los puntos de X
Establece los parámetros de este estimador.
Computes the (weighted) graph of Neighbors for points in X
- fit()¶
Ajustar el transformador de k-vecinos más cercanos a partir del conjunto de datos de entrenamiento.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features) o (n_samples, n_samples) si metric=”precomputed”
Datos del entrenamiento.
- Devuelve
- selfKNeighborsTransformador
El transformador de k vecinos más cercanos ajustado.
- fit_transform()¶
Se ajustan los datos y luego se transforman.
Ajusta el transformador a X e y con los parámetros opcionales fit_params y devuelve una versión transformada de X.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Conjunto de entrenamiento.
- yignorado
- Devuelve
- Xtmatriz dispersa de forma (n_samples, n_samples)
A Xt[i, j] se le asigna el peso de la arista que conecta i con j. Sólo los vecinos tienen un valor explícito. La diagonal es siempre explícita. La matriz tiene el formato CSR.
- get_params()¶
Obtiene los parámetros para este estimador.
- Parámetros
- deepbool, default=True
Si es True, devolverá los parámetros para este estimador y los sub objetos contenidos que son estimadores.
- Devuelve
- paramsdict
Nombres de parámetros mapeados a sus valores.
- kneighbors()¶
Encuentra a los K-vecinos de un punto.
Devuelve los índices y las distancias a los vecinos de cada punto.
- Parámetros
- Xarray-like, forma (n_queries, n_features), o (n_queries, n_indexed) si metric == “precomputed”, default=None
El punto o puntos de la consulta. Si no se proporciona, se devuelven los vecinos de cada punto indexado. En este caso, el punto de consulta no se considera su propio vecino.
- n_neighborsint, default=None
Número de vecinos necesarios para cada muestra. El valor predeterminado es el que se pasa al constructor.
- return_distancebool, default=True
Si se devuelven o no las distancias.
- Devuelve
- neigh_distndarray de forma (n_queries, n_neighbors)
Un arreglo que representa las longitudes de los puntos, sólo presente si return_distance=True
- neigh_indndarray de forma (n_queries, n_neighbors)
Indices de los puntos más cercanos en la matriz de la población.
Ejemplos
En el siguiente ejemplo, construimos una clase NearestNeighbors a partir de un arreglo que representa nuestro conjunto de datos y preguntamos cuál es el punto más cercano a [1,1,1]
>>> samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]] >>> from sklearn.neighbors import NearestNeighbors >>> neigh = NearestNeighbors(n_neighbors=1) >>> neigh.fit(samples) NearestNeighbors(n_neighbors=1) >>> print(neigh.kneighbors([[1., 1., 1.]])) (array([[0.5]]), array([[2]]))
Como puedes ver, devuelve [[0.5]], y [[2]], lo que significa que el elemento está a la distancia 0.5 y es el tercer elemento de las muestras (los índices empiezan en 0). También puede consultar varios puntos:
>>> X = [[0., 1., 0.], [1., 0., 1.]] >>> neigh.kneighbors(X, return_distance=False) array([[1], [2]]...)
- kneighbors_graph()¶
Calcula el grafo (ponderado) de k-vecinos para los puntos de X
- Parámetros
- Xarray-like de forma (n_queries, n_features), o (n_queries, n_indexed) si metric == “precomputed”, default=None
El punto o puntos de la consulta. Si no se proporciona, se devuelven los vecinos de cada punto indexado. En este caso, el punto de consulta no se considera su propio vecino. Para
metric='precomputed'
la forma debe ser (n_queries, n_indexed). En caso contrario, la forma debe ser (n_queries, n_features).- n_neighborsint, default=None
Número de vecinos para cada muestra. El valor predeterminado es el que se pasa al constructor.
- mode{“connectivity”, “distance”}, default=”connectivity”
Tipo de matriz devuelta: “connectivity” devolverá la matriz de conectividad con unos y ceros, en “distance” las aristas son la distancia euclidiana entre puntos.
- Devuelve
- Amatriz dispersa de forma (n_queries, n_samples_fit)
n_samples_fit
es el número de muestras en los datos ajustadosA[i, j]
se asigna el peso de la arista que conectai
conj
. La matriz tiene el formato CSR.
Ver también
Ejemplos
>>> X = [[0], [3], [1]] >>> from sklearn.neighbors import NearestNeighbors >>> neigh = NearestNeighbors(n_neighbors=2) >>> neigh.fit(X) NearestNeighbors(n_neighbors=2) >>> A = neigh.kneighbors_graph(X) >>> A.toarray() array([[1., 0., 1.], [0., 1., 1.], [1., 0., 1.]])
- 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()¶
Computes the (weighted) graph of Neighbors for points in X
- Parámetros
- Xarray-like de forma (n_samples_transform, n_features)
Datos de muestra.
- Devuelve
- Xtmatriz dispersa de forma (n_samples_transform, n_samples_fit)
A Xt[i, j] se le asigna el peso de la arista que conecta i con j. Sólo los vecinos tienen un valor explícito. La diagonal es siempre explícita. La matriz tiene el formato CSR.