Sei sulla pagina 1di 43

CAPÍTULO 3

Visualización de datos

En este capítulo, se describe un conjunto de parcelas que se pueden utilizar para explorar la naturaleza multidimensional de un
conjunto de datos. Presentamos tramas básicas (gráficos de barras, gráficos de líneas y gráficos de dispersión), gráficos de distribución
(Diagramas de caja e histogramas), y diferentes mejoras que amplían las capacidades de estas parcelas para visualizar más
información. Nos centramos en cómo las diferentes visualizaciones y operaciones pueden apoyar tareas de minería de datos, a partir
de tareas supervisadas (predicción, clasificación, y el tiempo de previsión de serie) a tareas sin supervisión, y proporcionar algunas
pautas sobre las visualizaciones específicas para su uso con cada tarea de minería de datos. También se describen las ventajas de
visualización interactiva sobre parcelas estáticas. El capítulo concluye con una presentación de parcelas especializados adecuados
para los datos con estructura especial (jerárquico, red y geográfica).

3.1 Introducción 1
El dicho popular de “una imagen vale más que mil palabras” se refiere a la capacidad de condensar difunde la información verbal en un compacto y

rápidamente se entiende imagen gráfica. En el caso de los números, la visualización y resumen de datos numéricos nos proporcionan tanto una

poderosa herramienta para explorar los datos y una forma eficaz de presentar los resultados (pocos, 2012). ¿Dónde técnicas de visualización encajan

en el proceso de minería de datos, como se ha descrito hasta ahora? Se utilizan sobre todo en la parte de pre-procesamiento del proceso de minería

de datos. soportes de visualización de limpieza mediante la búsqueda de valores incorrectos (por ejemplo, pacientes cuya edad es de 999 o - 1) de

datos, valores que faltan, filas, columnas duplicadas con todas el mismo valor, y similares. Las técnicas de visualización son también útiles para la

derivación variable y selección: que pueden ayudar a determinar qué variables a incluir en el análisis y que podría ser redundante. Ellos también

pueden ser útiles en la determinación de tamaños apropiados de basura, debe hurgar en la basura de las variables numéricas se necesite (por

ejemplo, puede ser que necesite una variable de resultado numérico para ser convertido en una variable binaria si un sí / no se requiere ninguna

decisión). También pueden jugar un papel en la combinación de categorías como parte del proceso de reducción de datos. Por último, si los datos aún

no se han recogido y recogida es caro (al igual que con el proyecto de Pandora en sus inicios, véase También pueden jugar un papel en la

combinación de categorías como parte del proceso de reducción de datos. Por último, si los datos aún no se han recogido y recogida es caro (al igual

que con el proyecto de Pandora en sus inicios, véase También pueden jugar un papel en la combinación de categorías como parte del proceso de

reducción de datos. Por último, si los datos aún no se han recogido y recogida es caro (al igual que con el proyecto de Pandora en sus inicios, véase

Capítulo 7 ), Métodos de visualización pueden ayudar a determinar, utilizando una muestra, que las variables y las métricas son
útiles.

En este capítulo, nos centramos en el uso de las presentaciones gráficas con el fin de la exploración de datos, particularmente con
relación a análisis predictivo. Aunque nuestro enfoque no está en la visualización para la presentación de datos, este capítulo se
ofrecen ideas en cuanto a la efectividad de varias pantallas gráficas para el propósito de la presentación de datos. Estos ofrecen
una gran cantidad de presentaciones útil más allá de los resúmenes tabulares y gráficos de barras básicos, que son actualmente
la forma más popular de la presentación de los datos en el negocio
ambiente. Para una excelente discusión sobre el uso de gráficos de datos de la empresa de informes, consulte Pocas (2012). En términos
de informar de los resultados de minería de datos gráficamente, describimos pantallas gráficas comunes en otra parte en el libro, algunos
de los cuales son técnica específica [por ejemplo, dendrogramas para el agrupamiento jerárquico ( capítulo 15 ), Tablas de red para el
análisis de redes sociales ( capítulo 19 ), y cartas del árbol de los árboles de clasificación y regresión ( Capítulo 9 )] Mientras que otros son
[por ejemplo, característica de funcionamiento del receptor (ROC) curvas más generales y gráficos de elevación para la clasificación ( Capítul
5 ) Y los gráficos de perfil y mapas de calor (para la agrupación capítulo 15 )].

Nota: El término “gráfico” puede tener dos significados en las estadísticas. Puede referirse, en particular en el uso popular, a
cualquiera de un número de figuras para representar los datos (por ejemplo, gráfico de líneas, gráfico de barras, histograma, etc.).
En un uso más técnico, se refiere a la estructura de datos y la visualización en redes (ver capítulo 19 ). El uso del término “trama” de
las visualizaciones que exploramos en este capítulo evita esta confusión.

la exploración de datos es un paso inicial obligatoria si es o no un análisis más formal sigue. exploración gráfica puede apoyar la
exploración de forma libre para el propósito de la comprensión de la estructura de datos, la limpieza de los datos (por ejemplo, la
identificación de lagunas inesperadas o valores “ilegal”), identificando los valores atípicos, el descubrimiento de patrones iniciales (por
ejemplo, las correlaciones entre las variables y clusters sorprendentes), y la generación de preguntas interesantes. exploración
gráfica también puede estar más centrado, orientado a cuestiones específicas de interés. En el contexto de minería de datos, se
necesita una combinación: la exploración de forma libre a cabo con el fin de apoyar un objetivo específico.

exploración gráfica puede variar desde la generación de parcelas muy básicas para el uso de operaciones tales como
el filtrado y el zoom de forma interactiva para explorar un conjunto de visualizaciones interconectados que incluyen
características avanzadas tales como el color y-múltiples paneles. Este capítulo no pretende ser una guía exhaustiva
sobre las técnicas de visualización, pero en su lugar se consideran los principios principales y características que la
exploración de datos de soporte en un contexto de minería de datos. Comenzamos con la descripción de los diversos
niveles de sofisticación en términos de visualización y mostrar las ventajas de las diferentes funciones y operaciones.
Nuestra discusión es desde la perspectiva de cómo la visualización es compatible con la posterior objetivo de minería
de datos. En particular, se distingue entre aprendizaje supervisado y no supervisado; dentro de aprendizaje
supervisado,

Pitón
Hay una variedad de bibliotecas de Python para visualizaciones de datos. La biblioteca más antigua, pero también más flexible es
matplotlib. Es ampliamente utilizado y hay muchos recursos disponibles para empezar y para encontrar ayuda. Un número de otras
bibliotecas se construyen alrededor de ella y hacer que la generación de parcelas a menudo más rápido.

Seaborn y pandas son dos de las bibliotecas que son envolturas alrededor matplotlib. Ambos son muy útiles para crear
parcelas rápidamente. Sin embargo, incluso si estos se utilizan, un buen conocimiento de matplotlib ayuda a tener más control
sobre la trama final.
La biblioteca ggplot se modela después el paquete R igualmente llamado por Hadley Wickham. Se basa en la
“gramática de Gráficos”, un término acuñado por Leland Wilkinson para definir un sistema de trazado de la teoría y la
nomenclatura. Aprender ggplot efectivamente significa familiarizarse con esta filosofía y lenguaje técnico de trazado.

Bokeh es un nuevo desarrollo interesante crear parcelas interactivos, cuadros de mando y aplicaciones de datos para
navegadores web.

En este capítulo, se utilizará principalmente para pandas visualizaciones de datos y cubrir la posible personalización de las parcelas
mediante comandos matplotlib. Algunos otros paquetes se utilizan para las parcelas especializados: Seaborn para Heatmaps, gmaps
y cartopy de mapa visualizaciones.

 importación requiere la funcionalidad de este capítulo

import os
calendario importar importar numpy
como NetworkX importación np nx
como pandas de importación como Pd

de pandas.plotting scatter_matrix importación, parallel_coordinates Seaborn importación como SNS

sklearn de importación preprocesamiento matplotlib.pylab


importación como PLT

3.2 Ejemplos de Datos

Para ilustrar la visualización de datos, utilizamos dos conjuntos de datos utilizados en los capítulos adicionales en el libro.

Ejemplo 1: Boston Data Vivienda

Los datos Boston Viviendas contienen información sobre las secciones censales en Boston 2 para los que varios se toman
mediciones (por ejemplo, tasa de criminalidad, alumno / maestro). Cuenta con 14 variables. Una descripción de cada variable se
da en Tabla 3.1 y una muestra de los primeros nueve registros se muestra en la Tabla 3.2 . Además de las 13 variables originales,
el conjunto de datos también contiene el CAT.MEDV variable adicional, que fue creado mediante la categorización valor de la
mediana (MEDV) en dos categorías: alta y baja. Con pandas, es más conveniente tener nombres de columnas que contienen sólo
caracteres, números y el '_'. Por lo tanto, cambiamos el nombre de la columna en los ejemplos de código a CAT_MEDV.
Tabla 3.1 Descripción de las variables del conjunto de datos en la Vivienda de Boston

CRIM índice de delincuencia

ZN Porcentaje de suelo residencial dividido en zonas para las porciones más de 25.000 pies 2

INDUS Porcentaje de suelo ocupado por los negocios no minoristas

CHAS ¿El tracto obligado Charles River (= 1 si los límites de las vías río, = 0 en caso contrario)

NOX concentración de óxido nítrico (partes por 10 millones)

RM número promedio de habitaciones por vivienda

AÑOS Porcentaje de unidades ocupadas por sus propietarios construida antes de 1940

DIS distancias tabuladas a cinco centros de empleo de Boston

RAD Índice de la accesibilidad a las autopistas radiales

IMPUESTO tasa de impuesto a la propiedad-valor completo por $ 10.000

PTRATIO relación de alumno a maestro por LSTAT ciudad

Porcentaje de estatus más bajo de la población

MEDV La mediana del valor de las viviendas ocupadas por sus propietarios en $ 1000

CAT.MEDV es el valor medio de las casas ocupadas por sus propietarios en el tracto superior a $ 30.000

(CAT.MEDV = 1) o no (CAT.MEDV = 0)
Tabla 3.2 Nueve primeros registros en los Datos de Vivienda de Boston

 código para abrir el archivo de Boston Vivienda y la visualización de los 9 primeros registros

housing_df = pd.read_csv ( 'BostonHousing.csv')


# CAT de cambio de nombre. MEDV columna para la manipulación de datos más fácil
housing_df = housing_df.rename (columnas = 'CAT MEDV.': 'CAT_MEDV') housing_df.head (9)

Salida

CRIM ZN INDUS CHAS NOX RM AÑOS DIS RAD DE IMPUESTOS PTRATIO LSTAT
MEDV CAT_MEDV
0 0,0063 18,0 2,31 0 0.538 6.575 4.090 65,2 1 296 15.3 4.98
24.0 0
1 0,0273 0,0 7,07 0 0.469 6.421 4.967 78,9 2 242 17.8 9.14
21.6 0
2 0,0273 0,0 7,07 0 0.469 7.185 4.967 61,1 2 242 17.8 4.03
34.7 1
3 0,0324 0.0 2.18 0 0,458 6,998 45,8 6,062 3 222 18.7 2.94
33.4 1
4 0,0691 0.0 2.18 0 0.458 7.147 6.062 54,2 3 222 18.7 5.33
36.2 1
5 0,0299 0.0 2.18 0 0.458 6.430 6.062 58,7 3 222 18.7 5.21
28.7 0
6 0,0883 12,5 7,87 0 0,524 6,012 66,6 5,561 5 311 15.2 12.43
22.9 0
7 0,1446 12,5 7,87 0 0.524 6.172 5.951 96,1 5 311 15.2 19.15
27.1 0
8 0,2112 12,5 7,87 0 0,524 5,631 6,082 100,0 5 311 15.2 29.93
16.5 0

Consideramos tres tareas posibles:

1. Una tarea de predicción, donde la variable de resultado de interés es el valor promedio de una casa en el tracto
(MEDV) supervisado.

2. Una tarea de clasificación, donde la variable de resultado de interés es el CAT.MEDV variable binaria que indica si el
valor de la vivienda está por encima o por debajo de $ 30.000 supervisado.

3. Una tarea sin supervisión, donde el objetivo es agrupar secciones censales. (MEDV y

CAT.MEDV no se utilizan juntos en cualquiera de los tres casos).

Ejemplo 2: El número de pasajeros en trenes de Amtrak

Amtrak, una compañía de ferrocarriles de Estados Unidos, recoge rutinariamente datos sobre pasajeros. Aquí, nos centramos en la
predicción futura de pasajeros utilizando la serie de pasajeros mensuales entre enero de 1991 y marzo de 2004. Los datos y su fuente
se describen en capítulo 16 . Por lo tanto, nuestra tarea
aquí es la predicción de series de tiempo (numérica).

3.3 gráficos básicos: gráficos de barras, gráficos de líneas y gráficos de dispersión

Los tres argumentos básicos más eficaces son los gráficos de barras, gráficos de líneas y gráficos de dispersión. Estas parcelas son
fáciles de crear en Python usando pandas y son las parcelas de uso más común en el mundo empresarial actual, tanto en la
exploración y la presentación de los datos (por desgracia, gráficos circulares son también muy populares, aunque son generalmente
ineficaces visualizaciones). gráficos básicos apoyar la exploración de datos mediante la visualización de una o dos columnas de datos
(variables) a la vez. Esto es útil en las primeras etapas de conseguir familiarizados con la estructura de datos, la cantidad y tipos de
variables, el volumen y el tipo de valores que faltan, etc.

La naturaleza de la tarea y el conocimiento de dominio de minería de datos acerca de los datos afectará el uso de cartas básicas en
cuanto a la cantidad de tiempo y esfuerzo asignado a diferentes variables. En el aprendizaje supervisado, habrá un mayor enfoque en
la variable de resultado. En los diagramas de dispersión, la variable de resultado se asocia típicamente con la y- eje. En el aprendizaje
no supervisado (a los efectos de la reducción de datos o agrupación), tramas básicas que transmiten las relaciones (tales como
gráficos de dispersión) son los preferidos.

Figura 3.1 una muestra un gráfico de líneas para la serie de tiempo de pasajeros de ferrocarril mensuales sobre Amtrak. Los gráficos de
líneas se utilizan sobre todo para mostrar la serie de tiempo. La elección del marco de tiempo de trama, así como la escala temporal,
debe depender del horizonte de la tarea de previsión y de la naturaleza de los datos.
Figura 3.1 parcelas básicos: gráfico de líneas (a), gráfico de dispersión (b), gráfico de barras para la variable numérica (c), y gráfico de barras
para la variable categórica (d)

 código para crear Figura 3.1

# # Cargar los datos de Amtrak y convertirlos a ser adecuado para el análisis de series temporales Amtrak_df = pd.read_csv ( 'Amtrak.csv',
apretar = true) Amtrak_df [ 'Fecha'] = pd.to_datetime (Amtrak_df.Month, format ='= ridership_ts pd.Series (Amtrak_df.Ridership.values, índice
= Amtrak_df.Date)

# # los datos de vivienda Boston


housing_df = pd.read_csv ( 'BostonHousing.csv')
housing_df = housing_df.rename (columnas = 'CAT MEDV.': 'CAT_MEDV')

versión pandas

# # gráfico de líneas
ridership_ts.plot (ylim = [1,300, 2,300], leyenda = FALSE) plt.xlabel ( 'Year') # set
etiqueta del eje x
plt.ylabel ( 'Ridership (en 000s)') # Conjunto de etiqueta de eje y
# # gráfico de dispersión con los nombres de los ejes
housing_df.plot.scatter (x = 'LSTAT', y = 'MEDV', leyenda = False)
# # diagrama de barras de CHAS vs MEDV media
# Calcular media MEDV por CHAS = (0, 1)
ax = housing_df.groupby ( 'CHAS'). media (). MEDV.plot ( 'bar' tipo =) ax.set_ylabel ( 'Promedio. MEDV')

# # diagrama de barras de CHAS CAT_MEDV vs.


dataForPlot = housing_df.groupby ( 'CHAS'). media () [ 'CAT_MEDV'] * 100
ax = dataForPlot.plot (tipo = 'bar', figsize = [5, 3]) ax.set_ylabel ('

versión matplotlib

# # gráfico de líneas
plt.plot (ridership_ts.index, ridership_ts) plt.xlabel ( 'Year') # set etiqueta
del eje x
plt.ylabel ( 'Ridership (en 000s)') # Conjunto de etiqueta de eje y
# # Ajuste el color de los puntos en el diagrama de dispersión y dibujar como círculos abiertos. plt.scatter (housing_df.LSTAT,
housing_df.MEDV, color = 'C2', facecolor = 'none') plt.xlabel ( 'LSTAT'); plt.ylabel ( 'MEDV')

# # diagrama de barras de CHAS vs MEDV media


# Calcular media MEDV por CHAS = (0, 1)
dataForPlot = housing_df.groupby ( 'CHAS'). media (). MEDV fig, ax = plt.subplots ()

ax.bar (dataForPlot.index, dataForPlot, color = [ 'C5', 'C1']) ax.set_xticks ([0, 1], False) ax.set_xlabel (
'CHAS') ax.set_ylabel ( 'Avg. MEDV ')

# # diagrama de barras de CHAS CAT.MEDV vs.


dataForPlot = housing_df.groupby ( 'CHAS'). media () [ 'CAT_MEDV'] * 100 higo, ax = plt.subplots ()

ax.bar (dataForPlot.index, dataForPlot, color = [ 'C5', 'C1']) ax.set_xticks ([0, 1], False)

ax.set_xlabel ( 'CHAS'); ax.set_ylabel ('

Los gráficos de barras son útiles para comparar una sola estadística (por ejemplo, media, recuento, porcentaje) entre los grupos. La
altura de la barra (o longitud en una pantalla horizontal) representa el valor de la estadística, y diferentes barras corresponden a los
diferentes grupos. Dos ejemplos se muestran en Figura 3.1 discos compactos. Figura 3.1 C muestra un gráfico de barras para una
variable numérica (MEDV) y Figura 3.1 shows d un gráfico de barras para una variable categórica (CAT.MEDV). En cada una,
separadas barras se utilizan para denotar casas en Boston que están cerca del río Charles frente a aquellos que no lo son
(comparando con ello las dos categorías de CHAS). El gráfico con el MEDV salida numérica ( Figura 3.1 c) utiliza el promedio MEDV
en el y- eje. Esto apoya la tarea de predicción: el resultado numérico está en el y- eje y la X- eje se utiliza para un potencial predictor
categórico. 3 ( Tenga en cuenta que la X- eje en un gráfico de barras debe ser utilizado solamente para las variables categóricas,
porque el orden de las barras en un gráfico de barras debe ser intercambiables.) Para la tarea de clasificación ( Figura 3.1 d), la y- ej
indica el porcentaje de extensiones con valor medio por encima de $ 30K y la X- eje es una variable binaria que indica la proximidad
a la de Carlos. Este solar nos muestra que las extensiones que bordean el Charles son mucho más propensos a tener valores
medios por encima de $ 30K.

Figura 3.1 b muestra un gráfico de dispersión de MEDV vs. LSTAT. Se trata de una parcela importante en la tarea de predicción.
Tenga en cuenta que la salida MEDV es nuevo en el y- eje (y LSTAT en el X-
eje es un predictor potencial). Debido a que ambas variables en un diagrama básico de dispersión deben ser numéricas, no se puede
utilizar para mostrar la relación entre CAT.MEDV y predictores potenciales para la tarea de clasificación (pero podemos mejorarlo para
hacerlo-see sección 3.4 ). Para que el aprendizaje no supervisado, este diagrama de dispersión particular, ayuda a estudiar la
asociación entre
dos variables numéricas en cuanto a la información de superposición, así como la identificación de grupos de observaciones.

Los tres argumentos básicos resaltan la información global, como el nivel general de pasajeros o MEDV, así como los cambios en
el tiempo (gráfico de líneas), las diferencias entre los subgrupos (gráfico de barras), y las relaciones entre las variables numéricas
(gráfico de dispersión).

Parcelas de distribución: Boxplots y Histogramas

Antes de pasar a las visualizaciones más sofisticadas que permiten la investigación multidimensional, observamos dos parcelas
importantes que por lo general no se consideran “cartas básicas”, pero son muy útiles en contextos de minería de datos y
estadísticas. los diagrama de caja y el histograma
son dos parcelas que muestran toda la distribución de una variable numérica. Aunque los promedios son muy populares y útiles
estadísticas de resumen, por lo general hay mucho que ganar examinado estadísticas adicionales tales como la mediana y la
desviación típica de una variable, y más aún mediante el examen de toda la distribución. Mientras que los gráficos de barras sólo
pueden utilizar una sola agregación, diagramas de caja e histogramas muestran la distribución completa de una variable numérica.
Boxplots también son eficaces para comparar subgrupos mediante la generación de lado a lado boxplots, o por mirar distribuciones
en el tiempo mediante la creación de una serie de diagramas de caja.

gráficas de distribución son útiles en el aprendizaje supervisado para determinar posibles métodos de minería de datos y las
transformaciones de variables. Por ejemplo, las variables numéricas sesgadas podrían justificar la transformación (por ejemplo,
pasando a una escala logarítmica) si se utiliza en métodos que asumen la normalidad (por ejemplo, regresión lineal, análisis
discriminante). Un histograma representa las frecuencias de todos X valores con una serie de barras conectados verticales. Por
ejemplo, Figura 3.2 una, hay más de 150 extensiones donde el valor de la mediana (MEDV) es de entre $ 20K y $ 25K.

Figura 3.2 gráficos de distribución para MEDV variable numérica. (A) Histograma, (b) Diagrama de caja

 código para la creación de la figura 3.2


# # histograma de MEDV
ax = housing_df.MEDV.hist ()
ax.set_xlabel ( 'MEDV'); ax.set_ylabel ( 'count')
# parcela alternativa con matplotlib fig, ax = plt.subplots ()
ax.hist (housing_df.MEDV)

ax.set_axisbelow (Verdadero) # Mostrar las líneas de la cuadrícula detrás del histograma (que ax.grid = 'mayor',
color = 'gris', LINESTYLE = '-') ax.set_xlabel ( 'MEDV'); ax.set_ylabel ( 'count') plt.show ()

# # diagrama de caja de MEDV para diferentes valores de CHAS ax =


housing_df.boxplot (columna = 'MEDV', por = 'CHAS') ax.set_ylabel ( 'MEDV')

plt.suptitle (”) # reprimir los títulos plt.title (”)

# parcela alternativa con matplotlib


dataForPlot = [lista (housing_df [housing_df.CHAS == 0] .medv),
Lista (housing_df [housing_df.CHAS == 1] .medv)]
fig, Ax = plt.subplots () ax.set_xticks ax.boxplot
(dataForPlot) ([1, 2], False) ax.set_xticklabels ([0,
1])

ax.set_xlabel ( 'CHAS'); ax.set_ylabel ( 'MEDV') plt.show ()

Un diagrama de caja representa la variable que está siendo representada en el y- eje (aunque la trama potencialmente se puede girar en un
ángulo de 90 °, de modo que las cajas son paralelas a la X- eje). Figura 3.2
b, hay dos diagramas de caja (llamados un diagrama de caja de lado a lado). La caja encierra 50% de los datos
- por ejemplo, en el cuadro de la derecha, la mitad de los tractos tiene valores de la mediana (MEDV) entre $ 20.000 y $ 33.000. La
línea horizontal dentro de la caja representa la mediana (percentil 50). La parte superior e inferior de la caja representan los 75º y 25º
percentiles, respectivamente. Líneas que se extienden por encima y por debajo de la tapa de la caja el resto de la gama de datos;
valores atípicos se pueden representar como puntos o círculos. A veces el promedio está marcada por un signo + (o similar) de signos.
La comparación de la media y la mediana de ayuda en la evaluación de cómo los datos son asimétricos. Boxplots son a menudo
dispuestas en una serie con una trama diferente para cada uno de los diversos valores de una segunda variable, que se muestra en la X-
eje.

Debido a que los histogramas y gráficos de caja están orientados a las variables numéricas, su forma básica es útil para predicción Ta
Diagramas de caja también pueden apoyar aprendizaje sin supervisión mediante la visualización de las relaciones entre una variable
numérica ( y- eje) y una variable categórica ( X- eje). Para ilustrar estos puntos, ver de nuevo Figura 3.2 . Figura 3.2 A muestra un
histograma de MEDV, revelando una distribución asimétrica. La transformación de la variable de salida a log (MEDV) podría mejorar
los resultados de un predictor de regresión lineal.

Figura 3.2 B muestra de lado a lado boxplots comparar la distribución de MEDV para los hogares que frontera del río
Charles (1) o no (0), a similares Figura 3.1 . Vemos que no sólo es la MEDV promedio para los hogares de los ríos, saltos
más altos que los hogares no-río que limita, sino también de toda la distribución es más alta (mediana, cuartiles, min y
max). También podemos ver que todas las casas de los ríos, saltos tienen MEDV por encima de $ 10K, a diferencia de los
hogares no-río saltando. Esta información es útil para identificar la importancia potencial de esta
predictor (CHAS), y para la elección de los métodos de minería de datos que pueden capturar el área no solapamiento
entre las dos distribuciones (por ejemplo, árboles).

Diagramas de caja e histogramas aplicadas a las variables numéricas también puede proporcionar instrucciones para derivar nuevas
variables, por ejemplo, pueden indicar la forma de cubo de una variable numérica (por ejemplo, se va a agrupar un resultado
numérico con el fin de utilizar un clasificador de Bayes ingenuo, o en el ejemplo de Boston Vivienda , elegir el punto de corte para
convertir MEDV a CAT.MEDV). Por último, diagramas de caja de lado a lado son útiles en tareas de clasificación para evaluar el
potencial de los predictores numéricos. Esto se hace mediante el uso de la X- eje para el resultado categórico y la y- ejes para un
predictor numérica. Un ejemplo se muestra en Figura 3.3 , Donde podemos ver los efectos de cuatro predictores numéricos sobre
CAT.MEDV. Los pares que están más separados (por ejemplo, PTRATIO y INDUS) indican predictores potencialmente útiles.

La principal debilidad de gráficos básicos y parcelas de distribución, en su forma básica (es decir, utilizando la
posición en relación a los ejes a los valores codificar), es que sólo puede mostrar dos variables y por lo tanto no
pueden revelar información de alta dimensión. Cada una de las tablas de base tiene dos dimensiones, donde cada
dimensión está dedicado a una sola variable. En la minería de datos, los datos son por lo general multivariante por
naturaleza, y los análisis están diseñados para capturar y medir la información multivariante. Por lo tanto visual
exploración debería también incorporar este importante aspecto. En la siguiente sección, se describe cómo
extender las cartas básicas (y parcelas de distribución) a la visualización de datos multidimensionales mediante la
adición de características, empleando manipulaciones, y la incorporación de la interactividad. sección 3.5 ).
Figura 3.3 De lado a lado de los diagramas de caja para la exploración de la variable de salida CAT.MEDV por
diferentes predictores numéricos. EN UN LADO-BY-SIDE diagrama de caja, uno de los ejes se utiliza para una
CATEGÓRICA VARIABLE, Y VARIABLE el otro para un numéricas. Trazado de una variable de resultado categórico
y un predictor numérica compara la distribución del predictor a través de las categorías de resultados. Trazado de
una variable de resultado numéricos y aparece un predictoras categóricas LA DISTRIBUCIÓN DE la variable de
resultado a través de diferentes niveles de la predictor

 código para la creación de la figura 3.3

# # de lado a lado boxplots


higo, hachas = plt.subplots (nRows = 1, ncols = 4)
housing_df.boxplot (columna = 'NOX', por 'CAT_MEDV' =, ax = ejes [0]) housing_df.boxplot (columna =
'LSTAT', por 'CAT_MEDV' =, ax = ejes [1]) housing_df.boxplot ( columna = 'PTRATIO', por 'CAT_MEDV' =, ax =
ejes [2]) housing_df.boxplot (columna = 'INDUS', por = 'CAT_MEDV', ax = ejes [3]) para hacha en ejes:

ax.set_xlabel ( 'CAT.MEDV')
plt.suptitle (”) # reprimir el título general
plt.tight_layout () # Aumentar la separación entre las parcelas

Heatmaps: Visualizando correlaciones y valores perdidos

UN mapa de calor es una representación gráfica de datos numéricos donde se utiliza color para valores denotan. En un contexto de minería de datos,
mapas de calor son especialmente útiles para dos propósitos: para la visualización de los cuadros de correspondencia y para la visualización de los
valores que faltan en los datos. En ambos casos, la información se transporta en una tabla de dos dimensiones. Una tabla de correlación para pag las
variables tienen
pag y filas pag columnas. Una tabla de datos contiene pag columnas (variables) y norte filas
(observaciones). Si el número de filas es enorme, a continuación, un subconjunto se puede utilizar. En ambos casos, es mucho más fácil y
más rápido para escanear el código de colores en lugar de los valores. Tenga en cuenta que mapas de calor son útiles cuando se examina
un gran número de valores, pero no son un sustituto para la visualización gráfica más precisos, tales como gráficos de barras, ya que las
diferencias de color no se pueden percibir con precisión.

Figura 3.4 Mapa de calor de una tabla de correspondencias. valores más oscuros denotan correlación más fuerte. Azul / rojo representar
valores positivos / negativos, respectivamente

 código para la creación de la figura 3.4

## sencillo heatmap de correlaciones (sin valores) corr = housing_df.corr ()

sns.heatmap (corr, xticklabels = corr.columns, yticklabels = corr.columns)


# Cambiar el mapa de colores a una escala divergente y fijar el rango de la sns.heatmap mapa de colores (corr, xticklabels =
corr.columns, yticklabels = corr.columns, Vmin = -1, vmax = 1, CMAP =”RdBu”)

# Incluir información acerca de los valores (ejemplo demuestran cómo controlar el tamaño de

# la trama
fig, Ax = plt.subplots () fig.set_size_inches (11,
7)
sns.heatmap (corr, Annot = True, fmt =”. 1f”, CMAP =”RdBu”, centro = 0, ax = ax)
Un ejemplo de un mapa de calor tabla de correspondencias que se muestra en la Figura 3.4 , Que muestra todas las correlaciones por
pares entre 13 variables (MEDV y 12 predictores). Los tonos más oscuros corresponden a la correlación más fuerte (positivo o negativo).
Es fácil de detectar rápidamente el alta y la baja correlación. El uso de azul / rojo se utiliza en este caso para poner de relieve las
correlaciones positivas frente a negativas.

Figura 3.5 Mapa de calor de los valores perdidos en un conjunto de datos sobre accidentes de tráfico. denota grises valor faltante

 código para generar un mapa de calor de los valores que faltan similar a la figura 3.5

df = pd.read_csv ( 'NYPD_Motor_Vehicle_Collisions_1000.csv'). sort_values ​([ 'FECHA'])


# da una trama de datos DF crear una copia de la matriz que es 0 si un campo contiene un valor # 1 y para NaN

[Valores df.isna ().] NaInfo = np.zeros (df.shape)


naInfo = 1
naInfo = pd.DataFrame (naInfo, columnas = df.columns) fig, ax = plt.subplots ()
fig.set_size_inches (13, 9)

ax = sns.heatmap (naInfo, Vmin = 0, vmax = 1, CMAP = [”blanco”, “# 666666” ], cbar = False, ax = ax)
ax.set_yticks ([])
# dibujar marco alrededor de la figura
rect = plt.Rectangle ((0, 0), naInfo.shape [1], naInfo.shape [0], anchura de línea = 1, edgecolor = 'lightgrey', facecolor = 'none') rect =
ax.add_patch (rect) rect.set_clip_on (Falso) plt.xticks (rotación = 80)

En un mapa de calor valor faltante, filas corresponden a los registros y las columnas a las variables. Utilizamos una codificación binaria
de la base de datos original, donde 1 indica un valor faltante y 0 en caso contrario. Esta nueva tabla binaria entonces se colorea que
las células de valor tales sólo faltan (con valor 1) se colorean. Figura 3.5 muestra un ejemplo de un mapa de calor que falta valor para
un conjunto de datos sobre las colisiones de vehículos de motor. 4 El mapa de calor datos que faltan ayuda a visualizar el nivel y la
cantidad de “pérdida” del conjunto de datos. Algunos patrones de “pérdida” del emergen fácilmente: las variables que faltan para casi
todas las observaciones, así como grupos de filas que faltan muchos valores. Las variables con poca missingness también son
visibles. Esta información puede entonces ser utilizada para determinar cómo manejar la missingness (por ejemplo, dejando caer
algunas variables, dejando caer algunos registros, imputar, o por medio de otras técnicas).

3.4 Visualización Multidimensional


tramas básicas pueden transmitir una información más completa, con características tales como el color, tamaño y múltiples
paneles, y por las operaciones tales como cambio de escala, agregación y permitiendo la interactividad. Estas adiciones permiten
mirar más de una o dos variables a la vez. La belleza de estas adiciones es su eficacia en la visualización de información compleja
de una manera fácilmente comprensible. características eficaces se basan en la comprensión de cómo funciona la percepción visual
(ver Pocos, 2009 para una discusión). El propósito es hacer que la información sea más comprensible, no sólo para representar los
datos en dimensiones más altas (por ejemplo, de tres parcelas de dimensiones que son generalmente ineficaces visualizaciones).

La adición de variables: color, tamaño, forma, múltiples paneles y animación

Con el fin de incluir más variables en una parcela, debemos tener en cuenta el tipo de variable a incluir. Para representar la
información categórica adicional, la mejor manera es utilizar el tono, la forma o varios paneles. Para obtener información
adicional numérica, podemos utilizar la intensidad o color tamaño. información temporal puede ser añadido a través de la
animación. La incorporación categórica adicional y / o variables numéricas en la base (y distribución) parcelas medios que
ahora podemos utilizar todos ellos, tanto para tareas de predicción y clasificación. Por ejemplo, hemos mencionado
anteriormente que una trama básica de dispersión no puede ser utilizado para el estudio de la relación entre un resultado
categórico y predictores (en el contexto de la clasificación). Sin embargo, una trama muy eficaz para la clasificación es un
gráfico de dispersión de dos predictores numéricos codificados por color por la variable de resultado categórico. Figura 3.6 a,
con CAT.MEDV de color que denota.
Figura 3.6 Adición de variables categóricas por código de colores y múltiples paneles. (A) Diagrama de dispersión de dos
predictores numéricos, un código de colores por el CAT.MEDV resultado categórico. (B) Diagrama de barras de MEDV por dos
predictores categóricos (ACS y RAD), el uso de múltiples paneles para CHAS

 código para la creación de la figura 3.6

# Color de los puntos por el valor de CAT.MEDV


housing_df.plot.scatter (x = 'LSTAT', Y = 'NOX', c = [ 'C0' si c == 1 else 'C1' para c en housing_df.CAT_MEDV])

# Trazar primero los puntos de datos para CAT.MEDV de 0 y de 1


# Ajuste de color a 'ninguno' da círculos abiertos _, ax = plt.subplots ()

para catValue, color en (0, 'C1'), (1, 'C0'):


subset_df = housing_df [housing_df.CAT_MEDV == catValue]
ax.scatter (subset_df.LSTAT, subset_df.NOX, color = 'none', edgecolor = color) ax.set_xlabel ( 'LSTAT') ax.set_ylabel ( 'NOX')

ax.legend ([”CAT.MEDV 0” ,“CAT.MEDV 1” ]) plt.show ()

# # parcelas de panel
# Calcular los MEDV por RAD y CHAS
dataForPlot_df = housing_df.groupby ([ 'CHAS', 'RAD']). media () [ 'MEDV']
# Determinamos todos los posibles valores de RAD para uso como garrapatas garrapatas =
conjunto (housing_df.RAD) para i en el rango de (2):

para t en ticks.difference (dataForPlot_df [i] .index):


dataForPlot_df.loc [(i, t)] = 0
# reordenación de filas, por lo que el índice se ordena
dataForPlot_df = dataForPlot_df [ordenados (dataForPlot_df.index)]
# Determinar un rango común para la yrange eje y = [0, max
(dataForPlot_df) * 1.1] higo, hachas = plt.subplots (nRows = 2, ncols = 1)

dataForPlot_df [0] .plot.bar (x = 'RAD', ax = ejes [0], ylim = yrange) dataForPlot_df [1] .plot.bar (x = 'RAD',
ax = ejes [1], ylim = yrange) ejes [0] .annotate ( 'CHAS = 0', XY = (3,5, 45)) ejes [1] .annotate ( 'CHAS = 1',
XY = (3,5, 45)) plt.show ()
En el contexto de la predicción, color de codificación de soportes la exploración de la relación condicional entre el resultado
numérico (en el y- eje) y un predictor numérico. diagramas de dispersión con código de colores y luego ayudar a evaluar la
necesidad de la creación de los términos de interacción (por ejemplo, es la relación entre MEDV y LSTAT diferente para
casas cerca vs. lejos del río?).

El color también se puede utilizar para incluir más variables categóricas en un gráfico de barras, siempre que el número de categorías
es pequeño. Cuando el número de categorías es grande, una mejor alternativa es utilizar múltiples paneles. La creación de múltiples
paneles (también llamado “trellising”) se realiza mediante la división de las observaciones de acuerdo con una variable categórica, y la
creación de una parcela separada (del mismo tipo) para cada categoría. Un ejemplo se muestra en Figura 3.6 b, donde un gráfico de
barras de MEDV promedio por RAD se divide en dos paneles por CHAS. Vemos que el MEDV promedio para diferentes niveles de
accesibilidad carretera (RAD) se comporta de forma diferente para casas cerca del río (panel inferior) en comparación con los hogares
de distancia del río (panel superior). Esto es especialmente destacado para RAD = 1. También vemos que no hay hogares en los
niveles de los ríos NEAR-RAD 2, 6 y 7. Tal información podría llevarnos a crear un término de interacción entre RAD y CHAS, y
considerar algunos de condensación de los contenedores en RAD. Todas estas exploraciones son útiles para la predicción y
clasificación. Un diagrama de dispersión especial que utiliza parcelas con múltiples paneles es el matriz diagrama de dispersión. En
ella, todas las parcelas de pares de dispersión se muestran en una sola pantalla. Los paneles en una parcela matriz de dispersión se
organizan de una manera especial, de manera que cada columna y cada fila corresponde a una variable, con lo que las intersecciones
crean todas las posibles parcelas pairwise de dispersión. La matriz gráfica de dispersión es útil en el aprendizaje sin supervisión para
el estudio de las asociaciones entre las variables numéricas, la detección de valores atípicos y la identificación de clusters. Para el
aprendizaje supervisado, que puede ser utilizado para examinar las relaciones de pares (y su naturaleza) entre predictores de apoyo a
las transformaciones de variables y selección de variables (ver Análisis de correlación de Capítulo 4 ). Para la predicción, sino que
también se puede utilizar para describir la relación de los resultados con los predictores numéricos. Un ejemplo de una matriz de
gráfico de dispersión se muestra en la Figura 3.7 , Con MEDV y tres predictores. Debajo de la diagonal son los gráficos de dispersión.
Nombre de la variable indica el y- variable del eje. Por ejemplo, las parcelas en la fila de abajo todos tienen en la MEDV y- eje (que
permite el estudio de las relaciones de la obtención de resultados de predicción individuales). Podemos ver diferentes tipos de
relaciones entre las diferentes formas (por ejemplo, una relación exponencial entre MEDV y LSTAT y una relación muy desigual entre
CRIM y INDUS), lo que puede indicar las transformaciones necesarias. A lo largo de la diagonal y cuando se trate simplemente de una
sola variable, se muestra la distribución de frecuencias para esa variable. Los diagramas de dispersión por encima de la diagonal
contienen los coeficientes de correlación correspondientes a las dos variables.
Figura 3.7 matriz de diagrama de dispersión para MEDV y tres predictores numéricos

 código para la creación de la figura 3.7

# diagramas de dispersión de visualización entre las diferentes variables


# Los espectáculos diagonales la distribución para cada variable df = housing_df [[ 'CRIM',
'INDUS', 'LSTAT', 'MEDV']]
ejes = scatter_matrix (df, alfa = 0,5, figsize = (6, 6), = diagonales 'kde') corr = df.corr (). as_matrix ()

para i, j en zip (* plt.np.triu_indices_from (ejes, k = 1)):


ejes [i, j] .annotate ('
xycoords = 'ejes fracción', ha = 'centro', va = 'centro')
plt.show ()

Una vez que el tono se utiliza, más variables categóricas se pueden añadir a través de la forma y múltiples paneles. Sin embargo, se
debe proceder con cautela en la adición de múltiples variables, como la pantalla puede llenarse sobre-y entonces se pierde la
percepción visual.

Adición de una variable numérica a través de tamaño es útil en especial en gráficos de dispersión (creando de este modo “parcelas de burbujas”),

ya que en un gráfico de dispersión, los puntos representan las observaciones individuales. En las parcelas que se agregan a través de

observaciones (por ejemplo, Diagramas de caja, histogramas, gráficos de barras), el tamaño y el tono no se incorporan normalmente.
Por último, añadir una dimensión temporal de una parcela para mostrar cómo cambia la información en el tiempo se puede lograr a través
de la animación. Un ejemplo famoso es gráficos de dispersión animados de Rosling que muestran cómo la demografía mundial cambiado a
lo largo de los años ( www.gapminder.org ). Sin embargo, mientras que las animaciones de este tipo para el trabajo “narración estadística”,
que no son muy eficaces para la exploración de datos.

Manipulaciones: Reescalando, agregación y jerarquías, zoom, Filtrado

La mayor parte del tiempo invertido en proyectos de minería de datos se gasta en el procesamiento previo. Por lo general, un esfuerzo
considerable recibiendo todos los datos en un formato que se puede utilizar realmente en el software de minería de datos. El tiempo
adicional se gasta el procesamiento de los datos de manera que mejoren el rendimiento de los procedimientos de minería de datos. Este
paso de preprocesamiento en la minería de datos incluye la transformación variable y derivación de nuevas variables en los modelos
ayudar a realizar con mayor eficacia. Transformaciones incluyen el cambio de la escala numérica de una variable, se van a agrupar las
variables numéricas, y condensando categorías en las variables categóricas. Los siguientes manipulaciones apoyan la etapa de
preprocesamiento, así la elección de los métodos de minería de datos adecuados. Lo hacen mediante patrones reveladores y su
naturaleza.
Figura 3.8 Cambio de escala puede mejorar parcelas y revelar patrones. (A) escala original, (b) escala logarítmica

 código para la creación de la figura 3.8

# Evitar el uso de la notación científica para el registro de eje plt.rcParams [


'axes.formatter.min_exponent'] = 4
# # gráfico de dispersión: escala regular y registro
higo, hachas = plt.subplots (nRows = 1, ncols = 2, figsize = (7, 4))
# escala regular
housing_df.plot.scatter (x = 'CRIM', y = 'MEDV', ax = ejes [0])
# escala logarítmica
ax = housing_df.plot.scatter (x = 'CRIM', y = 'MEDV', logx = True, logy = True, ax = ejes [1])

ax.set_yticks ([5, 10, 20, 50]) ax.set_yticklabels ([5, 10, 20,


50]) plt.tight_layout (); plt.show ()

# # diagrama de caja: escala regular y registro


higo, hachas = plt.subplots (nRows = 1, ncols = 2, figsize = (7, 3))
# escala regular
ax = housing_df.boxplot (columna = 'CRIM', por = 'CAT_MEDV', ax = ejes [0]) ax.set_xlabel ( 'CAT.MEDV');
ax.set_ylabel ( 'CRIM')
# escala logarítmica
ax = housing_df.boxplot (columna = 'CRIM', por = 'CAT_MEDV', ax = ejes [1]) ax.set_xlabel ( 'CAT.MEDV'); ax.set_ylabel (
'CRIM'); ax.set_yscale ( 'log')
# suprimir el título
ejes [0] .get_figure () suptitle (.”); plt.tight_layout (); plt.show ()

reescalado

Al cambiar la escala en una pantalla se puede mejorar la trama y las relaciones iluminará. Por ejemplo, en Figura 3.8 , Vemos
el efecto de cambiar los dos ejes del diagrama de dispersión (arriba) y la y- eje de un diagrama de caja (parte inferior) a escala
logarítmica (log). Considerando que las parcelas originales (a) son difíciles de entender, los patrones se hacen visibles en la
escala logarítmica (b). En los histogramas, la naturaleza de la relación entre MEDV y CRIM es difícil de determinar en la
escala original, porque muchos de los puntos son “lleno” cerca de la y- eje. El escalado re- elimina esta hacinamiento y permite
una mejor vista de la relación lineal entre las dos variables a escala log-(indicando una relación log-log). En el diagrama de
caja, mostrando el hacinamiento hacia el X- eje en las unidades originales no nos permiten comparar los dos tamaños de
cajas, su ubicación, los valores extremos inferiores y la mayor parte de la información de distribución. reescalado elimina el
“desplazamiento a la X- eje”efecto, lo que permite una comparación de los dos diagramas de caja.

Agregación y jerarquías

Otra manipulación útil de escalamiento está cambiando el nivel de agregación. Para una escala temporal, podemos agregar por
granularidad diferente (por ejemplo, mensual, diario, cada hora) o incluso por un factor “estacional” de interés tales como mes de
año o el día de la semana. Una agregación popular para series de tiempo es una media móvil, donde el promedio de los valores
dentro de un vecino tamaño de la ventana dada se representa. Mover parcelas promedio mejorar la visualización de una tendencia
mundial (véase capítulo 16 ).

Las variables no temporales se pueden agregar si existe alguna jerarquía significativa: extensiones geográficas (dentro de un
código postal en el ejemplo de Boston Vivienda), organización (personas dentro de los departamentos dentro de las unidades),
etc. Figura 3.9 ilustra dos tipos de agregación para la serie de tiempo de pasajeros de ferrocarril. La serie mensual original se
muestra en
Figura 3.9 a. la agregación de temporada (por mes de año) se muestra en Figura 3.9 b, donde es fácil ver el pico de pasajeros
en julio-agosto y la caída en enero-febrero. El panel muestra la parte inferior derecha de agregación temporal, donde se
muestra ahora la serie de los agregados anuales. Esta trama revela la tendencia a largo plazo global en número de usuarios
y la tendencia generalmente creciente a partir de 1996.
Figura 3.9 Tiempo gráficos de líneas serie usando diferentes agregaciones (b, d), curvas de adición (A), y el zoom en (c)

 código para la creación de la figura 3.9

higo, hachas = plt.subplots (nRows = 2, ncols = 2, figsize = (10, 7)) Amtrak_df = pd.read_csv (
'Amtrak.csv')
Amtrak_df [ 'Mes'] = pd.to_datetime (Amtrak_df.Month, format =' Amtrak_df.set_index ( 'Mes', inplace = true)

# curva cuadrática ajuste y visualización


quadraticFit = np.poly1d (np.polyfit (rango (len (Amtrak_df)), Amtrak_df.Ridership,
2))
Amtrak_fit = pd.DataFrame ( 'ajuste': [quadraticFit (t) para t en el rango (len (Amtrak_df))])

Amtrak_fit.index = Amtrak_df.index
ax = Amtrak_df.plot (ylim = [1,300, 2,300], leyenda = FALSE, ax = ejes [0] [0]) Amtrak_fit.plot (ax = ax)

ax.set_xlabel ( 'Year'); ax.set_ylabel ( 'Ridership (en 000s)') # set x y la etiqueta de eje y

# Zoom periodo 1/1/1991 2 años a 12/01/1992


ridership_2yrs = Amtrak_df.loc [ '1991-01-01': '01/12/1992']
ax = ridership_2yrs.plot (ylim = [1,300, 2,300], leyenda =, ax = ejes [1] [0] False) ax.set_xlabel ( 'Año'); ax.set_ylabel ( 'Ridership (en 000s)') #
conjunto X y el eje Y
etiqueta
# Promedio por mes
byMonth = Amtrak_df.groupby (por = [Amtrak_df.index.month]). media () ax = byMonth.plot (ylim = [1,300, 2,300], leyenda =, ax = ejes [0] [1]
False) hacha. set_xlabel ( 'Mes'); ax.set_ylabel ( 'Ridership (en 000s)') # set x y la etiqueta de eje y

yticks = [-2,0, -1,75, -1,5, -1,25, -1,0, -0,75, -0,5, -0.25,0.0] ax.set_xticks (intervalo (1, 13))

ax.set_xticklabels ([calendar.month_abbr [i] para i en el rango de (1, 13)]);


# Promedio por año (excluir los datos de 2004) byYear = Amtrak_df.loc.. [
'1991-01-01': '2003-12- 01'] GroupBy (pd.Grouper (frec = 'A')) media ()

ax = byYear.plot (ylim = [1300, 2300], la leyenda = false, ax = ejes [1] [1]) ax.set_xlabel ( 'Year'); ax.set_ylabel ( 'Ridership (en 000s)') # set x
y la etiqueta de eje y

plt.tight_layout () plt.show ()

El examen de diferentes escalas, agregaciones, o jerarquías soportes ambas tareas supervisadas y no supervisadas en
que puede revelar patrones y relaciones en los distintos niveles, y puede sugerir nuevos conjuntos de variables con las
que trabajar.

Zoom y panorámica
La capacidad de hacer zoom dentro y fuera de ciertas áreas de los datos sobre una parcela es importante que los patrones
reveladores y valores atípicos. Estamos interesados ​menudo con más detalle en las áreas de información densa o de interés
especial. Panorámica hace referencia a la operación de mover la ventana de ampliación a otras áreas (populares en aplicaciones de
mapas como Google Maps). Un ejemplo de una función de zoom se muestra en la Figura 3.9 c, donde la serie de pasajeros hace
zoom con los dos primeros años de la serie.

Zoom y panorámica apoyo supervisado y métodos sin supervisión mediante la detección de áreas de comportamiento diferente, que
pueden conducir a la creación de nuevos términos de interacción, nuevas variables, o incluso modelos separados para subconjuntos de
datos. Además, zoom y panorámica ayuda puede elegir entre los métodos que asumen comportamiento global (por ejemplo, modelos de
regresión) y métodos basadas en datos (por ejemplo, los pronosticadores de suavizado exponencial y k- clasificadores primeros vecinos),
e indicar el nivel de comportamiento global / local (como se manifiesta por parámetros tales como k en

k- vecinos más cercanos, el tamaño de un árbol, o los parámetros de suavizado de suavizado exponencial).

Filtración

medios de filtrado eliminación de algunas de las observaciones de la parcela. El propósito de la filtración es enfocar la
atención en ciertos datos al tiempo que elimina el “ruido” creado por otros datos. admite el filtrado supervisados ​y
aprendizaje no supervisado de una manera similar al zoom y panorámica: que ayuda a identificar el comportamiento local
diferente o inusual.

Referencia: líneas de tendencia y etiquetas


Las líneas de tendencia y el uso de parcelas en Las etiquetas también ayuda a detectar patrones y valores atípicos. Las líneas de tendencia
sirven como referencia, y nos permiten evaluar más fácilmente la forma de un patrón. A pesar de que la linealidad es fácil visualmente percibir,
relaciones más elaboradas como las tendencias exponenciales y polinómicas son más difíciles de evaluar por el ojo. Las líneas de tendencia son
útiles en gráficos de líneas, así como en gráficos de dispersión. Un ejemplo se muestra en Figura 3.9 a, donde una curva polinómica se
superpone en el gráfico de la línea original (véase también capítulo 16 ).

En las pantallas que no son de hacinamiento, el uso de etiquetas en-trama puede ser útil para una mejor exploración de los valores atípicos y
clusters. Un ejemplo se muestra en Figura 3.10 (Una reproducción de Figura 15.1 con la adición de etiquetas). La figura muestra diferentes
utilidades en un gráfico de dispersión que compara el costo del combustible con las ventas totales. Podríamos estar interesado en la
agrupación de los datos, y el uso de algoritmos de agrupamiento para identificar grupos que difieren notablemente con respecto al costo del
combustible y las ventas. Figura 3.10 , Con las etiquetas, ayuda a visualizar estos grupos y sus miembros (por ejemplo, Nevada y Puget son
parte de un clúster clara con los costos de combustible y bajas altas ventas). Para más información sobre la agrupación y en este ejemplo,
consulte capítulo 15 .
Figura 3.10 Diagrama de dispersión con puntos marcados

 código para la creación de la figura 3.10

utilities_df = pd.read_csv ( 'Utilities.csv')


Ax = utilities_df.plot.scatter (x = 'Sales', Y = 'Fuel_Cost', figsize = (6, 6)) puntos = utilities_df [[ 'Ventas', 'Fuel_Cost', 'Company']]
_ = puntos. aplicar (lambda x:

ax.text (* x, rotación = 20 HorizontalAlignment =, 'izquierda',


VerticalAlignment = 'inferior', tamaño de fuente = 8), eje = 1)

Ampliación para grandes conjuntos de datos

Cuando el número de observaciones (filas) es grande, las parcelas que muestran cada observación individual (por ejemplo,
gráficos de dispersión) pueden convertirse en ineficaces. Aparte de usar agregados
gráficos tales como diagramas de cajas, algunas de las alternativas son:

1. Toma de muestras de dibujo de una muestra aleatoria y usarla para el trazado

2. Reducir el tamaño del marcador

3. El uso de colores marcador más transparentes y la eliminación de relleno

4. Romper los datos en subconjuntos (por ejemplo, mediante la creación de múltiples paneles)

5. Uso de agregación (por ejemplo, las parcelas de burbujas donde tamaño corresponde al número de observaciones en
un cierto rango)

6. Uso de jittering (que se mueve ligeramente cada marcador mediante la adición de una pequeña cantidad de ruido) Un ejemplo de la

ventaja de planear una muestra sobre el gran conjunto de datos se muestra en la


Figura 12.2 en capítulo 12 , Donde un gráfico de dispersión de los registros de 5000 se representa junto a un gráfico de dispersión de una muestra. Figu

3.11 ilustra una trama mejorada del conjunto de datos completo mediante el uso de marcadores más pequeños, utilizando jittering a los puntos

superpuestos destapar, y colores más transparentes. Podemos ver que las áreas más grandes de la trama están dominados por la clase de color

gris, la clase negro se debe principalmente a la derecha, mientras que hay una gran cantidad de superposición en la zona superior derecha.

Figura 3.11 Diagrama de dispersión de gran conjunto de datos con la reducción de tamaño del marcador, variación, y la coloración más transparente

 código para la creación de la figura 3.11

def jitter (x, el factor = 1):


“””Añadir jitter aleatorio para valores de x“”” sx = np.array
(ordenados (x)) delta = sx [1:] - sx [: - 1]

minDelta = min (d para d en delta si d> 0) a = factor de * minDelta / 5

retorno x + np.random.uniform (-a, a, len (x)) = universal_df pd.read_csv (


'UniversalBank.csv')
saIdx = universal_df [universal_df [ 'cuenta de valores'] == 1] .index plt.figure (figsize = (10,6))

plt.scatter (jitter (universal_df.drop (saIdx) .Income),


jitter (universal_df.drop (saIdx) .CCAvg), marcador = 'o', color = 'gris',
alfa = 0,2)
plt.scatter (jitter (universal_df.loc [saIdx] .Income),
jitter (universal_df.loc [saIdx] .CCAvg), marcador = 'o', color = 'rojo',
alfa = 0,2)
plt.xlabel ( 'Ingresos') plt.ylabel (
'CCAVG') plt.ylim ((0,05, 20)) ejes =
plt.gca ()

axes.set_xscale (”log”) axes.set_yscale


(”log”) plt.show ()

Terreno multivariado: Paralelo Terreno Coordenadas

Otro enfoque hacia la presentación de la información multidimensional en un gráfico bidimensional es a través de parcelas
especializadas, como el parcela de coordenadas paralela. En esta gráfica, un eje vertical se dibuja para cada variable.
Entonces cada observación está representada por trazar una línea que conecta sus valores en los diferentes ejes, creando de
este modo un “perfil multivariante.” Un ejemplo se muestra en Figura 3.12 para los datos de vivienda de Boston. En esta
pantalla, paneles separados se utilizan para los dos valores de CAT.MEDV, con el fin de comparar los perfiles de las casas en
las dos clases (para una tarea de clasificación). Vemos que las casas más caras (panel inferior) tienen consistentemente baja
CRIM, bajo LSAT y alta RM en comparación con los hogares más baratos (panel superior), que son más mezclados en el
CRIM, y LSAT, y tienen un nivel medio de RM. Esta observación da indicación de predictores útiles y sugiere posible binning
para algunos predictores numéricos.

coordenadas paralelas parcelas son también útiles en las tareas de supervisión. Ellos pueden revelar racimos, valores atípicos y la
superposición de información a través de las variables. Una manipulación útil es reordenar las columnas para revelar mejor clusterings de
observación.
Figura 3.12 parcela de coordenadas paralelas para los datos de Boston Vivienda. Cada una de las variables (que se muestran en el eje
horizontal) se escala para 0-100%. Los paneles se utilizan para distinguir CAT.MEDV (panel superior = hogares por debajo de $
30.000)

 código para la creación de la figura 3.12

# Transformar los ejes, de manera que todos ellos tienen la misma min_max_scaler rango =
preprocessing.MinMaxScaler ()
dataToPlot = pd.DataFrame (min_max_scaler.fit_transform (housing_df), columnas = housing_df.columns)

higo, hachas = plt.subplots (nRows = 2, ncols = 1) para i en (0, 1):

parallel_coordinates (dataToPlot.loc [dataToPlot.CAT_MEDV == i], 'CAT_MEDV', ax = ejes [i], anchura de línea = 0,5)

ejes [i] .set_title ( 'CAT.MEDV =' .formato (i)) ejes [i] .set_yticklabels ([])

ejes [i] .legend (). set_visible (Falso)


plt.tight_layout () # Aumentar la separación entre las parcelas

Visualización interactiva
Al igual que en la naturaleza interactiva del proceso de minería de datos, la interactividad es la clave para la mejora de nuestra
capacidad de obtener información de la visualización gráfica. En palabras de pocos (2009), un experto en visualización de datos:

Sólo podemos aprender mucho cuando mirando a una visualización estática, como una gráfica impresa ... Si no podemos
interactuar con los datos ... que golpear la pared.

Por la visualización interactiva, nos referimos a una interfaz que es compatible con los siguientes principios:

1. hacer cambios a un gráfico es fácil, rápida y reversible.

2. Los gráficos y tablas concurrentes múltiples se pueden combinar fácilmente y se muestran en una sola pantalla.

3. Un conjunto de visualizaciones puede estar vinculada, por lo que las operaciones en una pantalla se reflejan en las otras pantallas.

Consideremos algunos ejemplos en los que un generador de contraste trama estática (por ejemplo, Excel) con una interfaz de
visualización interactiva.

histograma Rebinning

Considerar la necesidad de un cubo de variables numéricas y utilizando un histograma para ese propósito. Un histograma estática
requeriría replotting para cada nueva opción de agrupación. Si el usuario genera múltiples parcelas, a continuación, la pantalla se
vuelve desordenado. Si se vuelve a crear la misma parcela, entonces es difícil comparar diferentes opciones de agrupación. En
contraste, una visualización interactiva proporcionaría una manera fácil de cambio de anchura bin interactiva (véase, por ejemplo, el
control deslizante debajo del histograma en Figura 3.13 ), Y luego el histograma sería Replot automática y rápidamente como el usuario
cambia la anchura bin.
Figura 3.13 parcelas inter-relacionado múltiples en una sola vista (usando Spotfire). Tenga en cuenta la observación marcada en el panel
superior-izquierda, que también se destacó en todas las otras parcelas

Agregación y zoom

Considere una tarea previsión de serie temporal, dada una larga serie de datos. Se necesita agregación temporal en múltiples niveles
para la determinación de patrones de corto y largo plazo. Zoom y panorámica se utilizan para identificar los períodos inusuales. A
estática software de trazado requiere que el usuario para calcular nuevas variables para cada agregación temporal (por ejemplo,
datos diarios agregados para obtener agregados semanales). Zoom y panorámica requiere cambiar manualmente el valores mínimo
y máximo en la escala del eje de interés (perdiendo así la capacidad de moverse rápidamente entre las diferentes zonas sin crear
varios gráficos). Una visualización interactiva proporcionaría jerarquías temporales inmediatos que el usuario puede cambiar
fácilmente entre ellos. El zoom se habilita como un control deslizante cerca del eje (véase, por ejemplo, los controles deslizantes en
el panel superior izquierdo de Figura 3.13 ), Permitiendo de este modo la manipulación directa y de reacción rápida.

Combinando Parcelas Vinculados múltiples que caben en una sola pantalla


Para apoyar una tarea de clasificación, múltiples parcelas se crean de la variable de resultado potencial vs categórica y predictores
numéricos. Estos pueden incluir diagramas de caja de lado a lado, diagramas de dispersión con códigos de color, y los gráficos de
barras multipanel. El usuario quiere detectar posibles relaciones multidimensionales (e identificar posibles valores atípicos) mediante la
selección de un cierto subconjunto de los datos (por ejemplo, una única categoría de alguna variable) y la localización de las
observaciones sobre las otras parcelas. En una interfaz estática, el usuario tendría que organizar manualmente las parcelas de interés y
cambiar su tamaño con el fin de encajar en una sola pantalla. Una interfaz estática por lo general no apoyaría la vinculación entre la
trama, e incluso si lo hiciera, todo el conjunto de parcelas tendría que ser regenerado cada vez que se ha realizado una selección. A
diferencia de, una visualización interactiva proporcionaría una manera fácil de organizar de forma automática y cambiar el tamaño del
conjunto de parcelas para que quepa en una pantalla. Que une el conjunto de parcelas sería fácil, y en respuesta a la selección de los
usuarios en una trama, la selección apropiada sería resaltada de forma automática en las otras parcelas (véase el ejemplo de Figura 3.13 ).

En las secciones anteriores, se utilizaron parcelas para ilustrar las ventajas de visualizaciones, ya que “una imagen vale más que mil
palabras.” Las ventajas de una visualización interactiva son aún más difíciles de expresar con palabras. Como Ben Shneiderman, un
investigador bien conocidos en la visualización de la información y las interfaces, lo expresa así:

Una imagen vale mas que mil palabras. Una interfaz vale más que mil imágenes. La capacidad de interactuar con
parcelas, y los unen se convierte trazado en una herramienta analítica que soportes exploración continua de los datos.
Varias herramientas de visualización comerciales proporcionan potentes capacidades a lo largo de estas líneas; dos
muy populares son Spotfire ( http://spotfire.tibco.com ) Y Tableau ( www.tableausoftware.com ); Figura 3.13 se generó
usando Spotfire.

Tableau y Spotfire han gastado cientos de millones de dólares en programas de I + D y el examen de las interacciones con los clientes a
las interfaces de la piedra de afilar que permiten a los analistas a interactuar con los datos a través de parcelas sin problemas y
eficientemente. Es difícil de replicar la interfaz de usuario sofisticada y de alta ingeniería requerida para una rápida progresión a través de
diferentes puntos de vista exploratorio de los datos en un lenguaje de programación como Python. La necesidad está ahí, sin embargo, y la
comunidad de Python se está moviendo para proporcionar interactividad en las parcelas. El uso extendido de JavaScript en el desarrollo
web ha llevado a algunos programadores de Python para combinar con las bibliotecas de JavaScript, como argumentalmente o Bokeh (ver Bib
de Python argumentalmente a

https://plot.ly/python/ o Desarrollo con JavaScript a


http://bokeh.pydata.org/en/latest/docs/user_guide/bokehjs.html ). En el momento de escribir estas líneas, herramientas de interactividad
en Python fueron evolucionando, y los programadores de Python son propensos a ver más y herramientas de alto nivel emergente.
Esto debería permitirles desarrollar parcelas interactivos personalizados de forma rápida y desplegar estas visualizaciones para su uso
por otros analistas no de programación en la organización.

3.5 Las visualizaciones Especializados

En esta sección, mencionamos unos visualizaciones especializadas que son capaces de capturar datos
estructuras más allá de las series de tiempo estándar y estructuras especiales transversales tipos de relaciones que son
generalmente difíciles de capturar con tramas ordinarias. En particular, nos dirigimos a los datos jerárquicos, datos de red y
datos geográficos tres tipos de datos que se están volviendo cada vez más disponibles.

Visualización de datos en red

técnicas de análisis de redes fueron generados por la explosión de datos de la red social y de productos. Ejemplos de
redes sociales son redes de compradores y vendedores en eBay y redes de usuarios en Facebook. Un ejemplo de
una red de productos es la red de productos en Amazon (unido a través del sistema de recomendación). visualización
de datos de red está disponible en diversos software de red especializados, y también en el software de propósito
general.

Un diagrama de red se compone de actores y las relaciones entre ellos. “nodos” son los actores (por ejemplo, los usuarios en una red
social o productos en una red de producto), y representados por los círculos. “bordes” son las relaciones entre los nodos, y están
representadas por líneas que unen los nodos. Por ejemplo, en una red social como Facebook, podemos construir una lista de
usuarios (nodos) y todas las relaciones de pares (bordes) entre los usuarios que son “amigos”. Alternativamente, podemos definir los
bordes como un anuncio de que los mensajes de un usuario en la página de Facebook de otro usuario. En esta configuración,
podríamos tener más que un solo borde entre dos nodos. Las redes también pueden tener nodos de varios tipos. Una estructura
común es redes con dos tipos de nodos. Un ejemplo de un nodo de red de dos tipo se muestra en Figura 3.14 , Donde vemos un
conjunto de transacciones entre una red de vendedores y compradores en el sitio de subastas en línea www.eBay.com [Los datos son
para las subastas de venta de perlas de Swarovski, y se llevaron a cabo durante un período de varios meses; de Jank y Yahav
(2010)]. Los círculos negros representan los vendedores y los círculos grises representan los compradores. Podemos ver que este
mercado está dominado por unos pocos vendedores de gran volumen. También podemos ver que muchos compradores de
interactuar con un solo vendedor. Las estructuras de mercado para muchos productos individuales podrían revisarse rápidamente de
esta manera. proveedores de la red podrían utilizar la información, por ejemplo, para identificar posibles asociaciones para explorar
con los vendedores.
Figura 3.14 parcela de la red de vendedores de eBay (círculos negros) y compradores (círculos grises) de perlas de Swarovski

 código para la creación de la figura 3.14

ebay_df = pd.read_csv ( 'eBayNetwork.csv')


G = nx.from_pandas_edgelist (ebay_df, fuente = 'Vendedor', target = 'postor') isBidder = [n en el conjunto (ebay_df.Bidder)
para n en G.nodes ()] pos = nx.spring_layout (G, k = 0.13, iteraciones = 60, escala = 0,5) plt.figure (figsize = (10,10))

nx.draw_networkx (G, pos = POS, with_labels = FALSE,


edge_color = 'lightGray',
node_color = [ 'gris' si el licitador lo demás 'negro' para el oferente en
isBidder],
node_size = [50 si postor más 200 para postor en isBidder])
plt.axis plt.show ( 'off') ()
Figura 3.14 fue producida usando el paquete de NetworkX de Python. Otro paquete útil es python-igraph. El uso de estos paquetes,
las redes pueden ser importados desde una variedad de fuentes. El aspecto de la trama se puede personalizar y diversas
características se encuentran disponibles, como el filtrado nodos y bordes, alterando el diseño de la trama, la búsqueda de grupos
de nodos relacionados, el cálculo de métricas de red, y la realización de análisis de redes (ver capítulo 19 para más detalles y
ejemplos).

parcelas de red pueden ser potencialmente útiles en el contexto de las reglas de asociación (véase capítulo 14 ). Por ejemplo,
considere un caso de la minería un conjunto de datos de compras de comestibles de los consumidores para saber qué artículos
se compran juntos ( ‘¿qué va con qué’). Una red puede construirse con artículos como los nodos y los bordes de conexión
artículos que fueron comprados juntos. Después de una serie de reglas es generada por el algoritmo de minería de datos (que a
menudo contiene un número excesivo de reglas, muchas de las cuales no son importantes), la trama de la red puede ayudar a
visualizar diferentes reglas con el fin de elegir los más interesantes. Por ejemplo, un “cerveza y pañales” popular combinación
aparecería en la trama de red como un par de nodos con muy alta conectividad. Un ítem que casi siempre se compra sin tener
en cuenta otros elementos (por ejemplo, leche) aparecería como un gran nodo con alta conectividad a todos los demás nodos.

Visualización jerárquica de datos: Treemaps

Discutimos de datos jerárquica y la exploración de datos a diferentes niveles de jerarquía en el contexto de las manipulaciones de la
trama. treemaps son útiles visualizaciones especializados para explorar grandes conjuntos de datos que se estructuran
jerárquicamente (con estructura de árbol). Permiten la exploración de diversas dimensiones de los datos mientras se mantiene la
naturaleza jerárquica de los datos. Un ejemplo se muestra en Figura 3.15 , Que muestra un gran conjunto de subastas de eBay.com, 5 je
ordenados por tipos de posición, subcategoría, y la marca. Los niveles en la jerarquía de la treemap se visualizan como rectángulos
que contienen rectángulos sub. Las variables categóricas se pueden incluir en la pantalla mediante el uso de la tonalidad. Las
variables numéricas pueden ser incluidos a través del rectángulo del tamaño y la intensidad de color (orden de los rectángulos se
utiliza a veces para reforzar tamaño). En Figura 3.15 , El tamaño se utiliza para representar el precio promedio de cierre (que refleja
valor del artículo) y la intensidad del color representa el porcentaje de vendedores con retroalimentación negativa (una
retroalimentación negativa indica la insatisfacción vendedor comprador en las transacciones pasadas y es a menudo indicativo de
comportamiento vendedor fraudulento). Considere la tarea de clasificar las subastas en curso en términos de un resultado
fraudulento. Desde el mapa de árbol, se observa que la mayor proporción de los vendedores con puntuaciones negativas (negras) se
concentra en las subastas de artículos caros (Rolex y Cartier Los relojes). Actualmente, Python ofrece sólo diagramas de árbol
simples con un único nivel de jerarquía y cajas para colorear o encolado por variables adicionales. Figura 3.16 muestra un mapa de
árbol correspondientes a Figura 3.15 que fue creado en R.
Figura 3.15 Treemap mostrando casi 11.000 subastas de eBay, organizados por tipos de posición, subcategoría y marca. Tamaño
rectángulo representa el precio de cierre promedio (reflejando valor del artículo). Shade representa porcentaje de vendedores con
retroalimentación negativa (más oscuro = superior). Este gráfico se generó usando R; para una versión Python véase la figura
3.16

Figura 3.16 Treemap mostrando casi 11.000 subastas de eBay, organizados por tipos de posición. Tamaño rectángulo representa el
precio de cierre promedio. Shade representa% de los vendedores con la regeneración negativa (más oscuro = superior)
 código para la creación de la figura 3.16

squarify importación
ebayTreemap = pd.read_csv ( 'EbayTreemap.csv') agrupados = []

para la categoría, df en ebayTreemap.groupby ([ 'Categoría']):


negativefeedback = sum (df [ 'votos Vendedor'] <0) / len (df) grouped.append ({

'Categoría': categoría,
'Negativefeedback': negativefeedback, 'averageBid':. Df [ 'Alto de la
subasta'] media ()})

byCategory = pd.DataFrame (agrupados)


norma = matplotlib.colors.Normalize (Vmin = byCategory.negativeFeedback.min (),
vmax = byCategory.negativeFeedback.max ())
colores = [matplotlib.cm.Blues (norma (valor)) para el valor en byCategory.negativeFeedback] fig,
Ax = plt.subplots () fig.set_size_inches (9, 5)

squarify.plot (label = byCategory.category, tamaños = byCategory.averageBid, color = colores, ax = ax, alfa = 0,6,
edgecolor = 'gris') ax.get_xaxis (). set_ticks ([]) ax.get_yaxis (). set_ticks ([]) plt.subplots_adjust (izquierda = 0,1) plt.show ()

Idealmente, diagramas de árbol se deben explorar de forma interactiva, el zoom a diferentes niveles de la jerarquía. Un ejemplo de una
aplicación interactiva en línea de diagramas de árbol se encuentra actualmente disponible en www.drasticdata.nl . Uno de sus ejemplos
Treemap muestra los datos de nivel de jugador de la Copa del Mundo de 2014, agregados a nivel de equipo. El usuario puede optar por
explorar los jugadores y los datos del equipo.

La visualización de datos geográficos: Mapa Gráficas

Muchos conjuntos de datos utilizados para la minería de datos ahora incluyen información geográfica. Códigos postales son un ejemplo
de una variable categórica con muchas categorías, donde no es sencillo crear las variables significativas para el análisis. Trazado de los
datos en un mapa geográfico a menudo puede revelar patrones que son más difíciles de identificar de otra manera. Un gráfico de mapa
utiliza un mapa geográfico como telón de fondo; color entonces, tonalidad, y otras características se utilizan para incluir variables
categóricas o numéricos. Además de software especializado de mapas, los mapas se están convirtiendo en parte de software de
propósito general, y Google Maps proporciona las API (interfaces de programación de aplicaciones) que permiten a las organizaciones
superponer sus datos en un mapa de Google. Mientras que Google Maps es fácilmente disponible, lo que resulta gráficos de mapas
(tales como

Figura 3.17 ) Son algo inferiores en términos de eficacia en comparación con el mapa de gráficos en el software de
visualización interactiva dedicada.
Figura 3.17 Correspondencia de la carta de los estudiantes y los instructores ubicaciones en un mapa de Google. Fuente: Datos de
Statistics.com

 código para la creación de la figura 3.17

gmaps importación
SCstudents = pd.read_csv ( 'SC-US-estudiantes-GPS-data-2016.csv') gmaps.configure (api_key =
os.environ [ 'GMAPS_API_KEY']) fig = gmaps.figure (centro = (39.7, -105 ), zoom_level = 3)

fig.add_layer (gmaps.symbol_layer (SCstudents, escala = 2, fill_color = 'rojo', stroke_color = 'rojo')) fig

Figura 3.18 muestra dos gráficos que comparan el mapa del mundo de los países del ‘bienestar’ (según una encuesta de
Gallup de 2006) en el mapa arriba, el producto interno bruto (PIB) en el mapa inferior. tono más claro significa mayor valor.
Figura 3.18 Comparando mapas del mundo “bienestar” (a) al PIB (b). Sombreando por puntaje promedio “global bienestar”
(a) o PIB (b) del país. corresponde más ligeros a mayor puntuación o nivel. Fuente: Datos de Base de Datos Mundial de la
Felicidad de Veenhoven

 código para la creación de la figura 3.18

matplotlib.pyplot importación como cartopy PLT Import

cartopy.io.shapereader importación como shpreader cartopy.crs


importación como CCRS
gdp_df = pd.read_csv ( 'gdp.csv', skiprows = 4)
gdp_df.rename (columnas = { '2015': 'GDP2015'}, inplace = true)
gdp_df.set_index ( 'Country Code', inplace = true) # usar el código de país de tres letras para

filas de acceso
# El archivo contiene una columna con dos combinaciones de letras, utilice na_filter Para evitar

# la conversión de la combinación NA en no-a-número


happiness_df = pd.read_csv ( 'Veerhoven.csv', na_filter = False)
happiness_df.set_index ( 'Código', inplace = true) # usar el nombre del país a las filas de acceso

fig = plt.figure (figsize = (7, 8))


AX1 = plt.subplot (2, 1, 1, proyección = ccrs.PlateCarree ()) ax1.set_extent ([- 150, 60, -25, 60])

ax2 = plt.subplot (2, 1, 2, proyección = ccrs.PlateCarree ()) ax2.set_extent ([- 150, 60, -25, 60])

# Crear un color asignador CMAP =


plt.cm.Blues_r
Norm1 = matplotlib.colors.Normalize (Vmin = happiness_df.Score.dropna () min. (),
vmax = happiness_df.Score.dropna (). max ())
Norm2 = matplotlib.colors.LogNorm (Vmin = gdp_df.GDP2015.dropna () min. (),
vmax = gdp_df.GDP2015.dropna (). max ())
shpfilename = shpreader.natural_earth (resolución = '110 millones', categoría = 'cultural',
name = '') admin_0_countries
lector = shpreader.Reader (shpfilename) países reader.records = ()
para el país en los países:

countryCode = country.attributes [ 'ADM0_A3'] si countryCode en


gdp_df.index:
ax2.add_geometries (country.geometry, ccrs.PlateCarree (), facecolor = CMAP (Norm2 (gdp_df.loc

[countryCode] .GDP2015)))
# comprobar varios atributos para encontrar la coincidencia de dos letras combinaciones nación = country.attributes [
'POSTAL']
si no en happiness_df.index nación: la nación = country.attributes [ 'ISO_A2'] si no en happiness_df.index nación: la nación =
country.attributes [ 'WB_A2'] si no en happiness_df.index nación y country.attributes [ 'NOMBRE '] ==' de Noruega: nación = 'no'

Si nación en happiness_df.index:
ax1.add_geometries (country.geometry, ccrs.PlateCarree (), facecolor = CMAP (Norm1

(happiness_df.loc [nación] .Score))) ax2.set_title ( "PIB 2015")

sm = plt.cm.ScalarMappable (norma = Norm2, CMAP = CMAP) sm._A = []

cb = plt.colorbar (sm, ax = ax2)


cb.set_ticks ([1E8, 1E9, 1E10, 1E11, 1E12, 1e13]) ax1.set_title ( "felicidad")

sm = plt.cm.ScalarMappable (norma = Norm1, CMAP = CMAP) sm._A = []

cb = plt.colorbar (sm, ax = AX1) cb.set_ticks ([3, 4, 5, 6,


7, 8]) plt.show ()

3.6 Resumen: Mayor visualizaciones y operaciones, por Meta Data Mining

Predicción

resultado en la trama y- eje de diagramas de caja, de barras y gráficos de dispersión.


Estudio de la relación resultado de predictores categóricos a través de diagramas de caja de lado a lado, de barras y múltiples
paneles.

Estudiar relación del resultado de predictores numéricos a través de diagramas de dispersión. parcelas utilización de distribución

(diagrama de caja, histograma) para determinar las transformaciones necesarias de la variable de resultado (y / o predictores

numéricos).

Examinar gráficos de dispersión con añadido de color / paneles / tamaño para determinar la necesidad de términos de

interacción.

Utilizar distintos niveles de agregación y zoom para determinar las áreas de los datos con un comportamiento diferente, y
para evaluar el nivel de los patrones locales del planeta contra.

Clasificación
Estudio de la relación resultado de predictores categóricos utilizando gráficos de barras con el resultado de la y- eje.

relación Estudio de resultado para pares de predictores numéricos a través de diagramas de dispersión con códigos de color (color
indica el resultado).

Estudio de la relación resultado de predictores numéricos a través de diagramas de caja de lado a lado: boxplots trama de una

variable numérica por resultado. Crear pantallas similares para cada predictor numérica. Las cajas indican la mayoría separables

predictores potencialmente útiles. Uso de colores para representar la variable de resultado en un paralelo coordinar trama. parcelas

utilización de distribución (diagrama de caja, histograma) para determinar las transformaciones necesarias de variables de

predicción numéricos.

Examinar gráficos de dispersión con añadido de color / paneles / tamaño para determinar la necesidad de términos de

interacción.

Utilizar distintos niveles de agregación y zoom para determinar las áreas de los datos con un comportamiento diferente, y
para evaluar el nivel de los patrones locales del planeta contra.

Predicción de series temporales

Crear gráficos de líneas en diferentes agregaciones temporales para determinar los tipos de patrones. Uso zoom y panorámica

para examinar diversos períodos más cortos de la serie para determinar las áreas de los datos con un comportamiento

diferente.

Utilizar distintos niveles de agregación para identificar patrones globales y locales. Identificar los valores perdidos en la serie

(que requerirán manipulación). Superposición líneas de tendencia de los diferentes tipos de modelado para determinar las

opciones adecuadas.

Aprendizaje sin supervisión

Crear matrices gráfico de dispersión para identificar las relaciones de pares y la agrupación de
observaciones.

Utilice mapas de calor para examinar la tabla de correspondencias.

Usar varios niveles de agregación y zoom para determinar las áreas de los datos con un comportamiento diferente.

Generar una parcela coordenadas paralelas para identificar grupos de observaciones.

Problemas

1. Los envíos de electrodomésticos: gráficos de líneas. El archivo


ApplianceShipments.csv contiene la serie de envíos trimestrales (en millones de dólares) de los aparatos
domésticos de Estados Unidos entre 1985 y 1989.

a. Crear un gráfico de tiempo bien formateado de los datos utilizando Python.

si. ¿Parece haber un patrón trimestral? Para una vista más cercana de los patrones, hacer zoom en la
gama de 3500-5000 en el y- eje.

C. Usando Python, crear un gráfico con cuatro líneas separadas, una línea para cada uno de Q1, Q2, Q3, Q4 y. En
Python, esto se puede lograr mediante una columna para añadir trimestre y año. Entonces grupo la trama de
datos por trimestre y luego envío parcela frente año para cada trimestre como una serie separada en un gráfico
de líneas. Hacer zoom en la gama de 3500-5000 en el y- eje. ¿Parece haber una diferencia entre los trimestres?

re. Usando Python, crear un gráfico de líneas de la serie a un nivel anual agregado (es decir, los envíos totales
en cada año).

2. Las ventas de los cortacéspedes con conductor: gráficos de dispersión. Una empresa que fabrica montar

cortadoras quiere identificar las mejores perspectivas de ventas para una campaña de ventas intensiva. En particular, el
fabricante está interesado en la clasificación de los hogares como los futuros propietarios o no propietarios sobre la base de
ingresos (en $ 1000) y el tamaño de lote (en 1000 pies 2).
El experto en marketing mirado a una muestra aleatoria de 24 hogares, dada en el archivo
RidingMowers.csv.

a. Al utilizar Python, crear un gráfico de dispersión de tamaño de lote frente a los ingresos, un código de colores por el propietario

variable de resultado / no propietario. Asegúrese de obtener una parcela bien formateado (crear etiquetas legibles y una leyenda,

etc.).

3. Las ventas de portátiles en una cadena de Londres ordenador: Diagramas de caja y gráficos de barras. los

archivo LaptopSalesJanuary2008.csv contiene datos de todas las ventas de ordenadores portátiles en una cadena equipo en
Londres en enero de 2008. Este es un subconjunto del conjunto de datos que incluye datos para todo el año.

a. Crear un gráfico de barras que muestra el precio de venta promedio por tienda. ¿Qué tienda tiene el promedio más alto?
¿Cuál tiene el más bajo?
si. Para una mejor comparación de los precios de venta a través de tiendas, crear diagramas de caja de lado a lado del precio
de venta según la tienda. Ahora compare los precios en los dos almacenes de (a). ¿Parece haber una diferencia entre
sus distribuciones de precios?

4. Las ventas de portátiles en una cadena de Londres ordenador: Visualización interactiva. los
próximos ejercicios están diseñados para el uso de una herramienta de visualización interactiva. El archivo
LaptopSales.csv es un archivo separado por comas, con cerca de 300.000 filas. ENBIS (la Red Europea de
Empresas y Estadística Industrial) siempre y cuando estos datos como parte de un concurso organizado en el
otoño de 2009.

Guión: Imagine que usted es un nuevo analista de una compañía llamada Acell (una empresa de venta de los ordenadores
portátiles). Se le ha proporcionado datos sobre productos y ventas. Es necesario para ayudar a la empresa con su objetivo de
negocio de la planificación de una estrategia de producto y las políticas de precios que maximizarán los ingresos proyectados de
ACell en 2009. El uso de una herramienta de visualización interactiva, responda a las siguientes preguntas.

a. Precio: Preguntas

yo. ¿A qué precio están los ordenadores portátiles en realidad la venta?

ii. ¿Cambia el precio con el tiempo? ( Insinuación: Asegúrese de que la columna de la fecha es
reconocida como tal. Entonces, el programa debe permitir diferentes opciones de agregación temporal, por ejemplo, el
trazado de los datos de los agregados semanales o mensuales, o incluso por el día de la semana.)

iii. Son los precios consistente a través de puntos de venta?

iv. ¿Cómo cambia el precio con la configuración?

si. Ubicación: Preguntas

yo. ¿Dónde están las tiendas y los clientes ubicados?

ii. ¿Qué tiendas están vendiendo más?

iii. ¿Hasta dónde viajar clientes a comprar un ordenador portátil?

Pista 1: Usted debe ser capaz de agregar los datos, por ejemplo, trazar la suma o la media de
los precios.

Pista 2: Utilizar el resaltado coordinada entre varias visualizaciones en la misma página, por
ejemplo, seleccionar una tienda en una vista para ver los clientes que coinciden en otra
visualización.

Pista 3: Explorar el uso de filtros para ver las diferencias. Asegúrese de filtro en la vista reducida en. Por ejemplo,
trate de usar un control deslizante “de ubicación del local”, como una forma alternativa de ubicación de las tiendas
de forma dinámica comparar. Esto podría ser más útil para detectar valores atípicos patrones si había 50
ubicaciones de las tiendas para comparar.

iv. Pruebe una forma alternativa de mirar a la distancia recorrida por los clientes. Para ello, cree una
nueva columna de datos que calcula la distancia entre el cliente
y almacenar.

C. Preguntas de ingresos:

yo. Como el volumen de ventas en cada tienda se relacionan con los ingresos de ACell?

ii. ¿De qué manera esta relación depende de la configuración?

re. Las preguntas de configuración:

yo. ¿Cuáles son los detalles de cada configuración? ¿Cómo se relaciona esto con el precio?

ii. ¿Todas las tiendas de venta de todas las configuraciones?

notas
1 Esta y las siguientes secciones de este capítulo de derechos de autor © 2019 Statistics.com y Galit Shmueli. Usado con

permiso.

2 El conjunto de datos Boston Vivienda fue originalmente publicado por Harrison y Rubinfeld en “precios
hedónicos y la demanda de aire limpio”, Revista de Economía y Gestión Ambiental, vol. 5, p. 81-102, 1978.

3 Nos referimos aquí a un gráfico de barras con barras verticales. Los mismos principios se aplican si se utiliza un gráfico de
barras con líneas horizontales, excepto que el X- eje está ahora asociado con la variable numérica y la y- eje con la variable
categórica.

4 Los datos se obtuvieron a partir https://data.cityofnewyork.us/Public-Safety/NYPD-Motor- Vehicle-Colisiones /


h9gi-nx95 .

5 Agradecemos a Sharad Borle por compartir este conjunto de datos.

Potrebbero piacerti anche