En nuestra entrega anterior -y con la ayuda del Doctor Jason Brownlee- instalamos Fedora 25 como máquina virtual para tener un entorno de desarrollo específico para Python3: pues bien, el fin último es tener una base para poder desarrollar el «machine learning» a un nivel intermedio, veamos.
Tabla de contenido:
¿Qué es el «machine learning»?
Es una ciencia aplicada con ayuda de los ordenadores: de una serie gigantesca de datos obtenidos de nuestro mundo analógico regido por la mecánica cuántica podemos obtener patrones, precisamente lo que hacemos nosotros los seres humanos, como por ejemplo cuando miramos una noche estrellada y percibimos constelaciones que solo están en nuestro cerebro. Muchas universidades en el mundo están abocadas a este estudio y promete ser el futuro en el cual debemos estar preparados para cuando lleguen los ordenadores cuánticos.
Un dato que nos llama la atención es que ya hoy en día tiene una aplicación práctica, para mal, denunciada por Edward Snowden en su cuenta en Twitter:
Who watches the watchers? Your TV. https://t.co/IvS52ppgQ3 pic.twitter.com/2IPS9cxxLK
— Edward Snowden (@Snowden) 26 de febrero de 2017
¿Qué tiene que ver esto con el «machine learning»? Pues que el dispositivo que es utilizado para detectar los patrones de atención de los televidentes durante los comerciales es grabado con un dispositivo originalmente diseñado para juegos denominado Kinetic. En realidad es un dispositivo biométrico que en el año 2011 incluso ganó un premio de 50 mil libras esterlinas por desarrollo innovador al reconocer los movimientos de nuestro cuerpo, interpretarlos y trasladarlo como acciones en los juegos de vídeo. Es así que en solo seis años se le ha conseguido un uso importante en la vida real, acercándonos cada vez más a las historias contadas en las saga de películas «Terminator».
Esta entrada no pretende ser una guía exhaustiva de Python ni tampoco algo avanzado en el campo de la inteligencia artificial, apenas es la presentación de todo aquello, un abrebocas: primero estableceremos un entorno de programación y luego ejecutaremos un mini curso de 14 lecciones sobre «machine learning» cuyo material es proporcionado al mundo entero por el Dr. Jason Brownlee en su página web (en idioma inglés).
Instalando un entorno basado en Python para el aprendizaje de las máquinas.
Instalando el entorno Python.
Como ya bien sabéis, ya sea por este vuestro humilde portal o por internet -que abunda información- el lenguaje de programación Python viene instalado por defecto en la mayoría de las distribuciones GNU/Linux y Fedora no es la excepción. Para saber cual versión tenemos instalada, ejecutamos nuestra máquina virtual e introducimos nuestras credenciales de usuario. Acto seguido pulsamos ALT+F2 e introducimos la orden «gnome-terminal» para ejecutar una ventana de comandos para lanzar la siguiente línea:
python3 --version
En la figura podemos observar que ya tenemos instalada la versión 3.5.2:
Instalando el conjunto de utilidades para Python3.
Los paquetes que necesitaremos son seis en total:
- SciPy, conjunto de herramientas que integra los siguientes paquetes:
- NumPy: herramienta para álgebra lineal, transformadas de Fourier y generación de números aleatorios.
- Pandas: para manejar estructura de datos.
- Matplotlib: para plasmar gráficos en 2 dimensiones y algunos en 3D.
- Scikit-Learn: empleado en la minería de datos.
- Statsmodels: para modelos estadísticos.
Todas ellas las podemos bien instalar en una sola línea, bien una por una, depende de nuestra paciencia. Por rapidez escogeremos la primera y en la misma ventana terminal que tenemos abierta colocamos:
sudo dnf install python3-numpy python3-scipy python3-scikit-learn python3-pandas python3-matplotlib python3-statsmodels
El comando DNF es la abreviatura para Dandified Yum, que tal como explicamos, es el equivalente al comando apt-get utilizado en las distribuciones GNU/Linux basadas en Debian. Así que autorizamos la descarga, que son más o menos 92 megabytes:
Una vez se han descargado a nuestro ordenador virtual, se hace la verificación de contenido y se procede a descomprimir e instalar; allí van 200 megabytes adicionales:
Confirmación del entorno instalado.
Una vez finalizado procedemos a «crear» un guión en bash para averiguar rápidamente las versiones instaladas. Aquí viene la utilidad de haber instalado las utilerías de «VirtualBox Guest Additions» en nuestra entrada anterior: podremos «copiar y pegar» texto entre nuestro ordenador anfitrión y el ordenador virtual.
Habilitar el portapapeles entre VirtualBox y las máquinas virtuales.
Antes de poder «copia y pegar» texto debemos primero habilitar su paso por medio de VirtualBox: seleccionamos la máquina virtual Fedora y presionamos CONTROL+S para entrar a la configuración y vamos a la sección «Interfaz de usuario» -> «Dispositivos»:
Descolgamos la lista y seleccionamos «Anfitrión a invitado» y damos «Aceptar».
Archivo de comando «versions.py».
Ahora que podemos pasar el portapapeles a la máquina virtual (tedioso procedimiento para poder habilitarlo), seleccionamos, copiamos y pegamos lo siguiente:
# scipy import scipy print('scipy: %s' % scipy.__version__) # numpy import numpy print('numpy: %s' % numpy.__version__) # matplotlib import matplotlib print('matplotlib: %s' % matplotlib.__version__) # pandas import pandas print('pandas: %s' % pandas.__version__) # scikit-learn import sklearn print('sklearn: %s' % sklearn.__version__) # statsmodels import statsmodels print('statsmodels: %s' % statsmodels.__version__)
En las siguientes imágenes utilizamos el editor de textos gedit, pero sentiros libres de utilizar vuestro preferido (de hecho nosotros más adelante instalamos nano):
Mini curso de «machine learning» en 14 lecciones.
Con la tutoría del Doctor Jason Brownlee, procedemos conforme a lo explicado en su artículo.
Lección N° 01.
En realidad ya aprobamos la primera lección: la creación de un entorno de trabajo con todos los paquetes necesarios.
Lección N° 02.
Fuentes consultadas:
En idioma castellano.
En idioma inglés.
- «Kinect team scoop the £50,000 MacRobert Award» at Institution of Mechanical Engineers.
- «For Marketers, TV Sets Are an Invaluable Pair of Eyes» by By Sapna Maheshwari.
- «Applied Machine Leraning» at Wikipedia.
- «Python Machine Learning Mini-Course» by Jason Brownlee.
- «How to Create a Linux Virtual Machine For Machine Learning Development With Python 3» by Jason Brownlee.