vectores una tutorial multiplicar matriz matrices imprimir guardar ejemplos datos bidimensionales arreglos python numpy matplotlib plot visualization

tutorial - trazando una matriz 2D en python, código y la visualización más útil



python matrices tutorial (2)

Tengo una matriz muy grande (10x55678) en formato de matriz "numpy". las filas de esta matriz corresponden a algunos "temas" y las columnas corresponden a palabras (palabras únicas de un cuerpo de texto). Cada entrada i, j en esta matriz es una probabilidad, lo que significa que la palabra j pertenece al tema i con probabilidad x. ya que estoy usando identificadores en lugar de las palabras reales y dado que la dimensión de mi matriz es realmente grande, necesito visualizarla de una manera. ¿Qué visualización sugiere? una simple trama? ¿o uno más sofisticado e informativo? (estoy preguntando esto porque soy ignorante sobre los tipos útiles de visualización). Si es posible, ¿puedes darme un ejemplo de que usar una matriz numpy? Gracias

La razón por la que hice esta pregunta es porque quiero tener una visión general de las distribuciones palabra-tema en mi corpus. cualquier otro método es bienvenido


Sin duda, podría utilizar el método imshow o pcolor para mostrar los datos, pero como han mencionado los comentarios, podría ser difícil de interpretar sin hacer un acercamiento de los subconjuntos de los datos.

a = np.random.normal(0.0,0.5,size=(5000,10))**2 a = a/np.sum(a,axis=1)[:,None] # Normalize pcolor(a)

Luego puede ordenar las palabras por la probabilidad de que pertenezcan a un clúster:

maxvi = np.argsort(a,axis=1) ii = np.argsort(maxvi[:,-1]) pcolor(a[ii,:])

Aquí, el índice de palabras en el eje Y ya no es igual al orden original, ya que las cosas se han ordenado.

Otra posibilidad es usar el paquete networkx para trazar clústeres de palabras para cada categoría, donde las palabras con mayor probabilidad se representan mediante nodos que son más grandes o más cercanos al centro del gráfico e ignoran aquellas palabras que no tienen membresía en la categoría . Esto podría ser más fácil ya que tiene una gran cantidad de palabras y un pequeño número de categorías.

Con suerte, una de estas sugerencias es útil.


La clave a considerar es si tiene una estructura importante a lo largo de ambas dimensiones en la matriz. Si lo hace, entonces vale la pena intentar una trama de matriz coloreada (por ejemplo, imshow), pero si sus diez temas son básicamente independientes, probablemente sea mejor que haga diez trazados individuales de línea o de histograma. Ambas parcelas tienen ventajas y desventajas.

En particular, en trazados de matriz completa, los valores de color del eje z no son muy precisos o cuantitativos, por lo que es difícil ver, por ejemplo, pequeñas fluctuaciones en una tendencia, o evaluaciones cuantitativas de las tasas de cambio, etc., por lo que hay una costo para estos. Y también son más difíciles de desplazarse y acercarse ya que uno puede perderse y, por lo tanto, no examinar toda la trama, mientras que la panorámica a lo largo de una trama 1D es trivial.

También, por supuesto, como han mencionado otros, 50K puntos es demasiado para visualizar realmente, por lo que tendrá que ordenarlos, o algo así, para reducir la cantidad de valores que realmente necesitará para evaluar visualmente.

Sin embargo, en la práctica, encontrar una buena técnica de visualización para un conjunto de datos determinado no siempre es trivial, y para conjuntos de datos grandes y complejos, la gente prueba todo lo que tiene la oportunidad de ser útil y luego elige lo que realmente ayuda.