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.

kmedoids

-medoids clusteringk

Descripción

ejemplo

idx = kmedoids(X,k) realiza para dividir las observaciones de la matriz en clústeres y devuelve un vector de-por-1 que contiene índices de clúster de cada observación.-medoids clusteringknpXknidx Las filas de corresponden a puntos y columnas corresponden a variables.X De forma predeterminada, utiliza la métrica de distancia euclidiana cuadrada y lakmedoids -Means + + algoritmok para elegir las posiciones iniciales de medoides del clúster.

idx = kmedoids(X,k,Name,Value) utiliza opciones adicionales especificadas por uno o más argumentos de par.Name,Value

[idx,C] = kmedoids(___) Devuelve las ubicaciones de medoides del clúster en la matriz.kkpC

[idx,C,sumd] = kmedoids(___) Devuelve las sumas dentro del clúster de las distancias de punto a medoides en el vector-by-1.ksumd

[idx,C,sumd,D] = kmedoids(___) Devuelve distancias de cada punto a cada medoide en la matriz.nkD

[idx,C,sumd,D,midx] = kmedoids(___) Devuelve los índices de tal que = (,:). es un vector de-por-1.midxCXmidxmidxk

[idx,C,sumd,D,midx,info] = kmedoids(___) Devuelve una estructura con información sobre las opciones utilizadas por el algoritmo cuando se ejecuta.info

Ejemplos

contraer todo

Generar datos aleatoriamente.

rng('default'); % For reproducibility X = [randn(100,2)*0.75+ones(100,2);     randn(100,2)*0.55-ones(100,2)]; figure; plot(X(:,1),X(:,2),'.'); title('Randomly Generated Data');

Agrupar datos en dos clústeres mediante.kmedoids Utilice la métrica de distancia.cityblock

opts = statset('Display','iter'); [idx,C,sumd,d,midx,info] = kmedoids(X,2,'Distance','cityblock','Options',opts);
   rep     iter          sum      1        1      209.856      1        2      209.856 Best total sum of distances = 209.856 

es un struct que contiene información sobre cómo se ejecutó el algoritmo.info Por ejemplo, el campo indica la réplica que se usó para producir la solución final.bestReplicate En este ejemplo, se usó el número de réplica 1 ya que el número predeterminado de réplicas es 1 para el algoritmo predeterminado, que es en este caso.pam

info
info = struct with fields:
        algorithm: 'pam'
            start: 'plus'
         distance: 'cityblock'
       iterations: 2
    bestReplicate: 1

Trace los clústeres y los medoides del clúster.

figure; plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',7) hold on plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',7) plot(C(:,1),C(:,2),'co',...      'MarkerSize',7,'LineWidth',1.5) legend('Cluster 1','Cluster 2','Medoids',...        'Location','NW'); title('Cluster Assignments and Medoids'); hold off

Este ejemplo utiliza el conjunto de datos "Mushroom" del archivo de aprendizaje automático UCI, que se describe en http://archive.ics.uci.edu/ml/datasets/Mushroom.[3][4][5][6][7][7] El conjunto de datos incluye 22 predictores para 8.124 observaciones de varios hongos. Los predictores son tipos de datos categóricos. Por ejemplo, la forma de la tapa se clasifica con las características de la tapa en forma de campana y para cónico.'b''c' Color de la seta también se clasifica con características de marrón, y para el rosa.'n''p' El conjunto de datos también incluye una clasificación para cada hongo, ya sea comestible o venenoso.

Dado que las características del conjunto de datos de la seta son categóricas, no es posible definir la media de varios puntos de datos, y por lo tanto el algoritmo de clustering ampliamente utilizado significa no se puede aplicar significativamente a este conjunto de datos. -medoids es un algoritmo relacionado que divide los datos en clústeres distintos, encontrando medoides que minimizan la suma de las disimilaridades entre los puntos de los datos y su medoide más cercano.kkk

El medoide de un conjunto es un miembro de ese conjunto cuya dissimilitud media con los otros miembros del conjunto es la más pequeña. La similitud se puede definir para muchos tipos de datos que no permiten calcular una media, lo que permite que los medoides se utilicen para una gama más amplia de problemas que-medios.kk

Usando-medoids, este ejemplo agrupa los hongos en dos grupos, basados en los predictores proporcionados.k A continuación, explora la relación entre esos racimos y las clasificaciones de las setas, ya sea comestible o venenosa.

En este ejemplo se presupone que ha descargado el conjunto de datos "Mushroom" de la base de datos UCI (http://archive.ics.uci.edu/ml/machine-learning-databases/mushroom/) y lo ha guardado en el directorio actual como un archivo de texto denominado Agaricus-lepiota. txt.[3][4][5][6][7] No hay encabezados de columna en los datos, por lo que utiliza los nombres de variable predeterminados.readtable

clear all data = readtable('agaricus-lepiota.txt','ReadVariableNames',false);

Muestre los primeros 5 hongos con sus primeras características.

data(1:5,1:10)
ans =       Var1    Var2    Var3    Var4    Var5    Var6    Var7    Var8    Var9    Var10     ____    ____    ____    ____    ____    ____    ____    ____    ____    _____      'p'     'x'     's'     'n'     't'     'p'     'f'     'c'     'n'     'k'       'e'     'x'     's'     'y'     't'     'a'     'f'     'c'     'b'     'k'       'e'     'b'     's'     'w'     't'     'l'     'f'     'c'     'b'     'n'       'p'     'x'     'y'     'w'     't'     'p'     'f'     'c'     'n'     'n'       'e'     'x'     's'     'g'     'f'     'n'     'f'     'w'     'b'     'k'

Extraiga la primera columna, los datos etiquetados para grupos comestibles y venenosos. A continuación, elimine la columna.

labels = data(:,1); labels = categorical(labels{:,:}); data(:,1) = [];

Almacene los nombres de los predictores (características), que se describen en http://archive.ics.uci.edu/ml/machine-learning-databases/mushroom/agaricus-lepiota.names.

VarNames = {'cap_shape' 'cap_surface' 'cap_color' 'bruises' 'odor' ...     'gill_attachment' 'gill_spacing' 'gill_size' 'gill_color' ...     'stalk_shape' 'stalk_root' 'stalk_surface_above_ring' ...     'stalk_surface_below_ring' 'stalk_color_above_ring' ...     'stalk_color_below_ring' 'veil_type' 'veil_color' 'ring_number' ....     'ring_type' 'spore_print_color' 'population' 'habitat'};

Establezca los nombres de las variables.

data.Properties.VariableNames = VarNames;

Hay un total de 2480 valores faltantes denotados como.'?'

sum(char(data{:,:}) == '?')
ans =          2480

En función de la inspección del conjunto de datos y su descripción, los valores faltantes solo pertenecen a la variable 11ª ().stalk_root Quite la columna de la tabla.

data(:,11) = [];

solo acepta datos numéricos.kmedoids Debe convertir las categorías que tiene en tipo numérico. La función de distancia que utilizará para definir la dessimilitud de los datos se basará en la representación doble de los datos categóricos.

cats = categorical(data{:,:}); data = double(cats);

puede utilizar cualquier métrica de distancia admitida por pdist2 al clúster.kmedoids Para este ejemplo, agrupara los datos utilizando la distancia de Hamming porque se trata de una métrica de distancia adecuada para los datos categóricos, como se ilustra a continuación. La distancia de Hamming entre dos vectores es el porcentaje de los componentes vectoriales que difieren. Por ejemplo, considere estos dos vectores.

;v1 = [1 0 2 1]

;v2 = [1 1 2 1]

Son iguales en la 1ª, 3ª y 4ª coordenada. Dado que 1 de las 4 coordenadas difieren, la distancia de Hamming entre estos dos vectores es. 25.

Puede utilizar la función para medir la distancia de Hamming entre la primera y la segunda fila de datos, la representación numérica de los datos de la seta categórica.pdist2 El valor. 2857 significa que 6 de las 21 características de la seta difieren.

pdist2(data(1,:),data(2,:),'hamming')
ans =      0.2857

En este ejemplo, va a agrupar los datos de la seta en dos clústeres basados en entidades para ver si el clustering corresponde a la edibilidad. Se garantiza que la función converja en un mínimo local del criterio de agrupación en clústeres; sin embargo, esto puede no ser un mínimo global para el problema.kmedoids Es una buena idea agrupar el problema varias veces usando el parámetro.'replicates' Cuando se establece en un valor, mayor que 1, el algoritmo k-medoids es el tiempo de ejecución y se devuelve el mejor resultado.'replicates'nn

Para ejecutar los datos del clúster en 2 clústeres, en función de la distancia de Hamming y para devolver el mejor resultado de 3 réplicas, ejecute lo siguiente.kmedoids

rng('default'); % For reproducibility [IDX, C, SUMD, D, MIDX, INFO] = kmedoids(data,2,'distance','hamming','replicates',3);

Supongamos que los hongos en el grupo pronosticado 1 son venenosos y el grupo 2 son todos comestibles. Para determinar el rendimiento de los resultados de clustering, Calcule cuántos hongos en el grupo 1 son de hecho venenosos y el grupo 2 son comestibles basados en las etiquetas conocidas. En otras palabras, calcule el número de falsos positivos, falsos negativos, así como verdaderos positivos y verdaderos negativos.

Construir una matriz de confusión (o matriz coincidente), donde los elementos diagonales representan el número de verdaderos positivos y verdaderos negativos, respectivamente. Los elementos fuera de la diagonal representan falsos negativos y falsos positivos, respectivamente. Para mayor comodidad, utilice la función, que calcula una matriz de confusión dadas las etiquetas conocidas y las etiquetas pronosticadas.confusionmat Obtenga la información de etiqueta pronosticada de la variable. contiene valores de 1 y 2 para cada punto de datos, representando grupos venenosos y comestibles, respectivamente.IDXIDX

predLabels = labels; % Initialize a vector for predicted labels. predLabels(IDX==1) = categorical({'p'}); % Assign group 1 to be poisonous. predLabels(IDX==2) = categorical({'e'}); % Assign group 2 to be edible. confMatrix = confusionmat(labels,predLabels)
confMatrix =          4176          32          816        3100

De los 4208 hongos comestibles, se predijo correctamente que 4176 estaban en el grupo 2 (grupo comestible), y se predijo erróneamente que 32 se encontraban en el grupo 1 (grupo venenoso). Del mismo modo, de 3916 setas venenosas, 3100 se pronosticó correctamente en el grupo 1 (grupo venenoso), y se predijo erróneamente que 816 se encontraban en el grupo 2 (grupo comestible).

Dada esta matriz de confusión, calcule la precisión, que es la proporción de resultados verdaderos (tanto verdaderos positivos como verdaderos negativos) contra los datos globales, y la precisión, que es la proporción de los verdaderos positivos contra todos los resultados positivos (verdadero positivos y falsos positivos).

accuracy = (confMatrix(1,1)+confMatrix(2,2))/(sum(sum(confMatrix)))
accuracy =      0.8956
precision = confMatrix(1,1) / (confMatrix(1,1)+confMatrix(2,1))
precision =      0.8365

Los resultados indicaron que la aplicación del algoritmo k-medoids a las características categóricas de los hongos resultó en clusters que estaban asociados con la edibilidad.

Argumentos de entrada

contraer todo

Datos, especificados como una matriz numérica. Las filas de corresponden a las observaciones, y las columnas corresponden a las variables.X

Número de medoides en los datos, especificado como un entero positivo.

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 la distancia euclidiana, tres medoides replicantes en diferentes valores iniciales y utilizar la computación paralela.'Distance','euclidean','Replicates',3,'Options',statset('UseParallel',1)

Algoritmo para encontrar medoides, especificados como el par separado por comas que consta de y,,, o.'Algorithm''pam''small''clara''large' El algoritmo predeterminado depende del número de filas de.X

  • Si el número de filas es menor que 3000, es el algoritmo predeterminado.X'pam'

  • Si el número de filas está entre 3000 y 10000, es el algoritmo predeterminado.'small'

  • Para todos los demás casos, es el algoritmo predeterminado.'large'

Puede invalidar la opción predeterminada indicando explícitamente el algoritmo. Esta tabla resume los algoritmos disponibles.

AlgoritmoDescripción
'pam'

La partición alrededor de Medoids (PAM) es el algoritmo clásico para resolver el problema de-medoids descrito en.k[1] Después de aplicar la función de inicialización para seleccionar las posiciones medoides iniciales, el programa realiza el paso swap del algoritmo PAM, es decir, busca sobre todos los posibles swaps entre medoides y no medoides para ver si la suma de medoides al miembro del clúster Distancias se va abajo. Puede especificar qué función de inicialización se usará mediante el argumento de par nombre-valor.'Start'

El algoritmo procede de la siguiente manera.

  1. Construir-paso: Cada uno de los clústeres está asociado con un posible medoide.k Esta asignación se realiza mediante una técnica especificada por el argumento de par nombre-valor.'Start' 

  2. Swap-Step: Dentro de cada clúster, cada punto se prueba como un posible medoide comprobando si la suma de las distancias dentro del clúster se hace más pequeña usando ese punto como el medoide. Si es así, el punto se define como un nuevo medoide. Cada punto se asigna al clúster con el medoide más cercano.

El algoritmo recorre en iteración los pasos de compilación e intercambio hasta que los medoides no cambian o se cumplen otros criterios de terminación.

El algoritmo puede producir mejores soluciones que los otros algoritmos en algunas situaciones, pero puede resultar prohibitivamente de larga duración.

'small'

Utilice un algoritmo similar al algoritmo k-means para encontrar medoides.k Esta opción emplea una variante de las iteraciones de Lloyd basadas en.[2]

El algoritmo procede de la siguiente manera.

  1. Para cada punto de cada clúster, calcule la suma de las distancias desde el punto hasta cualquier otro punto del clúster. Elija el punto que minimiza la suma como el nuevo medoide.

  2. Actualice la pertenencia al clúster para cada punto de datos para reflejar el nuevo medoid.

El algoritmo repite estos pasos hasta que no se produzcan más actualizaciones o se cumplan otros criterios de terminación. El algoritmo tiene una fase de actualización en línea opcional como PAM (especificada por el argumento de par nombre-valor) que mejora la calidad del clúster.'OnlinePhase' Tiende a devolver soluciones de mayor calidad que los algoritmos o, pero puede que no sea la mejor opción para datos muy grandes.claralarge

'clara'

La agrupación en clústeres de aplicaciones grandes (CLARA) realiza repetidamente el algoritmo PAM en subconjuntos aleatorios de los datos.[1] Su objetivo es superar los desafíos de escalado planteados por el algoritmo PAM a través del muestreo.

El algoritmo procede de la siguiente manera.

  1. Seleccione un subconjunto de los datos y aplique el algoritmo PAM al subconjunto.

  2. Asigne los puntos del conjunto de datos completo a los clústeres eligiendo el medoid más cercano.

El algoritmo repite estos pasos hasta que los medoides no cambien o se cumplan otros criterios de terminación.

Para obtener el mejor rendimiento, se recomienda realizar varias réplicas. De forma predeterminada, el programa realiza cinco réplicas. Cada réplica muestra filas de X (especificadas por el argumento de par nombre-valor) para realizar la agrupación en clústeres.s'NumSamples' De forma predeterminada, se seleccionan las muestras.40+2*k

'large'

Esto es similar al algoritmo de escala y realiza repetidamente búsquedas usando un k-means como actualización.small Sin embargo, el algoritmo examina solo una muestra aleatoria de miembros del clúster durante cada iteración. El parámetro ajustable por el usuario, controla el número de vecinos que se examinarán.'PercentNeighbors' Si no hay ninguna mejora después de que se examinen los vecinos, el algoritmo termina la búsqueda local. El algoritmo realiza un total de réplicas (especificadas por el argumento de par nombre-valor) y devuelve el mejor resultado de agrupación en clústeres.r'Replicates' El algoritmo tiene una fase en línea como PAM opcional (especificada por el argumento de par nombre-valor) que mejora la calidad del clúster.'OnlinePhase'

Ejemplo: 'Algorithm','pam'

Una marca para realizar la fase de actualización en línea como PAM, especificada como un par separado por comas que consta de y o.'OnlinePhase''on''off'

Si es así, a continuación, realiza una actualización de PAM-Like a los medoids después de las iteraciones de Lloyd en el y algoritmos.onkmedoidssmalllarge Durante esta fase de actualización en línea, el algoritmo elige un pequeño subconjunto de puntos de datos en cada clúster que son los más lejanos y más cercanos a medoid. Para cada punto elegido, reasigna el clustering de todo el conjunto de datos y comprueba si esto crea una suma menor de distancias que la más conocida.

En otras palabras, las consideraciones de swap se limitan a los puntos cercanos a los medoides y lejos de los medoides. Los puntos cercanos se consideran para refinar la agrupación en clústeres. Los puntos lejanos se consideran para poder escapar de los mínimos locales. Activar esta característica tiende a mejorar la calidad de las soluciones generadas por ambos algoritmos. El tiempo total de ejecución tiende a aumentar también, pero el aumento suele ser menor que una iteración de PAM.

Ejemplo: OnlinePhase,'off'

Distancia métrica, en el espacio p-dimensional, especificado como el par separado por comas que consta de y,,,,,,,,,, o una función de distancia personalizada.'Distance''euclidean''seuclidean''cityblock''minkowski''chebychev''mahalanobis''cosine''correlation''spearman''hamming''jaccard'

minimiza la suma de medoides a las distancias de los miembros del clúster.kmedoids Consulte la definición de cada métrica de distancia. admite todas las métricas de distancia admitidas.pdistkmedoidspdist

Ejemplo: 'Distance','hamming'

Opciones para controlar el algoritmo iterativo para minimizar los criterios de ajuste, especificados como el par separado por comas que consta de y una matriz de estructura devuelta por.'Options'statset Los campos admitidos de la matriz de estructura especifican opciones para controlar el algoritmo iterativo. En esta tabla se resumen los campos admitidos.

CampoDescripción
DisplayNivel de salida de pantalla. Las opciones son (predeterminado) y.'off''iter'
MaxIterNúmero máximo de iteraciones permitidas. El valor predeterminado es.100
UseParallelSi, Compute en paralelo.true Si no está disponible, el cálculo se produce en el modo serie.Parallel Computing Toolbox™ El valor predeterminado es, lo que significa cálculo en serie.false
UseSubstreamsSe establece en para computar en paralelo de una manera reproducible.true El valor predeterminado es.false Para calcular reproduciblemente, también debe establecerse en un tipo que permita subsecuencias: o.Streams'mlfg6331_64''mrg32k3a'
StreamsUn objeto o matriz de celdas de estos objetos.RandStream Para obtener más información sobre estas opciones y la computación paralela, consulte o escriba en la línea de comandos.Statistics and Machine Learning Toolbox™Agilice los cálculos estadísticoshelp parallelstats

Ejemplo: 'Options',statset('Display','off')

Número de veces que se repite la agrupación mediante las nuevas posiciones de medoides iniciales del clúster, especificadas como un entero positivo. El valor predeterminado depende de la elección del algoritmo. Para y, el valor predeterminado es 1.pamsmall Para, el valor predeterminado es 5.clara Para, el valor predeterminado es 3.large

Ejemplo: 'Replicates',4

Número de muestras que se toman de los datos al ejecutar el algoritmo, especificado como un entero positivo.clara El número predeterminado de muestras se calcula como.40+2*k

Ejemplo: 'NumSamples',160

Porcentaje del conjunto de datos que se examina mediante el algoritmo, especificado como un número positivo.large

El programa examina el número de vecinos para los medoides.percentneighbors*size(X,1) Si no hay ninguna mejora en la suma de distancias dentro del clúster, el algoritmo finaliza.

El valor de este parámetro entre 0 y 1, donde un valor más cercano a 1 tiende a dar soluciones de mayor calidad, pero el algoritmo tarda más en ejecutarse, y un valor más cercano a 0 tiende a dar soluciones de menor calidad, pero finaliza más rápido.

Ejemplo: 'PercentNeighbors',0.01

Método para elegir las posiciones iniciales del medoide del clúster, especificadas como el par separado por comas que consta de y, o una matriz.'Start''plus''sample''cluster' Esta tabla resume los métodos disponibles.

MétodoDescripción
predeterminado'plus'Seleccione las observaciones de acuerdo con elkX -Means + + algoritmok para la inicialización del centro de clúster.
'sample'Seleccione las observaciones de al azar.kX
'cluster'Realizar una fase preliminar de clustering en una submuestra aleatoria (10%) De.X Esta fase preliminar se inicializa en sí utilizando, es decir, las observaciones se seleccionan aleatoriamente.sample
MatrizUna matriz personalizada de ubicaciones de inicio.kp En este caso, puede pasar para el argumento de entrada e deduce de la primera dimensión de la matriz.[]kkmedoidsk También puede suministrar una matriz 3-D, lo que implica un valor de la tercera dimensión de la matriz.'Replicates'

Ejemplo: 'Start','sample'

Tipos de datos: char | string | single | double

Argumentos de salida

contraer todo

Índices medoides, devueltos como un vector de columna numérico. tiene tantas filas como, y cada fila indica la asignación medoidea de la observación correspondiente.idxX

Ubicaciones de medoides de clúster, devueltas como una matriz numérica. es un-por-matriz, donde Row es el medoid del clusterCkpjj

Dentro de las sumas de clúster de las distancias de punto a medoides, devueltas como un vector de columna numérico. es un vector-BY1, donde Element es la suma de las distancias punto a medoides dentro del cluster.sumdkjj

Distancias de cada punto a cada medoide, devueltos como una matriz numérica. es una-por-matriz, donde Element (,) es la distancia desde la observación hasta el medoide.Dnkjmjm

Index to, devuelto como un vector de columna de índices. es un vector-by-1 y los índices satisfacen.XmidxkC = X(midx,:)

Información del algoritmo, devuelta como struct. contiene las opciones utilizadas por la función cuando se ejecuta como algoritmo de clustering-medoid (), método utilizado para elegir las posiciones iniciales del medoid del clúster (), la distancia métrica (), el número de iteraciones tomadas en la mejor réplica () y el número de réplicas de la Results ().infokAlgoritmostartdistanceiterationsbestReplicate

Más acerca de

contraer todo

-medoids clusteringk

-medoids clustering es un método de particionamiento comúnmente usado en dominios que requieren robustez a datos atípicos, métricas de distancia arbitrarias o aquellas para las cuales la media o mediana no tiene una definición clara.k

Es similar a-Means, y el objetivo de ambos métodos es dividir un conjunto de mediciones u observaciones en subconjuntos o clústeres para que los subconjuntos minimicen la suma de las distancias entre una medida y un centro del cluster de la medición.kk En el algoritmo-Means, el centro del subconjunto es la media de las mediciones en el subconjunto, a menudo llamado un centroide.k En el algoritmo-medoids, el centro del subconjunto es un miembro del subconjunto, denominado medoide.k

El algoritmo-medoids devuelve medoides que son los puntos de datos reales en el conjunto de datos.k Esto le permite utilizar el algoritmo en situaciones en las que la media de los datos no existe dentro del conjunto de datos. Esta es la principal diferencia entre-medoides y-significa que los centroides devueltos por-medios pueden no estar dentro del conjunto de datos.kkk Por lo tanto, los medoides son útiles para agrupar datos categóricos en los que una media es imposible de definir o interpretar.k

La función proporciona varios algoritmos iterativos que minimizan la suma de las distancias de cada objeto a su medoid de clúster, sobre todos los clústeres.kmedoids Uno de los algoritmos se denomina partición alrededor de los medoides (PAM) que procede en dos pasos.[1]

  1. Construir-paso: Cada uno de los clústeres está asociado con un posible medoide.k Esta asignación se realiza mediante una técnica especificada por el argumento de par nombre-valor.'Start' 

  2. Swap-Step: Dentro de cada clúster, cada punto se prueba como un posible medoide comprobando si la suma de las distancias dentro del clúster se hace más pequeña usando ese punto como el medoide. Si es así, el punto se define como un nuevo medoide. Cada punto se asigna al clúster con el medoide más cercano.

El algoritmo recorre en iteración los pasos de compilación e intercambio hasta que los medoides no cambian o se cumplen otros criterios de terminación.

Puede controlar los detalles de la minimización utilizando varios parámetros de entrada opcionales, incluidos los de los valores iniciales de los medoides del clúster y el número máximo de iteraciones.kmedoids De forma predeterminada, utiliza elkmedoids -Means + + algoritmok para la inicialización del medoide del cluster y la métrica euclidiana cuadrada para determinar las distancias.

Referencias

[1] Kaufman, L., and Rousseeuw, P. J. (2009). Finding Groups in Data: An Introduction to Cluster Analysis. Hoboken, New Jersey: John Wiley & Sons, Inc.

[2] Park, H-S, and Jun, C-H. (2009). A simple and fast algorithm for K-medoids clustering. Expert Systems with Applications. 36, 3336-3341.

[3] Schlimmer,J.S. (1987). Concept Acquisition Through Representational Adjustment (Technical Report 87-19). Doctoral dissertation, Department of Information and Computer Science, University of California, Irvine.

[4] Iba,W., Wogulis,J., and Langley,P. (1988). Trading off Simplicity and Coverage in Incremental Concept Learning. In Proceedings of the 5th International Conference on Machine Learning, 73-79. Ann Arbor, Michigan: Morgan Kaufmann.

[5] Duch W, A.R., and Grabczewski, K. (1996) Extraction of logical rules from training data using backpropagation networks. Proc. of the 1st Online Workshop on Soft Computing, 19-30, pp. 25-30.

[6] Duch, W., Adamczak, R., Grabczewski, K., Ishikawa, M., and Ueda, H. (1997). Extraction of crisp logical rules using constrained backpropagation networks - comparison of two new approaches. Proc. of the European Symposium on Artificial Neural Networks (ESANN'97), Bruge, Belgium 16-18.

[7] Bache, K. and Lichman, M. (2013). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.

Capacidades ampliadas

Introducido en R2014b