Instalación de software libre para ciencia de datos y Machine Learning

En este tutorial se explica, desde cero, como armar un kit de herramientas para el análisis de datos e implementación de algoritmos de aprendizaje automatizado o Machine Learning.

Instalaremos Linux Debian 9 en nuestro sistema o máquina virtual. Utilizaremos Anaconda para administrar múltiples sesiones de programación en R y Python, con acceso a paquetería para ciencia de datos, como ggplot2, caret, neuralnet, Keras y TensorFlow.

Instalar Linux Debian

Necesitamos instalar Linux Debian 9 (Stretch), ya sea en un máquina virtual, con dual-boot y Windows, o como nuestro sistema operativo principal, directo al metal.

Click en la imagen para ir a la página de Debian

Con la imagen (.iso) descargada podemos crear un booter utilizando una memoria USB, CD o DVD.

Accedemos al BIOS y cambiamos el orden de búsqueda de dispositivos para el arranque del sistema. El acceso al BIOS depende del modelo de la computadora, generalmente se logra pulsando F1, F2 o F11 al encender el equipo.

Hecho esto, basta con iniciar la computadora con el USB booter conectado y seguir las instrucciones de instalación. Si es requerido, el proceso de instalación permite que usemos Debian junto a otros sistemas operativos.

Otra opción práctica es instalar Debian en una máquina virtual; de esta forma probar la distribución Linux desde una partición dinámica, con recursos RAM y almacenamiento ajustable. Si ocurriese algún error, sencillamente reinstalamos la distribución en el ambiente virtual sin comprometer nuestro sistema.

El proceso de instalación permite diversos tipos de escritorios para el sistema. Yo seleccioné KDE. Acá un pantallazo del escritorio:

Arranca en segundos y utiliza menos de 1 GB de RAM. Suele tener más bugs que Gnome, pero su capacidad de personalización es increíble. Podemos instalar varios escritorios y alternar entre ellos para acceder a las ventajas de cada uno. Simplemente hacemos log out y cambiamos la opción en el menú principal.

Después de la instalación, es importante que hagamos las siguientes operaciones:

Crear un nuevo usuario con privilegios root

Desde la terminal con privilegios de administrador.

su
apt-get install sudo  
usseradd *nombre_usuario

Seguimos las direcciones que indique la consola y otorgamos privilegios de administrador al nuevo usuario.

usermod -aG sudo *nombre_usuario  
su -*nombre_usuario  

Evaluamos que tengamos los privilegios reiniciando la PC con su

Modificar la lista de repositorios

Utilizamos nano para editar la lista de repositorios de nuestro sistema.

sudo nano /etc/apt/sources.list

Buscar los repositorios más cercanos a tu localización. Comentar las dos líneas que comienzan con deb cdrom. La lista debe verse así para usuarios en España:

#deb cdrom:[Debian GNU/Linux 9.9.0 Stretch - Official amd64 DVD Binary-1 20190427-$
#deb cdrom:[Debian GNU/Linux 9.9.0 Stretch - Official amd64 DVD Binary-1 20190427-1$
deb http://ftp.es.debian.org/debian/ stretch main non-free
deb-src http://ftp.es.debian.org/debian/ stretch main non-free
deb http://security.debian.org/debian-security stretch/updates main contrib
deb-src http://security.debian.org/debian-security stretch/updates main contrib
stretch-updates, previously known as 'volatile'
deb http://ftp.es.debian.org/debian/ stretch-updates main contrib
deb-src http://ftp.es.debian.org/debian/ stretch-updates main contrib

Actualizar el sistema e instalar versiones nuevas

sudo apt update -y
sudo apt upgrade -y
sudo apt dist-upgrade
sudo apt autoremove

Reiniciar el sistema con sudo reboot -f

Acelerar el arranque

Es posible acelerar la velocidad de arranque del sistema, disminuyendo el tiempo de espera en el menu grub:

sudo nano /etc/default/grub #Modificamos el archivo del grub, cambiando el tiempo de arranque de 5 a 0.  

Instalación de Anaconda

Anaconda es un software que permite instalar fácilmente R y Python, en conjunto con una paquetería básica para Data Science y Machine Learning, incluyendo los famosos módulos pandas, matplotlib y TensorFlow. Disponible y gratuito tanto para Linux, como Windows y Mac.

Una vez descargada la versión necesaria, se instala en la terminal con:

cd Downloads # ir a carpeta
bash Anaconda.sh #ejecutar el script bash
source ~/.bashrc #ejecutar desde source
#reininciar terminal
conda update 

Con esas cuatro líneas de código obtenemos un grupo de herramientas muy poderosas para el análisis de datos. Para crear una sesión en Python 3.7, Python 2.7 y en R, se utiliza:

conda create -n my_env python=3.7 anaconda
conda create -n my_env2 python=2.7 anaconda
conda create -n r_env r-essentials r-base

Para empezar a utilizar cualquiera de las sesiones basta con utlizar conda activate, seguido del nombre de la sesión.

Para ver todos las sesiones creadas utilizamos:

conda info --envs

Instalar paquetes en R

A pesar de la cantidad de paquetes de R que hemos instalado con Anaconda, siempre podemos ampliar nuestra librería para acceder a nuevas funciones.

Para ver los módulos o paquetes instalados en la sesión creada, se utiliza conda list

Para instalar nuevos paquetes desde R, se ejecuta:

conda activate r_env  
R

Seguido de install.packages("nombre_del_paquete")

Por ejemplo, podemos instalar un compendio de paqueterías frecuentemente usadas para ciencia de datos con:

install.packages(c("caret","neuralnet","reticulate","keras","ROSE", "e1071", "randomForest", "SuperLearner"))

Keras es una interface de programación para redes neuronales artificiales, tiene un desempeño de alto nivel y es sumamente rápida, facilitando la experimentación e implementación en tiempo real. Al utilizar Tensorflow como backend, es posible paralelizar el computo, utilizando todos los núcleos del procesador, incluso la tarjeta gráfica. Keras-Tensorflow están disponibles en R, con excelente documentación en línea y variedad de librerías enfocadas la ciencia de datos.

Finalmente, el paquete reticulate permite tener acceso a los módulos de Python desde R, implicando la capacidad de utilizar ambos lenguajes desde el mismo código. Por ejemplo, se puede acceder al famoso backend para aprendizaje profundo, Tensorflow. Para esto, es necesario instalar el programa pip en Debian y utilizar el pip install tensorflow.

Para el resto de módulos Python, el proceso es similar, siempre y cuando las dependencias estén instaladas.

Hasta acá este tutorial sobre la instalación de herramientas de software libre para ciencia de datos y Machine Learning.

Espero te haya gustado y gracias por leerlo.

Hasta pronto.