Sei sulla pagina 1di 25

Introducción a R

Introducción a R
Análisis de datos

José Luis Salmerón


salmeron@acm.org

19 de octubre de 2017
Introducción a R
Outline

1 Visualización

2 Estadı́stica descriptiva
Medidas de interés

3 Machine Learning
Aprendizaje no supervisado
Aprendizaje supervisado
Optimización
Introducción a R
Visualización

Outline

1 Visualización

2 Estadı́stica descriptiva
Medidas de interés

3 Machine Learning
Aprendizaje no supervisado
Aprendizaje supervisado
Optimización
Introducción a R
Visualización

Gráficos básicos

plot()

El sistema de gráficos básico se encuentra en el paquete de graphics.


Generalmente no hay que incluir library(graphics) porque ya está
cargado. Se puede acceder a la lista de funciones del paquete con
library(help = "graphics"), aunque esta lista no es exhaustiva.
La función plot() es una función genérica, ello implica que lo que hace
depende de la entrada (ej.: scatterplot). Se le puede indicar que datos van
en cada eje (ej.: cars).
Por defecto se muestran los datos como puntos, pero puede especificar
otro tipo, como lı́neas o histogramas (ej.: histograma). Para los
histogramas se puede usar hist().
Un barplot() es una forma fácil de representar la distribución de los
datos (ej.: barplot).
La función summary() devuelve un resumen de la información de los datos

Ejemplo

1 Con el dataset longley, realice un grafo de puntos, de lı́neas, un


histograma y uno de barras.
2 Calcule el resumen de dicho dataset.
Introducción a R
Visualización

Gráficos básicos (Solución)

plot()

El sistema de gráficos básico se encuentra en el paquete de graphics.


Generalmente no hay que incluir library(graphics) porque ya está
cargado. Se puede acceder a la lista de funciones del paquete con
library(help = "graphics"), aunque esta lista no es exhaustiva.
La función plot() es una función genérica, ello implica que lo que hace
depende de la entrada (ej.: scatterplot). Se le puede indicar que datos van
en cada eje (ej.: cars).
Por defecto se muestran los datos como puntos, pero puede especificar
otro tipo, como lı́neas o histogramas (ej.: histograma). Para los
histogramas se puede usar hist().
Un barplot() es una forma fácil de representar la distribución de los
datos (ej.: barplot).
La función summary() devuelve un resumen de la información de los datos

Ejemplo

1 Con el dataset longley, realice un grafo de puntos, de lı́neas, un


histograma y uno de barras.
2 Calcule el resumen de dicho dataset.
Introducción a R
Estadı́stica descriptiva

Outline

1 Visualización

2 Estadı́stica descriptiva
Medidas de interés

3 Machine Learning
Aprendizaje no supervisado
Aprendizaje supervisado
Optimización
Introducción a R
Estadı́stica descriptiva
Medidas de interés

Outline

1 Visualización

2 Estadı́stica descriptiva
Medidas de interés

3 Machine Learning
Aprendizaje no supervisado
Aprendizaje supervisado
Optimización
Introducción a R
Estadı́stica descriptiva
Medidas de interés

Funciones

Función Descripción Función Descripción


mean() Media aritmética median() Mediana
quantiles() Quartiles range() Rango de datos
var() var() Desviación sd()
estandard
which.max() Índice del primer máximo which.min() Índice del primer mı́nimo

Ejemplo

1 Calcule la media, mediana, rangos, varianza, desviación standard y el


mejor mes de radiación solar en el dataset::airquality
2 Represente la evolución de las condiciones ambientales
Introducción a R
Estadı́stica descriptiva
Medidas de interés

Funciones (Solución)

Función Descripción Función Descripción


mean() Media aritmética median() Mediana
quantiles() Quartiles range() Rango de datos
var() var() Desviación sd()
estandard
which.max() Índice del primer máximo which.min() Índice del primer mı́nimo

Ejemplo

1 Calcule la media, mediana, rangos, varianza, desviación standard y el


mejor mes de radiación solar en el dataset::airquality
2 Represente la evolución de las condiciones ambientales
Introducción a R
Machine Learning

Outline

1 Visualización

2 Estadı́stica descriptiva
Medidas de interés

3 Machine Learning
Aprendizaje no supervisado
Aprendizaje supervisado
Optimización
Introducción a R
Machine Learning
Aprendizaje no supervisado

Outline

1 Visualización

2 Estadı́stica descriptiva
Medidas de interés

3 Machine Learning
Aprendizaje no supervisado
Aprendizaje supervisado
Optimización
Introducción a R
Machine Learning
Aprendizaje no supervisado

Caso de reducción de dimensionalidad y clustering

Clasificación

La clasificación y predicción son dos métodos importantes de análisis de datos utilizados para encontrar
patrones en los datos.
La clasificación predice la clase categórica (o valores discretos), mientras que la regresión y otros modelos
predicen las funciones con valores continuos.

n-dimensionalidad

En este caso veremos cómo al combinar una técnica de reducción de la dimensionalidad (Análisis de
componentes principales, PCA) junto con un clustering representamos en un espacio menor los datos
definidos en una dimensión superior mientras que, al mismo tiempo, podemos agrupar esta información en
grupos y encontrar relaciones ocultas en los datos.
PCA reduce la dimensionalidad de los datos consiguiendo el número mı́nimo de variables que mantiene la
información sobre cómo se distribuyen los datos. Si usamos solo dos variables, se representa en un gráfico
bidimensional (ej.: scatterplot).
Para clustering se organizan muestras de datos por proximidad en función de sus variables. Ası́ se puede
entender cómo cada punto de datos se relaciona entre sı́ y descubrir grupos de similares. Se define un
centroide por cluster, o sea, una muestra de datos ideal que minimiza la suma de las distancias a cada uno
de los puntos de datos en un cluster.
Introducción a R
Machine Learning
Aprendizaje no supervisado

Caso de reducción de dimensionalidad y clustering

PCA

1 Se usará un dataset que cargaremos desde internet, concretamente sobre la prevalencia


de la tuberculosis infecciosa. Para ello se usará el paquete RCurl.
2 Se cargan y procesan los datos. Queremos representar cada paı́s en dos dimensiones. En
el data set, cada muestra es un paı́s definido por 18 variables, cada una correspondiente
a casos de TB por 100K (existentes, nuevas, muertes) para un año determinado de 1990
a 2007. Estas variables representan no solo los recuentos totales o promedio en el rango
1990-2007, sino también toda la variación en las series temporales y las relaciones dentro
de los paı́ses en un año determinado. Al usar PCA, podremos reducir estas 18 variables
solo a las dos que mejor capturen esa información.
3 La función prcomp() del paquete stats realiza PCAs. Se le aplica a los datos y se
representa. El objeto resultante contiene varias elementos relacionados con el análisis de
componentes principales. Estamos interesados en los scores (x). En este caso
utilizaremos los dos primeros. Represente los componentes principales para ver la
diferencia entre ellos.
4 La mayorı́a de las variaciones entre las observaciones se explican con el primer PC.
Represente los dos primeros PC para ver a todos los paı́ses en scatterplot, para ello lo
convertimos a data frame.
5 Asignamos un color con el valor medio para todos los años. Utilizaremos las funciones
rgb, ramp y rescale para crear una paleta de colores desde el amarillo (valores más
bajos) hasta el azul (valores más altos).
6 Posteriormente se asocia color a la suma total.

https://docs.google.com/spreadsheets/d/1X5Jp7Q8pTs3KLJ5JBWKhncVACGsg5v4xu6badNs4C7I/pub?gid=0&output=csv
Introducción a R
Machine Learning
Aprendizaje no supervisado

Caso de reducción de dimensionalidad y clustering

PCA

1 Seguidamente se asocia con la diferencia entre el primer y el último año,


para medir el cambio en el tiempo.

Conclusión PCA

De los plots se confirma que la mayorı́a de las variaciones ocurren a lo


largo del eje y asignado al PC1. Vimos que el primer PC ya explica casi el
92% de la varianza, mientras que la segunda representa otro 6% para un
total de casi el 98% entre los dos.
En la parte superior se ve una importante concentración de paı́ses, en su
mayorı́a desarrollados. Mientras descendemos ese eje, el número de paı́ses
es más escaso y pertenecen a regiones menos desarrolladas del mundo.
Además, al usar el color / tamaño para codificar la diferencia en el número
de casos a lo largo del tiempo, el gradiente de color principalmente cambió
según la dirección del segundo componente principal, con valores más
positivos (es decir, aumento en el número de casos) coloreado en azul o
con un tamaño más grande. Es decir, mientras que el primer PC captura
la mayor parte de la variación dentro del dataset y esta variación se basa
en el total de casos en el rango 1990-2007, la segunda PC se ve afectada
en gran medida el cambio por el paso del tiempo.
Introducción a R
Machine Learning
Aprendizaje no supervisado

Caso de reducción de dimensionalidad y clustering

k-means

k-means es un método de agrupamiento, que tiene como objetivo la partición de un Figure: k-means y problemas de
conjunto de n observaciones en k grupos en el que cada observación pertenece al grupo clustering
cuyo valor medio (centroide) es más cercano.
El problema es difı́cil computacionalmente (NP-hard), aunque hay heurı́sticas que
convergen rápidamente a un óptimo local.
Este algoritmo requiere que se especifique la cantidad de clusters y se adapta bien a una
gran cantidad de muestras y se ha utilizado en una amplia gama de áreas de aplicación
en muchos campos diferentes.
El algoritmo k-means divide un conjunto de N muestras de X en k clusters disjuntos
C, cada una descrita por su centroide µj . Los centroides no son, en general, puntos de
X, aunque estén en el mismo espacio. El algoritmo k-means tiene como objetivo elegir
Pn 2
centroides que minimicen i=0 minµj ∈C (||xj − µi || ) o la inercia que es la
medida de coherencia interna de los clusters.

El algoritmo tiene tres fases:


1 Se eligen los centroides iniciales, el método más básico es elegir k muestras del
conjunto de datos X. Después de la inicialización, k-means consiste en un bucle
entre las otras dos fases.
2 Se crean nuevos centroides al tomar el valor medio de todas las muestras
asignadas a cada centroide anterior.
3 La diferencia entre los centroides antiguos y nuevos se calcula y el algoritmo
repite estas dos últimas fases hasta que este valor sea menor que un umbral. En
otras palabras, se repite hasta que los centroides no cambien significativamente.
Introducción a R
Machine Learning
Aprendizaje no supervisado

Caso de reducción de dimensionalidad y clustering

k-means

1 Determinación del número de clusters en el dataset.


2 Se observa que la mayorı́a de la varianza se explica con
3 clusters (el ”codo” de la curva) ası́ que empecemos
con k = 3, lo que permite suponer que al menos, los
paı́ses están en una situación realmente mala, en buena
situación y algunos en el medio.
3 Se calcula k-means con la función kmeans(), la cual
tiene dos argumentos obligatorios que son x para los
datos de entrada y centers para el número de clusters.
El resultado de k = 3 contiene una lista con varios
componentes:
cluster: un vector de enteros que indica el clúster al que
se asigna cada punto.
centers: una matriz de centroides de clusters.
withinss: la suma de distancias cuadradas para cada
cluster.
size: la cantidad de elementos en cada cluster.
Introducción a R
Machine Learning
Aprendizaje supervisado

Outline

1 Visualización

2 Estadı́stica descriptiva
Medidas de interés

3 Machine Learning
Aprendizaje no supervisado
Aprendizaje supervisado
Optimización
Introducción a R
Machine Learning
Aprendizaje supervisado

k-NN

k-means

1 k-nearest neighbour es un método de clasificación supervisada. Este es un método de


clasificación no paramétrico, que estima el valor de la función de densidad de
probabilidad o directamente la probabilidad a posteriori de que un elemento pertenezca a
la clase a partir de la información proporcionada por el conjunto de prototipos.

kknn

1 Definimos el data set para trabajar, podrı́amos importar un archivo csv o un archivo de
excel o bien conectarnos por ODBC a una base de datos.
2 Mediante un muestreo aleatorio definimos una tabla de aprendizaje para el modelo y una
tabla de pruebas para verificar su calidad predictiva.
3 Construimos el modelo alimentándolo con los datos de aprendizaje, se le indica el valor
máximo de k que el modelo puede usar y él determina el óptimo (el modelo deberı́a ser
calibrado para obtener el mejor resultado, este corre con las opciones por defecto)
4 Se ejecuta una predicción con el modelo que acabamos de construir sobre los datos de
prueba, para determinar cuantas veces acierta en la predicción.
5 Para analizar la calidad del modelo podemos construir una matriz de confusión. Cada
columna de la matriz representa el número de predicciones de cada clase, mientras que
cada fila representa a las instancias en la clase real. Se puede ver si el sistema está
confundiendo dos clases.
Ejercicio
6 Como se puede observar, el modelo lo ha hecho bastante bien, únicamente falla en dos
virginica que clasificó como versicolor, cabe resaltar que cuanto más grande sea la
diagonal mejor es el modelo. 1 Clasifique el dataset
https://goo.gl/Aa1WX5
7 Si representamos el modelo que acabamos de hacer el gráfico da información sobre la
calidad de la clasificación en función del número de vecinos.
Introducción a R
Machine Learning
Aprendizaje supervisado

Random Forest

RF

1 Random forest es una combinación de árboles de decisión tal que cada árbol depende de
los valores de un vector aleatorio probado independientemente y con la misma
distribución para cada uno de estos. Es una modificación sustancial de bagging que
construye una larga colección de árboles no correlacionados y luego los promedia.
2 Puede usarse para clasificar, regresión e incluso clustering.

RF

1 Random forest es una combinación de árboles de decisión tal que cada árbol depende de
los valores de un vector aleatorio probado independientemente y con la misma
distribución para cada uno de estos. Es una modificación sustancial de bagging que
construye una larga colección de árboles no correlacionados y luego los promedia.
2 Puede usarse para clasificar, regresión e incluso clustering.
3 Usamos la librerı́a randomForest

Ejercicio

1 Compare la clasificación realizada con RF y con k-means.


Introducción a R
Machine Learning
Optimización

Outline

1 Visualización

2 Estadı́stica descriptiva
Medidas de interés

3 Machine Learning
Aprendizaje no supervisado
Aprendizaje supervisado
Optimización
Introducción a R
Machine Learning
Optimización

Algoritmos genéticos

GA

1 Los algoritmos genéticos funcionan entre el conjunto de soluciones de un problema


llamado fenotipo, y el conjunto de individuos de una población natural, codificando la
información de cada solución en una cadena llamada cromosoma. Los sı́mbolos que
forman la cadena son llamados genes.
2 Cuando la representación de los cromosomas se hace con cadenas de dı́gitos se le conoce
como genotipo. Los cromosomas evolucionan a través de iteraciones, llamadas
generaciones.
3 En cada generación, los cromosomas son evaluados usando alguna medida de aptitud.
Las siguientes generaciones (nuevos cromosomas), son generadas aplicando los
operadores genéticos repetidamente, siendo estos los operadores de selección, cruce,
mutación y reemplazo.

GA

1 Generamos los datos mediante una función


2 Definimos la función de fitness
3 Corremos el algoritmo genético
4 Revisar la documentación de la librerı́a GA para comprobar los parámetros y la mejor
solución.
Introducción a R
Machine Learning
Optimización

Ejercicio 1: Clustering

Enunciado

1 Cree una función que calcule que paı́s pertenece al cluster más inequı́vocamente y
el que menos, tanto perteneciente al cluster como de todo el dataset.
Tened en cuenta que los centroides se refieren a dos componentes principales.

2 Cree una función que calcule el numero de clusters que realiza una asignación de
paı́ses más equilibrada, es decir, que el número de paı́ses en cada cluster es
similar.
Introducción a R
Machine Learning
Optimización

Solución Ejercicio 1: Clustering


Introducción a R
Machine Learning
Optimización

Ejercicio 2: Optimización

Enunciado

1 Busque librerı́as de optimización (PSO, ACO,...) optimice la función anterior y


compare los resultados.
2 Optimice los parámetros de un método supervisado utilizando algoritmos
evolutivos
Estos ejercicios no tienen solución ya que cada uno debe buscar librerı́as diferentes y
ejecutarlas.
Introducción a R
Machine Learning
Optimización

Introducción a R
Análisis de datos

José Luis Salmerón


salmeron@acm.org

19 de octubre de 2017

Potrebbero piacerti anche