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.

createns

Crear objeto buscador vecino más cercano

Descripción

ejemplo

NS = createns(X) crea un objeto de modelo o mediante la matriz-por-numérica de los datos de entrenamiento.ExhaustiveSearcherKDTreeSearchernKX

ejemplo

NS = createns(X,Name,Value) especifica opciones adicionales mediante uno o varios argumentos de par nombre-valor. Por ejemplo, puede especificar para determinar qué tipo de objeto se creará.NSMethod

Ejemplos

contraer todo

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

Prepare un buscador de vecinos exhaustivo más cercano utilizando todo el conjunto de datos como datos de entrenamiento.

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

es un objeto de modelo y sus propiedades aparecen en la ventana de comandos.Mdl1ExhaustiveSearcher El objeto contiene información sobre el algoritmo entrenado, como la métrica de distancia. Puede modificar los valores de propiedad mediante la notación de puntos.

Como alternativa, puede preparar un buscador de vecino más cercano exhaustivo utilizando y especificando como el método de búsqueda.createns'exhaustive'

Mdl2 = createns(X,'NSMethod','exhaustive')
Mdl2 =    ExhaustiveSearcher with properties:           Distance: 'euclidean'     DistParameter: []                 X: [150x4 double]  

es también un objeto de modelo, y es equivalente a.Mdl2ExhaustiveSearcherMdl1

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

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

Cultivar un árbol-d que utiliza la distancia Minkowski con un exponente de cinco.K

Cargue el conjunto de datos de iris de Fisher. Cree una variable para las cotas de pétalo.

load fisheriris X = meas(:,3:4);

Cultivar un árbol-d.K Especifique la distancia de Minkowski con un exponente de cinco.

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

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

Cree un objeto de buscador exhaustivo utilizando la función.createns 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('default');             % For reproducibility n = size(meas,1);           % Sample size qIdx = randsample(n,5);     % Indices of query data X = meas(~ismember(1:n,qIdx),:); Y = meas(qIdx,:);

Prepare un buscador de vecinos exhaustivo más cercano utilizando los datos de entrenamiento. Especifique la distancia de Mahalanobis para encontrar los vecinos más cercanos.

Mdl = createns(X,'Distance','mahalanobis')
Mdl =    ExhaustiveSearcher with properties:           Distance: 'mahalanobis'     DistParameter: [4x4 double]                 X: [145x4 double]  

Dado que la métrica de distancia es Mahalanobis, crea un objeto de modelo de forma predeterminada.creatensExhaustiveSearcher

El software utiliza la matriz de covarianza de los predictores (columnas) en los datos de entrenamiento para calcular la distancia de Mahalanobis. Para mostrar este valor, utilice.Mdl.DistParameter

Mdl.DistParameter
ans = 4×4

    0.6547   -0.0368    1.2320    0.5026
   -0.0368    0.1914   -0.3227   -0.1193
    1.2320   -0.3227    3.0671    1.2842
    0.5026   -0.1193    1.2842    0.5800

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

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

     5     6
    98    95
   104   128
   135    65
   102   115

Cada fila de corresponde a una observación de datos de consulta.IdxNN El orden de las columnas corresponde al orden de los vecinos más cercanos con respecto a la distancia ascendente. Por ejemplo, basado en la métrica Mahalanobis, el segundo vecino más cercano de is.Y(3,:)X(128,:)

Argumentos de entrada

contraer todo

Datos de entrenamiento, 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).XnK

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: crea un objeto de modelo que utiliza la métrica de distancia Mahalanobis al buscar los vecinos más cercanos.NS = createns(X,'Distance','mahalanobis')ExhaustiveSearcher

Para los buscadores de vecinos más cercanos de d-Tree exhaustivosK

contraer todo

Método de búsqueda de vecino más cercano utilizado para definir el tipo de objeto creado, especificado como el par separado por comas que consta de y o.'NSMethod''kdtree''exhaustive'

  • 'kdtree' createns crea un objeto de modelo mediante el algoritmo de árbol d.KDTreeSearcherK

  • 'exhaustive' createns crea un objeto de modelo utilizando el algoritmo de búsqueda exhaustivo.ExhaustiveSearcher

El valor predeterminado es cuando estas tres condiciones son verdaderas:'kdtree'

  • El número de columnas de () es menor o igual a 10 (es decir, ≤ 10).XKK

  • no es escaso.X

  • es,,, o.Distance'euclidean''cityblock''chebychev''minkowski'

De lo contrario, el valor predeterminado es.'exhaustive'

Ejemplo: 'NSMethod','exhaustive'

Métrica de distancia utilizada cuando se llama o para buscar los vecinos más cercanos para los puntos de consulta futuros, especificado como el par separado por comas que consta de un vector de caracteres o un escalar de cadena de nombre de métrica de distancia o identificador de función.knnsearchrangesearch'Distance'

Para ambos tipos de buscadores de vecinos más cercanos, createns admite estas métricas de distancia.

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'

Si createns utiliza el algoritmo de búsqueda exhaustiva (IS), a continuación,'NSMethod''exhaustive' createns también admite estas métricas de distancia.

ValorDescripción
'correlation'Uno menos la correlación lineal de la muestra entre las observaciones (tratadas como secuencias de valores)
'cosine'Uno menos el coseno del ángulo incluido entre las observaciones (tratado como vectores de fila)
'hamming'Distancia de Hamming, que es el porcentaje de coordenadas que difieren
'jaccard'Uno menos el coeficiente Jaccard, que es el porcentaje de coordenadas distintas de cero que difieren
'mahalanobis'Mahalanobis distancia
'seuclidean'Distancia euclidiana estandarizada
'spearman'Uno menos la correlación de rango de Spearman de muestra entre las observaciones (tratadas como secuencias de valores)

Si utiliza el algoritmo de búsqueda exhaustivo (es), también puede especificar un identificador de función para una métrica de distancia personalizada mediante (por ejemplo,).createns'NSMethod''exhaustive'@@distfun Una función de distancia personalizada debe:

  • Tenga el formulario.function D2 = distfun(ZI,ZJ)

  • Tome como argumentos:

    • Un 1 por vector que contiene una sola fila desde o hacia los puntos de consulta, donde es el número de columnas en.KZIXYKX

    • Una-por-matriz que contiene varias filas de o, donde es un entero positivo.mKZJXYm

  • Devuelve un vector de distancias de un-por-1, dondemD2 D2(j) es la distancia entre las observaciones yZI ZJ(j,:).

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

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

Para los buscadores de vecinos más cercanos

contraer todo

Matriz de covarianza para la métrica de distancia de Mahalanobis, especificada como el par separado por comas que consta de una matriz definida y una por positivo, donde está el número de columnas.'Cov'KKKX Este argumento sólo es válido si es.'Distance''mahalanobis'

Ejemplo: 'Cov',eye(3)

Tipos de datos: single | double

Valor de parámetro de escala para la métrica de distancia euclidiana estandarizada, especificada como el par separado por comas que consta de un vector numérico de longitud no negativo, donde es el número de columnas.'Scale'KKX El software escala cada diferencia entre los datos de entrenamiento y consulta utilizando el elemento correspondiente de.Scale Este argumento sólo es válido si es.'Distance''seuclidean'

Ejemplo: 'Scale',quantile(X,0.75) - quantile(X,0.25)

Tipos de datos: single | double

Para los buscadores de vecinos más cercanos usando d-TreeK

contraer todo

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'

Este argumento sólo es válido cuando se crea un objeto de modelo.KDTreeSearcher

Ejemplo: 'BucketSize',10

Tipos de datos: single | double

Argumentos de salida

contraer todo

Buscador de vecino más cercano, devuelto como un objeto de modelo o un objeto de modelo.ExhaustiveSearcherKDTreeSearcher

Una vez que cree un objeto de modelo buscador de vecino más cercano, puede encontrar los puntos vecinos en los datos de entrenamiento a los datos de la consulta realizando una búsqueda de vecino más cercano utilizando o una búsqueda de radio.knnsearchrangesearch

Introducido en R2010a