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.