arrays cluster-analysis data-mining dimension partition-problem

arrays - Agrupación de Matriz de 1D Número



cluster-analysis data-mining (2)

No use algoritmos de agrupamiento multidimensionales para un problema unidimensional. Una sola dimensión es mucho más especial de lo que piensas ingenuamente, porque en realidad puedes ordenarla , lo que hace las cosas mucho más fáciles.

De hecho, generalmente ni siquiera se llama agrupamiento, pero, por ejemplo, la segmentación o la optimización de las roturas naturales.

Es posible que desee consultar Jenks Natural Breaks Optimization y métodos estadísticos similares. La Estimación de Densidad de Núcleo también es un buen método a seguir, con una sólida base estadística. Los mínimos locales en densidad son buenos lugares para dividir los datos en grupos, con razones estadísticas para hacerlo. KDE es quizás el método más sólido para agrupar datos de una dimensión.

Con KDE, nuevamente se vuelve obvio que los datos unidimensionales se comportan mucho mejor. En 1D, tienes mínimos locales; pero en 2D puede tener puntos de silla y tales puntos de división "tal vez". Vea esta ilustración de Wikipedia de un punto de silla de montar , ya que tal punto puede o no ser apropiado para dividir los conglomerados.

Posible duplicado:
Agrupe los datos unidimensionales de manera óptima?

Entonces digamos que tengo una matriz como esta:

[1,1,2,3,10,11,13,67,71]

¿Hay una forma conveniente de dividir la matriz en algo como esto?

[[1,1,2,3],[10,11,13],[67,71]]

Revisé preguntas similares, sin embargo, la mayoría de la gente sugirió usar k-means para agrupar puntos, como scipy , lo cual es bastante confuso para un principiante como yo. También creo que k-means es más adecuado para dos o más clústeres dimensionales ¿verdad? ¿Hay alguna forma de dividir una matriz de N números en muchas particiones / clústeres según los números?

Algunas personas también sugieren partición de rango rígido, pero no siempre da los resultados esperados


Puede buscar algoritmos de discretización. El problema de discretización 1D es muy similar a lo que estás preguntando. Ellos deciden puntos de corte, de acuerdo con la frecuencia, estrategia de binning, etc.

weka utiliza los siguientes algoritmos en su proceso de discretización.

weka.filters.supervised.attribute.Discretize

utiliza el método MDL de Fayyad & Irani o el criterio MDL de Kononeko

weka.filters.unsupervised.attribute.Discretize

usa binning simple