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¶
Packager
Entonces corre:
Para comprobar su instalación puedes utilizar
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:
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
:
Escriba «regedit» en el menú de inicio de Windows para iniciar
regedit
.Vaya a la clave
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
.Edita el valor de la propiedad
LongPathsEnabled
de esa clave y ponlo a 1.Vuelve a instalar scikit-learn (ignorando la instalación anterior que no funciona):
pip install --exists-action=i scikit-learn