Computer Vision con R. OpenCV de andar por casa

Trabajando con Computer Vision aprecio que estamos muy limitados por las máquinas que usamos, o tiene mucho sentido montar GPUs en casa del tamaño del aire acondicionado y por supuesto no tiene sentido el consumo energético que implica. Aquí estoy yo montando una GPU para el análisis de imágenes. Este tema implica que la Computer Vision no lo podrá usar el común de los data scientist , a los necesarios conocimientos técnicos y matemáticos se añade el disponer de unos recursos tecnológicos que no están al alance de cualquiera. Sin embargo, los conocimientos técnicos y matemáticos los puedes adquirir o puedes aprovecharte de los entornos colaborativos. Pero, podemos iniciarnos en el reconocimiento de imágenes con R y la librería openCV y si salen algunos temas en los que estoy enredando es posible que la reducción de dimensionalidad y la geometría nos ahorre máquinas y energía. ...

27 de noviembre de 2020 · rvaquerizo

R + Python = reticulate

He sido reticente a usar reticulate con R porque no me gusta R markdown y si he trabajado con Python no he necesitado R y viceversa. Ahora tengo en mente algún juego/proyecto de esos que se quedan siempre en el tintero por falta de tiempo o interés pero me están sirviendo para elaborar unos apuntes sobre R markdow y Python que voy a sintetizaros en esta entrada por si a alguien le fuera de utilidad. ...

26 de noviembre de 2020 · rvaquerizo

Añadiendo gráficos de tarta a nuestros mapas de ggplot con scatterpie

Los gráficos de tarta o pie charts tienen algunos peligros y el ahora escribiente no es muy partidario de su uso, sin embargo la librería scatterpie facilita mucho su realización en R y quería traer al blog un método más o menos sencillo para entender como hacer el gráfico y como disponer los datos. Obtención del shp con el mapa Se comienza por realizar un mapa sin nada con ggplot y raster que a los seguidores de los artículos de R del blog les será familiar: ...

18 de noviembre de 2020 · rvaquerizo

Calcular porcentajes por grupos con dplyr

A la hora de sumarizar datos con dplyr podemos calcular porcentajes dentro de grupos o subgrupos con transmute. La sintaxis es sencilla pero tiene la peculiaridad que sólo obtendremos como salida lo que indiquemos en transmute. Mejor lo entendéis en un ejemplo: Conjunto de datos aleatorio de ejemplo: ```r library(dplyr) observaciones = 100 grupo_1 = rpois(observaciones, 0.5) grupo_2 = rpois(observaciones, 1) df = cbind.data.frame(grupo_1, grupo_2) %>% mutate(id_cliente=n()) Sumarizamos por grupos: ```r df %>% group_by(grupo_1, grupo_2) %>% summarise(clientes = n()) Contamos clientes y calculamos el porcentaje sobre el total: ```r df %>% group_by(grupo_1, grupo_2) %>% summarise(clientes = n(), pct_total = n()/nrow(df)) Suelo usar nrow se aceptan sugencias. Calculamos el porcentaje para el subgrupo del grupo_1, primer ejemplo de uso de transmute: ...

26 de octubre de 2020 · rvaquerizo

Tablas elegantes en #rstats y formattable

Las salidas de la consola de R para muchos de nosotros son más que suficientes. Además en mi caso particular prefiero poner las cosas más elegantes en otras herramientas como Excel, Qlik Sense o Tableau. Pero me he dado cuenta que hay una librería que sí uso cuando directamente copio y pego salidas de R en correos, presentaciones o si empleo markdown (rara vez); esta librería es formattable , es posible que haya mejores librerías pero esta es la que yo uso desde hace un par de años. ...

20 de octubre de 2020 · rvaquerizo

Evita problemas con Excel desde R. De tocar el dato a un proceso

En estos días hemos vivido una situación con Excel y los datos de COVID de UK peculiar. Hemos aparecido todos en las redes sociales para reírnos de Excel y de los que usan Excel. De nuevo partidarios de Matlab, R, Python,… ¡a la gresca! Mi opinión la podéis leer en Twitter y creo que sobre este tema puedo opinar. En mi vida profesional me he especializado en cambiar equipos de negocio, por ese motivo tanto ir y venir de compañía. Uno de esos cambios consiste en transformar super usuarios de Excel a usuarios de herramientas más apropiadas para la gestión de la información. ...

9 de octubre de 2020 · rvaquerizo

Manejo de datos básico con Python datatable

Nueva entrada dedicada al **data management con Python** , esta vez con datatable. No voy a justificar el uso de datatableantes quepandas, en un vistazo rápido por la web encontráis numerosas ocasiones en las que datatablees más eficiente quepandasen el manejo de datos conPython. En cuanto a la complejidad en el uso de uno u otro mi opinión no es objetiva porque me cuesta mucho trabajar con Pandas`. Asumo que habéis instalado datatable en vuestro entorno de Python (siempre por encima de la versión 3.5) y una vez está instalado os propongo obtener un conjunto de datos del repositorio de analisisydecision. Por supuesto la carga de este csv de ejemplo la realizamos con datatable y la función fread: ...

8 de octubre de 2020 · rvaquerizo

Transformaciones de variables cuantitativas en modelos binomiales

Para mejorar la capacidad predictiva de nuestros modelos binomiales es recomendable transformar las variables independientes. Existen técnicas que lo hacen de modo automático pero hoy os quería mostrar en un video un método «casero» para agrupar una variable cuantitativa con respecto a una variable respuesta, todo muy orientado a que la transformación tenga un sentido de negocio. El código empleado para hacer el video es el siguiente: from urllib import urlretrieve link = 'https://raw.githubusercontent.com/yhat/demo-churn-pred/master/model/churn.csv' urlretrieve(link, "churn.txt") import pandas as pd import numpy as np df = pd.read_csv("churn.txt") df.head(5) import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt pd.crosstab(df['Churn?'], columns='count').plot(kind='bar') plt.show(); df['churn'] = np.where(df['Churn?'] == 'True.', 1, 0) pd.crosstab(df['churn'], columns='count') df['Day Mins'].isnull().sum() df['Day Mins'].describe() plt.hist(df['Day Mins'], bins=20); plt.show(); df['minutos'] = np.where(df['Day Mins'] >= 270, 270, (df['Day Mins']//10)*10) df['minutos'] = np.where(df['minutos'] <= 70, 70, df['minutos']) pd.crosstab(df['minutos'], columns='count') churn = pd.DataFrame((df['churn']).groupby(df['minutos']).mean()) clientes = pd.DataFrame((df['churn']).groupby(df['minutos']).count()) fig = plt.figure() ax = clientes['churn'].plot(kind='bar', grid=True) ax2 = ax.twinx() ax2.plot(churn['churn'].values, linestyle='-', linewidth=2.0,color='red') plt.show();

2 de octubre de 2020 · rvaquerizo

Nueva edición del Programa en Big Data y Data Science de la UNED

Ya está abierta la convocatoria para el Programa Modular en Big Data y Data Science aplicados a la Economía y a la Administración y Dirección de Empresas. Es un programa que se imparte 100% en línea y tiene el mejor balance entre la visión teórica y la visión práctica en ciencia de datos. Si escogéis el módulo de seguros allí nos veremos. En el siguiente enlace podréis encontrar más información: ...

29 de septiembre de 2020 · rvaquerizo

Variables categóricas en cajas, `treemap` con R

La representación de variables categóricas en cajas es uno de los gráficos que más utilizo, empezaron a gustarme debido al uso de Qlik Sense y sus gráficos de cajas, me permitían comparar variables categóricas en un periodo frente a otro. En R podemos usar la librería treemap para realizar estos gráficos y comparar variables categóricas. En este caso interesa comparar una variable dentro de dos grupos. Para ilustrar el ejemplo nos suministran un conjunto de datos con información de un seguro de responsabilidad civil de motocicletas de una compañía sueca. Este conjunto de datos está en la librería CASdatasets de R: ...

29 de septiembre de 2020 · rvaquerizo