SciKit Learn: tutorial básico
Clase 11 de 32 • Curso 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!