SciKit Learn: tutorial básico

Clase 11 de 32Curso de Introducción a Machine Learning 2018

Tutorial Scikit-learn para el curso de Introducción a Machine Learning

En la clase de introducción a Machine Learning o Aprendizaje Automático utilizamos scikit-learn como el apoyo para trabajar en el proyecto de machine learning supervisado y no supervisado con Python como nuestro lenguaje de programación. En este tutorial, vamos a aprender más a detalle sobre esta scikit-learn.

Scikit-learn fue desarrollado inicialmente como un proyecto del Google summer of code en 2007. Actualmente, está patrocinado por el INRIA (Institut National de Recherche en Informatique et en Automatique, Instituto Nacional Francés para la investigación en Ciencias de computación y control), Google y la fundación de software Python, además tiene una licencia Open Source BSD.

Scikit-learn no solo nos permite resolver problemas de machine learning utilizando Python, sino también provee herramientas eficientes para minería y análisis de dato y utiliza los ya conocidos NumPy, SciPy y Matplotlib para visualización de datos. Ref. https://scikit-learn.org/stable/

La versión actual en uso es 0.20.1 (lanzada en Noviembre 2018), la versión aún en desarrollo es 0.20.2 Puedes revisar qué versión de scikit-learn trabajando en línea de comando e ingresando a python:

$python >>import sklearn >>print(sklearn.__version__)

INSTALACIÓN

Para instalar scikit-learn necesitas tener instalado previamente:

Python (>=2.7 o >= 3.4) NumPy (>= 1.8.2) SciPy (>= 0.13.3)

NumPy (Numeric Python) le da a Python capacidades de cálculo similares a los de otros software como MATLAB. SciPy (Scientific Python) es una librería fundamental para computación científica.

Para instalar Python puedes hacerlo siguiendo el este tutorial que se encuentra en el Curso de Python https://platzi.com/clases/1378-python/14289-guia-de-instalacion-y-conceptos-basicos/

Ahora sigamos con NumPy. En la consola, terminal o línea de comandos escribe lo siguiente:

$ pip install numpy

Instalar SciPy será muy similar a NumPy escribe la siguiente instrucción comando:

$ pip install scipy

Ambas puedes instalarlos tanto Windows como en Mac.

Si ya tienes en tu computador una versión funcional de NumPy y SciPy es posible instalar scikit-learn desde línea de comando:

$pip install –U scikit-learn

o si utilizas jupiter notebook y tienes conda funcional, es posible instalarlo con:

$conda install scikit-learn

En caso de no contar con ninguno de los mencionados (NumPy, SciPy), puedes instalarlos con pip o conda.

Scikit-Learn Machine Learning Supervisado En el curso revisamos diferentes algoritmos tanto para regresión como para clasificación, dentro de lo que engloba el Machine Learning Supervisado. A continuación, mostramos como utilizar scikitlearn con los diferentes algoritmos descritos:

Regresión Lineal De tipo: Regresión from sklearn import linear_model

Regresión Logística De tipo: Clasificación from sklearn.linear_model import LogisticRegression

Naïve Bayes De tipo: Clasificación from sklearn.naive_bayes import GaussianNB

k-Nearest Neighbors De tipo: Regresión, Clasificación from sklearn.neighbors import KNeighborsClassifier

Decision Tree – Arbol de Decisiones De tipo: Clasificación y Regresión

from sklearn import tree tree.DecisionTreeRegressor() tree.DecisionTreeClassifier()

Random Forest De tipo: Regresión y clasificación

from skelarn.ensemble import RandomForestRegressor from skelarn.ensemble import RandomForestClassifier

Scikit-Learn Machine Learning No Supervisado k-means from sklearn.cluster import KMeans

Scikit-Learn Set de Datos sklearn.datasets from sklearn.datasets import load_iris-> clasificación de flores

Otros data sets: california_housing: para regresión de valor de precios de casas load_breast_cancer:para clasificación de células cancerígenas Y existen varios tipos más para aplicar machine learning supervisado a clasificación y regresión.

Además de los set de datos listos para trabajar, existe el generador de ejemplos (“sample generators”) por ejemplo: make_blobs, utilizado en uno de los ejemplos del curso. from sklearn.datasets.samples_generator import make_blobs

scikit-Learn Metrics Para evaluar nuestro modelo entrenado, scikit-learn cuenta con diferentes métricas que nos permite estimar el rendimiento del algoritmo seleccionado. Como las que usamos en el proyecto, como ser: Matriz de confusión: from sklearn.metrics import confusion_matrix

Ref: https://scikit-learn.org/stable/modules/classes.html#sklearn-metrics-metrics

Quienes utilizan actualmente scikit-Learn: Spotify Inria Betworks Hugging Face Evernote Booking.com Entre otros!