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.

KDTreeSearcher

Cree el buscador de vecino más cercano de d-TreeK

Descripción

objetos de modelo almacenan los resultados de una búsqueda de vecino más cercano que utiliza el algoritmo de árbol d.KDTreeSearcherK Los resultados incluyen los datos de entrenamiento, la métrica de distancia y sus parámetros, y el número máximo de puntos de datos en cada nodo de hoja (es decir, el tamaño del bucket). El algoritmo de árbol-d particiona un conjunto de datos mediante la división recursiva de puntos en un espacio dimensional en un árbol binario.KnKnK

Una vez que cree un objeto de modelo, puede buscar en el árbol almacenado para buscar todos los puntos vecinos a los datos de la consulta realizando una búsqueda de vecino más cercano utilizando o una búsqueda de radio.KDTreeSearcherknnsearchrangesearch El algoritmo d-Tree es más eficiente que el algoritmo de búsqueda exhaustivo cuando es pequeño (es decir, ≤ 10), los conjuntos de entrenamiento y consulta no son escasos, y los conjuntos de entrenamiento y consulta tienen muchas observaciones.KKK

Creación

Utilice la función o la función (descrita aquí) para crear un objeto de modelo.creatensKDTreeSearcherKDTreeSearcher Ambas funciones usan la misma sintaxis excepto que la función tiene el argumento de par nombre-valor, que se usa para elegir el método de búsqueda de vecino más cercano.createns'NSMethod' La función también crea un objeto.creatensExhaustiveSearcher Especifique para crear un objeto.'NSMethod','kdtree'KDTreeSearcher El valor predeterminado es si ≤ 10, los datos de entrenamiento no son escasos, y la métrica de distancia es euclidiano, bloque de ciudad, Chebychev o Minkowski.'kdtree'K

Descripción

ejemplo

Mdl = KDTreeSearcher(X) crece un d-Tree predeterminado () usando la matriz-por-numérica de los datos de entrenamiento ().KMdlnKX

ejemplo

Mdl = KDTreeSearcher(X,Name,Value) especifica opciones adicionales mediante uno o varios argumentos de par nombre-valor. Puede especificar el número máximo de puntos de datos en cada nodo de hoja (es decir, el tamaño del bucket) y la métrica de distancia, y establecer la propiedad de parámetro de métrica de distancia ().DistParameter Por ejemplo, especifica utilizar la distancia Minkowski al buscar los vecinos más cercanos y utilizarlo para el tamaño del bucket.KDTreeSearcher(X,'Distance','minkowski','BucketSize',10)10 Para especificar, utilice el argumento de par nombre-valor.DistParameterP

Argumentos de entrada

expandir todo

Datos de entrenamiento que crecen el árbol-d, especificados como una matriz numérica. tiene filas, cada una correspondiente a una observación (es decir, una instancia o un ejemplo) y columnas, cada una correspondiente a un predictor (es decir, una característica).KXnK

Tipos de datos: single | double

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 utilizar lo siguiente al buscar vecinos más cercanos: la distancia Minkowski, para el exponente métrico de distancia Minkowski y para el tamaño del bucket.'Distance','minkowski','P',3,'BucketSize',10310

Métrica de distancia utilizada al llamar o para buscar los vecinos más cercanos para los puntos de consulta futuros, especificados como el par separado por comas que consta de uno de estos valores.knnsearchrangesearch'Distance'

ValorDescripción
'chebychev'Chebychev distancia (diferencia máxima de coordenadas).
'cityblock'Distancia de bloque de ciudad.
'euclidean'Distancia euclidiana.
'minkowski'Distancia Minkowski. El exponente predeterminado es 2. Para especificar un exponente diferente, utilice el argumento de par nombre-valor.'P'

Para obtener más información, consulte.Las métricas de distancia

El software no utiliza la métrica de distancia para crear un objeto de modelo, por lo que puede alterar la métrica de distancia utilizando la notación de puntos después de crear el objeto.KDTreeSearcher

Ejemplo: 'Distance','minkowski'

Exponente de la métrica de distancia Minkowski, especificada como el par separado por comas que consta de un escalar positivo.'P' Este argumento sólo es válido si es.'Distance''minkowski'

Ejemplo: 'P',3

Tipos de datos: single | double

Número máximo de puntos de datos en cada nodo hoja del árbol-d, especificado como el par separado por comas que consta de un entero positivo.K'BucketSize'

Ejemplo: 'BucketSize',10

Tipos de datos: single | double

Propiedades

expandir todo

Esta propiedad es de solo lectura.

Datos de entrenamiento que crecen el árbol-d, especificados como una matriz numérica. tiene filas, cada una correspondiente a una observación (es decir, una instancia o un ejemplo) y columnas, cada una correspondiente a un predictor (es decir, una característica).KXnK

El argumento de entrada de o establece esta propiedad.XcreatensKDTreeSearcher

Tipos de datos: single | double

Métrica de distancia utilizada al llamar o buscar los vecinos más cercanos para los puntos de consulta futuros, especificados como, o.knnsearchrangesearch'chebychev''cityblock''euclidean''minkowski'

El argumento de par nombre-valor de o establece esta propiedad.'Distance'creatensKDTreeSearcher

El software no utiliza la métrica de distancia para crear un objeto de modelo, por lo que puede alterarlo utilizando la notación de puntos.KDTreeSearcher

Distancia valores de parámetros métricos, especificados como Empty () o un escalar positivo.[]

Si es así, entonces es el exponente en la fórmula de distancia Minkowski.Distance'minkowski'DistParameter De lo contrario, es, lo que indica que la fórmula métrica de distancia especificada no tiene parámetros.DistParameter[]

El argumento de par nombre-valor de o establece esta propiedad.'P'creatensKDTreeSearcher

Puede modificar mediante la notación de puntos, por ejemplo,, donde es un escalar positivo.DistParameterMdl.DistParameter = PNewPNew

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Número máximo de puntos de datos en cada nodo hoja del árbol-d, especificado como un entero positivo.K

El argumento de par nombre-valor de o establece esta propiedad.'BucketSize'creatensKDTreeSearcher

Tipos de datos: single | double

Funciones del objeto

knnsearchBuscar-vecinos más cercanos mediante el objeto buscadork
rangesearchBuscar todos los vecinos dentro de la distancia especificada mediante el objeto buscador

Ejemplos

contraer todo

Cultivar un árbol-d de cuatro dimensiones que utiliza la distancia euclidiana.K

Cargue el conjunto de datos de iris de Fisher.

load fisheriris X = meas; [n,k] = size(X)
n = 150 
k = 4 

tiene 150 observaciones y 4 predictores.X

Crezca un d-Tree de cuatro dimensiones utilizando todo el conjunto de datos como datos de entrenamiento.K

Mdl1 = KDTreeSearcher(X)
Mdl1 =    KDTreeSearcher with properties:         BucketSize: 50          Distance: 'euclidean'     DistParameter: []                 X: [150x4 double]  

es un objeto de modelo y sus propiedades aparecen en la ventana de comandos.Mdl1KDTreeSearcher El objeto contiene información sobre el árbol-d de cuatro dimensiones crecido, como la métrica de distancia.K Puede modificar los valores de propiedad mediante la notación de puntos.

Alternativamente, puede cultivar un árbol-d usando.Kcreatens

Mdl2 = createns(X)
Mdl2 =    KDTreeSearcher with properties:         BucketSize: 50          Distance: 'euclidean'     DistParameter: []                 X: [150x4 double]  

es también un objeto de modelo, y es equivalente a.Mdl2KDTreeSearcherMdl1 Dado que tiene cuatro columnas y la métrica de distancia predeterminada es euclidiana, crea un modelo de forma predeterminada.XcreatensKDTreeSearcher

Para buscar los vecinos más cercanos en un lote de datos de consulta, pase el objeto de modelo y los datos de la consulta a o.XKDTreeSearcherknnsearchrangesearch

Cargue los datos de iris de Fisher. Concéntrese en las dimensiones del pétalo.

load fisheriris X = meas(:,[3 4]); % Predictors

Cultivar un d-Tree bidimensional usando y los datos de entrenamiento.Kcreatens Especifique la métrica de distancia Minkowski.

Mdl = createns(X,'Distance','Minkowski')
Mdl =    KDTreeSearcher with properties:         BucketSize: 50          Distance: 'minkowski'     DistParameter: 2                 X: [150x2 double]  

Dado que tiene dos columnas y la métrica de distancia es Minkowski, crea un objeto de modelo de forma predeterminada.XcreatensKDTreeSearcher

Acceda a las propiedades mediante la notación de puntos.Mdl Por ejemplo, utilice para acceder al exponente de distancia Minkowski.Mdl.DistParameter

Mdl.DistParameter
ans = 2 

Puede pasar datos de consulta y:Mdl

  • para encontrar índices y distancias de los vecinos más cercanosknnsearch

  • para buscar índices de todos los vecinos más cercanos dentro de una distancia que especifiquerangesearch

Cree un objeto de modelo y modifique la propiedad mediante la notación de puntos.KDTreeSearcherDistance

Cargue el conjunto de datos de iris de Fisher.

load fisheriris X = meas;

Crezca un d-Tree de cuatro dimensiones predeterminado utilizando todo el conjunto de datos como datos de entrenamiento.K

Mdl = KDTreeSearcher(X)
Mdl =    KDTreeSearcher with properties:         BucketSize: 50          Distance: 'euclidean'     DistParameter: []                 X: [150x4 double]  

Especifique que el buscador vecino utilice la métrica Minkowski para calcular las distancias entre los datos de entrenamiento y de consulta.

Mdl.Distance = 'minkowski'
Mdl =    KDTreeSearcher with properties:         BucketSize: 50          Distance: 'minkowski'     DistParameter: 2                 X: [150x4 double]  

Puede pasar y los datos de la consulta a cualquiera o para encontrar los vecinos más cercanos a los puntos de los datos de consulta en función de la distancia Minkowski.Mdlknnsearchrangesearch

Cultivar un objeto buscador vecino más cercano de d-Tree mediante la función.Kcreatens Pase el objeto y consulte los datos a la función para buscar los vecinos más cercanos.knnsearchk

Cargue el conjunto de datos de iris de Fisher.

load fisheriris

Quite cinco iris aleatoriamente de los datos del predictor para usarlos como conjunto de consultas.

rng(1);                     % For reproducibility n = size(meas,1);           % Sample size qIdx = randsample(n,5);     % Indices of query data tIdx = ~ismember(1:n,qIdx); % Indices of training data Q = meas(qIdx,:); X = meas(tIdx,:);

Cultivar un árbol-d de cuatro dimensiones usando los datos de entrenamiento.K Especifique la distancia de Minkowski para encontrar los vecinos más cercanos.

Mdl = createns(X,'Distance','minkowski')
Mdl =    KDTreeSearcher with properties:         BucketSize: 50          Distance: 'minkowski'     DistParameter: 2                 X: [145x4 double]  

Dado que tiene cuatro columnas y la métrica de distancia es Minkowski, crea un objeto de modelo de forma predeterminada.XcreatensKDTreeSearcher El exponente de distancia de Minkowski es por defecto.2

Busque los índices de los datos de entrenamiento () que son los dos vecinos más cercanos de cada punto de la consulta Data ().Mdl.XQ

IdxNN = knnsearch(Mdl,Q,'K',2)
IdxNN = 5×2

    17     4
     6     2
     1    12
    89    66
   124   100

Cada fila de corresponde a una observación de datos de consulta y el orden de columna corresponde al orden de los vecinos más cercanos, con respecto a la distancia ascendente.IdxNN Por ejemplo, basado en la distancia Minkowski, el segundo vecino más cercano de es.Q(3,:)X(12,:)

Capacidades ampliadas

Introducido en R2010a