Scikit Learn - Introducción

En este capítulo, entenderemos qué es Scikit-Learn o Sklearn, origen de Scikit-Learn y algunos otros temas relacionados como comunidades y contribuyentes responsables del desarrollo y mantenimiento de Scikit-Learn, sus prerrequisitos, instalación y sus características.

Qué es Scikit-Learn (Sklearn)

Scikit-learn (Sklearn) es la biblioteca más útil y robusta para el aprendizaje automático en Python. Proporciona una selección de herramientas eficientes para el aprendizaje automático y el modelado estadístico que incluyen clasificación, regresión, agrupación y reducción de dimensionalidad a través de una interfaz de consistencia en Python. Esta biblioteca, que está escrita en gran parte en Python, se basa enNumPy, SciPy y Matplotlib.

Origen de Scikit-Learn

Originalmente se llamaba scikits.learn y fue desarrollado inicialmente por David Cournapeau como un proyecto de verano de código de Google en 2007. Más tarde, en 2010, Fabian Pedregosa, Gael Varoquaux, Alexandre Gramfort y Vincent Michel, de FIRCA (Instituto Francés de Investigación en Ciencias de la Computación y Automatización), tomaron este proyecto a otro nivel y se hizo la primera versión pública (v0.1 beta) el 1 de febrero de 2010.

Echemos un vistazo a su historial de versiones:

  • Mayo de 2019: scikit-learn 0.21.0

  • Marzo de 2019: scikit-learn 0.20.3

  • Diciembre de 2018: scikit-learn 0.20.2

  • Noviembre de 2018: scikit-learn 0.20.1

  • Septiembre de 2018: scikit-learn 0.20.0

  • Julio de 2018: scikit-learn 0.19.2

  • Julio de 2017: scikit-learn 0.19.0

  • Septiembre de 2016. scikit-learn 0.18.0

  • Noviembre de 2015. scikit-learn 0.17.0

  • Marzo de 2015. scikit-learn 0.16.0

  • Julio de 2014. scikit-learn 0.15.0

  • Agosto de 2013. scikit-learn 0.14

Comunidad y colaboradores

Scikit-learn es un esfuerzo de la comunidad y cualquiera puede contribuir a él. Este proyecto está alojado enhttps://github.com/scikit-learn/scikit-learn. Las siguientes personas son actualmente los principales contribuyentes al desarrollo y mantenimiento de Sklearn:

  • Joris Van den Bossche (científico de datos)

  • Thomas J Fan (Desarrollador de software)

  • Alexandre Gramfort (Investigador de aprendizaje automático)

  • Olivier Grisel (Experto en aprendizaje automático)

  • Nicolas Hug (científico investigador asociado)

  • Andreas Mueller (científico de aprendizaje automático)

  • Hanmin Qin (ingeniero de software)

  • Adrin Jalali (desarrollador de código abierto)

  • Nelle Varoquaux (Investigadora de ciencia de datos)

  • Roman Yurchak (científico de datos)

Varias organizaciones como Booking.com, JP Morgan, Evernote, Inria, AWeber, Spotify y muchas más están utilizando Sklearn.

Prerrequisitos

Antes de comenzar a usar la última versión de scikit-learn, necesitamos lo siguiente:

  • Python (> = 3,5)

  • NumPy (> = 1.11.0)

  • Scipy (> = 0.17.0) li

  • Joblib (> = 0,11)

  • Se requiere Matplotlib (> = 1.5.1) para las capacidades de trazado de Sklearn.

  • Se requiere pandas (> = 0.18.0) para algunos de los ejemplos de scikit-learn usando estructura y análisis de datos.

Instalación

Si ya instaló NumPy y Scipy, las siguientes son las dos formas más fáciles de instalar scikit-learn:

Usando pip

El siguiente comando se puede usar para instalar scikit-learn a través de pip:

pip install -U scikit-learn

Usando conda

El siguiente comando se puede usar para instalar scikit-learn a través de conda:

conda install scikit-learn

Por otro lado, si NumPy y Scipy aún no están instalados en su estación de trabajo Python, puede instalarlos usando pip o conda.

Otra opción para usar scikit-learn es usar distribuciones de Python como Canopy y Anaconda porque ambos envían la última versión de scikit-learn.

Caracteristicas

En lugar de centrarse en cargar, manipular y resumir datos, la biblioteca de Scikit-learn se centra en modelar los datos. Algunos de los grupos de modelos más populares proporcionados por Sklearn son los siguientes:

Supervised Learning algorithms - Casi todos los algoritmos populares de aprendizaje supervisado, como Regresión lineal, Máquina de vectores de soporte (SVM), Árbol de decisiones, etc., son parte de scikit-learn.

Unsupervised Learning algorithms - Por otro lado, también tiene todos los algoritmos populares de aprendizaje no supervisado, desde agrupamiento, análisis factorial, PCA (Análisis de componentes principales) hasta redes neuronales no supervisadas.

Clustering - Este modelo se utiliza para agrupar datos sin etiquetar.

Cross Validation - Se utiliza para verificar la precisión de los modelos supervisados ​​en datos no vistos.

Dimensionality Reduction - Se utiliza para reducir la cantidad de atributos en los datos que se pueden utilizar más para resumir, visualizar y seleccionar características.

Ensemble methods - Como sugiere el nombre, se utiliza para combinar las predicciones de múltiples modelos supervisados.

Feature extraction - Se utiliza para extraer las características de los datos para definir los atributos en los datos de imagen y texto.

Feature selection - Se utiliza para identificar atributos útiles para crear modelos supervisados.

Open Source - Es una biblioteca de código abierto y también comercialmente utilizable bajo licencia BSD.