Instalación de scikit-learn

Existen diferentes formas de instalar scikit-learn:

  • Instalar la última versión oficial. Este es el mejor enfoque para la mayoría de los usuarios. Proporcionará una versión estable y los paquetes preconstruidos están disponibles para la mayoría de las plataformas.

  • Instale la versión de scikit-learn proporcionada por su sistema operativo o distribución de Python. Esta es una opción rápida para aquellos que tienen sistemas operativos o distribuciones de Python que distribuyen scikit-learn. Puede que no proporcione la última versión.

  • Construir el paquete desde el código fuente. Esto es lo mejor para los usuarios que quieren las últimas y mejores características y no tienen miedo de ejecutar código nuevo. También es necesario para los usuarios que deseen contribuir al proyecto.

Instalar la última versión

Operating System
Packager
Install the 64bit version of Python 3, for instance from https://www.python.org.Install Python 3 using homebrew (brew install python) or by manually installing the package from https://www.python.org.Install python3 and python3-pip using the package manager of the Linux Distribution.Install conda using the Anaconda or miniconda installers or the miniforge installers (no administrator permission required for any of those).

Entonces corre:

python3 -m venv sklearn-venvpython -m venv sklearn-venvpython -m venv sklearn-venvsource sklearn-venv/bin/activatesource sklearn-venv/bin/activatesklearn-venv\Scripts\activatepip install -U scikit-learnpip install -U scikit-learnpip install -U scikit-learnpip3 install -U scikit-learnconda create -n sklearn-envconda activate sklearn-envconda install -c conda-forge scikit-learn 

Para comprobar su instalación puedes utilizar

python3 -m pip show scikit-learn  # to see which version and where scikit-learn is installedpython3 -m pip freeze  # to see all packages installed in the active virtualenvpython3 -c "import sklearn; sklearn.show_versions()"python -m pip show scikit-learn  # to see which version and where scikit-learn is installedpython -m pip freeze  # to see all packages installed in the active virtualenvpython -c "import sklearn; sklearn.show_versions()"python -m pip show scikit-learn  # to see which version and where scikit-learn is installedpython -m pip freeze  # to see all packages installed in the active virtualenvpython -c "import sklearn; sklearn.show_versions()"python -m pip show scikit-learn  # to see which version and where scikit-learn is installedpython -m pip freeze  # to see all packages installed in the active virtualenvpython -c "import sklearn; sklearn.show_versions()"conda list scikit-learn  # to see which scikit-learn version is installedconda list  # to see all packages installed in the active conda environmentpython -c "import sklearn; sklearn.show_versions()"

Ten en cuenta que para evitar posibles problemas con otros paquetes, se recomienda que utilice un entorno virtual (venv) o un entorno conda.

El uso de este entorno aislado permite instalar una versión específica de scikit-learn con pip o conda y sus dependencias independientemente de cualquier paquete Python previamente instalado. En particular, en Linux se recomienda no instalar los paquetes pip junto con los paquetes gestionados por el administrador de paquetes de la distribución (apt, dnf, pacman…).

Considera que siempre debe recordar activar el entorno de su elección antes de ejecutar cualquier comando de Python cada vez que inicie una nueva sesión de terminal.

Si aún no has instalado NumPy o SciPy, también puedes instalarlos usando conda o pip. Al utilizar pip, asegúrese de que se utilicen ruedas binarias y de que NumPy y SciPy no se recompilen desde el código fuente, lo que puede ocurrir al utilizar configuraciones particulares de sistema operativo y hardware (como Linux en una Raspberry Pi).

Las capacidades de ploteo de Scikit-learn (es decir, las funciones comienzan con «plot_» y las clases terminan con «Display») requieren Matplotlib. Los ejemplos requieren Matplotlib y algunos ejemplos requieren scikit-image, pandas o seaborn. La versión mínima de las dependencias de Scikit-learn se enumeran a continuación junto con su propósito.

Dependency

Minimum Version

Purpose

numpy

1.13.3

build, install

scipy

0.19.1

build, install

joblib

0.11

install

threadpoolctl

2.0.0

install

cython

0.28.5

build

matplotlib

2.1.1

benchmark, docs, examples, tests

scikit-image

0.13

docs, examples, tests

pandas

0.25.0

benchmark, docs, examples, tests

seaborn

0.9.0

docs, examples

memory_profiler

0.57.0

benchmark, docs

pytest

5.0.1

tests

pytest-cov

2.9.0

tests

flake8

3.8.2

tests

mypy

0.770

tests

pyamg

4.0.0

tests

sphinx

3.2.0

docs

sphinx-gallery

0.7.0

docs

numpydoc

1.0.0

docs

Pillow

7.1.2

docs

sphinx-prompt

1.3.0

docs

Advertencia

Scikit-learn 0.20 fue la última versión en soportar Python 2.7 y Python 3.4. Scikit-learn 0.21 soportaba Python 3.5-3.7. Scikit-learn 0.22 soporta Python 3.5-3.8. Scikit-learn ahora requiere Python 3.6 o más reciente.

Nota

Para instalar en PyPy, se requiere PyPy3-v5.10+, Numpy 1.14.0+, y scipy 1.1.0+.

Instalación en el hardware Apple Silicon M1

La recientemente introducida plataforma macos/arm64 (a veces también conocida como macos/aarch64) requiere que la comunidad de código abierto actualice la configuración y automatización de la compilación para soportarla adecuadamente.

En el momento de escribir esto (enero de 2021), la única manera de conseguir una instalación de scikit-learn que funcione en este hardware es instalar scikit-learn y sus dependencias desde la distribución de conda-forge, por ejemplo, utilizando los instaladores de miniforge:

https://github.com/conda-forge/miniforge

El siguiente issue sigue el progreso para hacer posible la instalación de scikit-learn desde PyPI con pip:

https://github.com/scikit-learn/scikit-learn/issues/19137

Distribuciones de terceros de scikit-learn

Algunas distribuciones de terceros proporcionan versiones de scikit-learn integradas en sus sistemas de gestión de paquetes.

Esto puede hacer que la instalación y la actualización sean mucho más fáciles para los usuarios, ya que la integración incluye la capacidad de instalar automáticamente las dependencias (numpy, scipy) que scikit-learn requiere.

La siguiente es una lista incompleta de sistemas operativos y distribuciones de python que proporcionan su propia versión de scikit-learn.

Arch Linux

El paquete de Arch Linux se proporciona a través de los repositorios oficiales <https://www.archlinux.org/packages/?q=scikit-learn>`_ como python-scikit-learn para Python. Se puede instalar escribiendo el siguiente comando:

sudo pacman -S python-scikit-learn

Debian/Ubuntu

El paquete de Debian/Ubuntu está dividido en tres paquetes diferentes llamados python3-sklearn (módulos de python), python3-sklearn-lib (implementaciones de bajo nivel y enlaces), python3-sklearn-doc (documentación). Sólo la versión de Python 3 está disponible en Debian Buster (la distribución más reciente de Debian). Los paquetes pueden instalarse utilizando apt-get:

sudo apt-get install python3-sklearn python3-sklearn-lib python3-sklearn-doc

Fedora

El paquete de Fedora se llama python3-scikit-learn para la versión de python 3, la única disponible en Fedora30. Se puede instalar usando dnf:

sudo dnf install python3-scikit-learn

NetBSD

scikit-learn está disponible a través de pkgsrc-wip:

MacPorts para Mac OSX

El paquete MacPorts se llama py<XY>-scikits-learn, donde XY denota la versión de Python. Se puede instalar escribiendo el siguiente comando:

sudo port install py36-scikit-learn

Anaconda y Enthought Deployment Manager para todas las plataformas compatibles

Anaconda y Enthought Deployment Manager vienen con scikit-learn además de un gran conjunto de librerías científicas de python para Windows, Mac OSX y Linux.

Anaconda ofrece scikit-learn como parte de su distribución gratuita.

Canal Intel Conda

Intel mantiene un canal dedicado a conda que envía scikit-learn:

conda install -c intel scikit-learn

Esta versión de scikit-learn viene con solucionadores alternativos para algunos estimadores comunes. Estos solucionadores provienen de la biblioteca DAAL C++ y están optimizados para CPUs Intel multinúcleo.

Ten en cuenta que estos solucionadores no están habilitados por defecto, por favor consulta la documentación de daal4py para más detalles.

La compatibilidad con los solucionadores estándar de scikit-learn se comprueba ejecutando el conjunto de pruebas completo de scikit-learn a través de la integración continua automatizada, como se informa en https://github.com/IntelPython/daal4py.

WinPython para Windows

El proyecto WinPython distribuye scikit-learn como un plugin adicional.

Solución de Problemas

Error causado por el límite de longitud de la ruta del archivo en Windows

Puede ocurrir que pip falle al instalar los paquetes al alcanzar el límite de tamaño de la ruta por defecto de Windows si Python está instalado en una ubicación anidada como la estructura de carpetas AppData bajo el directorio personal del usuario, por ejemplo:

C:\Users\username>C:\Users\username\AppData\Local\Microsoft\WindowsApps\python.exe -m pip install scikit-learn
Collecting scikit-learn
...
Installing collected packages: scikit-learn
ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users\\username\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python37\\site-packages\\sklearn\\datasets\\tests\\data\\openml\\292\\api-v1-json-data-list-data_name-australian-limit-2-data_version-1-status-deactivated.json.gz'

En este caso es posible levantar ese límite en el registro de Windows utilizando la herramienta regedit:

  1. Escriba «regedit» en el menú de inicio de Windows para iniciar regedit.

  2. Vaya a la clave Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem.

  3. Edita el valor de la propiedad LongPathsEnabled de esa clave y ponlo a 1.

  4. Vuelve a instalar scikit-learn (ignorando la instalación anterior que no funciona):

pip install --exists-action=i scikit-learn