sklearn.neighbors
.RadiusNeighborsClassifier¶
- class sklearn.neighbors.RadiusNeighborsClassifier¶
Clasificador que implementa un voto entre vecinos dentro de un radio determinado
Más información en el Manual de usuario.
- Parámetros
- radiusflotante, default=1.0
Rango del espacio de parámetros a usar por defecto para consultas
radius_neighbors
.- weights{“uniform”, “distance”} o invocable, default=”uniform”
función de ponderación utilizada en la predicción. Valores posibles:
“uniform” : ponderaciones uniformes. Todos los puntos de cada vecindario se ponderan por igual.
“distance” : ponderar los puntos por la inversa de su distancia. en este caso, los vecinos más cercanos de un punto de consulta tendrán una mayor influencia que los vecinos más alejados.
[callable] : una función definida por el usuario que acepta un arreglo de distancias, y devuelve un arreglo de la misma forma que contiene las ponderaciones.
Las ponderaciones uniformes se utilizan por defecto.
- algorithm{“auto”, “ball_tree”, “kd_tree”, “brute”}, default=”auto”
Algoritmo usado para calcular los vecinos más cercanos:
“ball_tree” usará
BallTree
“kd_tree” usará
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_sizeentero, 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.
- pentero, default=2
Parámetro de potencia para la métrica de Minkowski. Cuando p = 1, esto equivale a utilizar manhattan_distance (l1), y euclidean_distance (l2) para p = 2. Para p arbitrario, se utiliza minkowski_distance (l_p).
- metriccadena de caracteres o invocable, default=»minkowski”
la métrica de distancia a utilizar para el árbol. La métrica predeterminada es minkowski, y con p=2 es equivalente a la métrica Euclideana estándar. Ver la documentación de
DistanceMetric
para una lista de métricas disponibles. Si la métrica es «precomputed», se asume que X es una matriz de distancias y debe ser cuadrada durante el ajuste. X puede ser un grafo disperso, en cuyo caso sólo elementos «distintos de cero» pueden ser considerados vecinos.- outlier_label{manual label, “most_frequent”}, default=None
etiqueta para muestras atípicas (muestras sin vecinos en un radio determinado).
etiqueta manual: etiqueta cadena o entero (debe ser del mismo tipo que y) o lista de etiquetas manuales si se utiliza multi-salida.
“most_frequent” : asignar la etiqueta más frecuente de y a los atípicos.
None: cuando se detecta algún atípico, ValueError se levantará.
- metric_paramsdiccionario, default=None
Argumentos adicionales de la palabra clave para la función métrica.
- n_jobsentero, default=None
El número de trabajos paralelos a ejecutar para la búsqueda de vecinos.
None
significa 1 a menos que esté en un contextojoblib.parallel_backend
.-1
significa usar todos los procesadores. Consulta Glosario para más detalles.
- Atributos
- classes_ndarray de forma (n_classes,)
Etiquetas de clase conocidas por el clasificador.
- effective_metric_cadena de caracteres o invocable
La métrica de distancia utilizada. Será la misma que el parámetro
metric
o un sinónimo de la misma, por ejemplo,euclidean
si el parámetrometric
esminkowski
y el parámetrop
es 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_entero
Número de muestras en los datos ajustados.
- outlier_label_entero o array-like de forma (n_class,)
Etiqueta que se da para muestras atípicas (muestras sin vecinos en un radio determinado).
- outputs_2d_booleano
False cuando la forma de
y
es (n_samples, ) o (n_samples, 1) durante el ajuste, de lo contrario True.
Notas
Ver Nearest Neighbors en la documentación en línea para una discusión sobre la elección del
algorithm
y elleaf_size
.https://https://es.wikipedia.org/wiki/K_vecinos_m%C3%A1s_pr%C3%B3ximos
Ejemplos
>>> X = [[0], [1], [2], [3]] >>> y = [0, 0, 1, 1] >>> from sklearn.neighbors import RadiusNeighborsClassifier >>> neigh = RadiusNeighborsClassifier(radius=1.0) >>> neigh.fit(X, y) RadiusNeighborsClassifier(...) >>> print(neigh.predict([[1.5]])) [0] >>> print(neigh.predict_proba([[1.0]])) [[0.66666667 0.33333333]]
Métodos
Ajusta el clasificador de radio de vecinos a partir del conjunto de datos de entrenamiento.
Obtiene los parámetros de este estimador.
Predice las etiquetas de la clase para los datos proporcionados.
Devuelve las estimaciones de probabilidad para los datos de prueba X.
Encuentra a los vecinos dentro de un radio determinado de un punto o puntos.
Calcula el grafo (ponderado) de vecinos para los puntos de X
Devuelve la precisión media en los datos de prueba y las etiquetas dados.
Establece los parámetros de este estimador.
- fit()¶
Ajusta el clasificador de radio de vecinos 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.
- y{array-like, sparse matrix} de forma (n_samples,) o (n_samples, n_outputs)
Valores objetivo.
- Devuelve
- selfRadiusNeighborsClassifier
El clasificador de vecinos de radio ajustado.
- 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.
- predict()¶
Predice las etiquetas de la clase para los datos proporcionados.
- Parámetros
- Xarray-like de forma (n_queries, n_features), o (n_queries, n_indexed) si metric == “precomputed”
Muestras de prueba.
- Devuelve
- yndarray de forma (n_queries,) o (n_queries, n_outputs)
Etiquetas de clase para cada muestra de datos.
- predict_proba()¶
Devuelve las estimaciones de probabilidad para los datos de prueba X.
- Parámetros
- Xarray-like de forma (n_queries, n_features), o (n_queries, n_indexed) si metric == “precomputed”
Muestras de prueba.
- Devuelve
- pndarray de forma (n_queries, n_classes), o una lista de n_outputs
de dichos arreglos si n_outputs > 1. Las probabilidades de clase de las muestras de entrada. Las clases se ordenan por orden lexicográfico.
- radius_neighbors()¶
Encuentra a los vecinos dentro de un radio determinado de un punto o puntos.
Devuelve los índices y distancias de cada punto del conjunto de datos que se encuentra en una bola con el tamaño
radius
alrededor de los puntos del arreglo de consultas. Los puntos en el límite están incluidos en los resultados.Los puntos de resultado no necesariamente están ordenados por distancia a su punto de consulta.
- Parámetros
- Xarray-like de (n_samples, n_features), 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.
- radiusflotante, default=None
Limitando la distancia de vecinos a regresar. El valor predeterminado es pasado al constructor.
- return_distancebooleano, default=True
Si se devuelven o no las distancias.
- sort_resultsbooleano, default=False
Si es True, las distancias e índices serán ordenados antes de ser devueltos. Si es False, los resultados no se ordenarán. Si
return_distance=False
, al establecersort_results=True
se producirá un error.Nuevo en la versión 0.22.
- Devuelve
- neigh_distndarray de forma (n_samples,) de arreglos
Arreglo que representa las distancias a cada punto, sólo presente si
return_distance=True
. Los valores de la distancia se calculan según el parámetro del constructormetric
.- neigh_indndarray de forma (n_samples,) de arreglos
Un arreglo de arreglos de los puntos más cercanos aproximados de la matriz de población que se encuentran dentro de una bola de tamaño
radius
alrededor de los puntos de la consulta.
Notas
Debido a que el número de vecinos de cada punto no es necesariamente igual, los resultados para múltiples puntos de consulta no pueden encajar en un arreglo de datos estándar. Por eficiencia,
radius_neighbors
devuelve arreglos de objetos, donde cada objeto es un arreglo 1D de índices o distancias.Ejemplos
En el siguiente ejemplo, construimos una clase NeighborsClassifier 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]:
>>> import numpy as np >>> samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]] >>> from sklearn.neighbors import NearestNeighbors >>> neigh = NearestNeighbors(radius=1.6) >>> neigh.fit(samples) NearestNeighbors(radius=1.6) >>> rng = neigh.radius_neighbors([[1., 1., 1.]]) >>> print(np.asarray(rng[0][0])) [1.5 0.5] >>> print(np.asarray(rng[1][0])) [1 2]
El primer arreglo devuelto contiene las distancias a todos los puntos más cercanos a 1.6, mientras que el segundo arreglo devuelto contiene sus índices. En general, se pueden consultar varios puntos al mismo tiempo.
- radius_neighbors_graph()¶
Calcula el grafo (ponderado) de vecinos para los puntos de X
Las vecindades son los puntos restringidos a una distancia inferior al radio.
- Parámetros
- Xarray-like de forma (n_samples, n_features), 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.
- radiusflotante, default=None
Radio de los vecindarios. El valor predeterminado es pasado al constructor.
- mode{“connectivity”, “distance”}, default=”connectivity”
Tipo de matriz devuelta: “connectivity” devolverá la matriz de conectividad con unos y ceros, en “distance” los bordes son la distancia euclidiana entre puntos.
- sort_resultsbooleano, default=False
Si es True, en cada fila del resultado, las entradas que no sean de cero se ordenarán aumentando las distancias. Si es False, las entradas que no sean nulas no pueden ser ordenadas. Sólo se utiliza con mode=”distance”.
Nuevo en la versión 0.22.
- Devuelve
- Amatriz dispersa de forma (n_queries, n_samples_fit)
n_samples_fit
es el número de muestras en los datos especificadosA[i, j]
se le asigna la ponderación de borde que conectai
aj
. La matriz si de formato CSR.
Ver también
Ejemplos
>>> X = [[0], [3], [1]] >>> from sklearn.neighbors import NearestNeighbors >>> neigh = NearestNeighbors(radius=1.5) >>> neigh.fit(X) NearestNeighbors(radius=1.5) >>> A = neigh.radius_neighbors_graph(X) >>> A.toarray() array([[1., 0., 1.], [0., 1., 0.], [1., 0., 1.]])
- score()¶
Devuelve la precisión media en los datos de prueba y las etiquetas dados.
En la clasificación multietiqueta, se trata de la precisión del subconjunto, que es una métrica rigurosa, ya que se requiere para cada muestra que cada conjunto de etiquetas sea predicho correctamente.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Muestras de prueba.
- yarray-like de forma (n_samples,) o (n_samples, n_outputs)
Etiquetas verdaderas para
X
.- sample_weightarray-like de forma (n_samples,), default=None
Ponderaciones de muestra.
- Devuelve
- scoreflotante
Precisión media de
self.predict(X)
con respecto ay
.
- 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.