Installation de scikit-learn

Pour la réalisation du projet RCP209, ainsi que pour travailler sur les travaux pratiques de RCP208 et RCP209 en dehors des séances organisées en présentiel, il est nécessaire de disposer d’une installation de scikit-learn sur votre ordinateur personnel. scikit-learn peut être installé sur UNIX (Linux, Mac OS) et Windows. Nous vous proposons ci-dessous des procédures d’installation que nous avons testées. D’autres approches sont proposées sur http://scikit-learn.org/stable/install.html.

Notez aussi que lors de l’installation vous pouvez rencontrer des difficultés spécifiques que nous n’avons pas rencontrées ; il sera nécessaire alors de chercher sur Internet des solutions à ces difficultés (divers forums abordent ce sujet). Nous ne disposons pas des ressources nécessaires pour vous assister individuellement dans l’installation.

Procédures d’installation vérifiées :

1. Sur Windows (XP, 7, 8, 8.1, 10) : installation directe de scikit-learn sur Windows.

2. Sur Linux : installation directe de scikit-learn sur Linux.

1. Sur Windows (XP, 7, 8, 8.1, 10)

  1. Installation de Anaconda (solution commerciale qui propose aussi une distribution libre) à partir de https://www.anaconda.com/download/ qui inclut, entre autres, numpy, scipy, matplotlib, scikit-learn, Spyder et Jupyter. Anaconda est disponible également sur les plate-formes Linux et MacOS.

  2. Utilisation de python (et des librairies mentionnées) à partir de Spyder ou de Jupyter.

2. Sur Linux

Directement (vous avez déjà linux sur votre ordinateur) :

Vous avez également la possibilité d’installer Anaconda, puis Jupyter et enfin Scikit-learn, comme sur Windows. Sinon :

  1. Installation de la dernière version de scikit-learn

  2. Vérification

Via Windows (vous avez Windows sur votre ordinateur mais vous souhaitez vous familiariser avec linux) :

  1. Installation de VirtualBox sur Windows

  2. Installation de Linux Mint

  3. Installation de la dernière version de scikit-learn

  4. Vérification


Installation de VirtualBox sur Windows

Examiner les exigences de VirtualBox, notamment pour ce qui concerne l’unité centrale, la quantité de mémoire vive nécessaire et le système d’exploitation hôte accepté, sur https://www.virtualbox.org/wiki/End-user_documentation.

Télécharger VirtualBox à partir de https://www.virtualbox.org/wiki/Downloads, en choisissant la version la plus récente pour Windows (VirtualBox 5.1.28 for Windows hosts). Laisser s’enregistrer le fichier (VirtualBox-5.1.28-117968-Win.exe) dans le répertoire Téléchargements de Windows.

Exécution du fichier téléchargé (VirtualBox-5.1.28-117968-Win.exe). Garder un raccourci vers (le gestionnaire de machines) VirtualBox sur le bureau Windows.

Installation de Linux Mint

Nous avons choisi Linux Mint car il s’installe très facilement et arrive déjà bien équipé. Vous pouvez bien entendu installer une autre distribution linux si vous la préférez.

Télécharger d’abord linux Mint à partir de http://www.linuxmint.com/download.php, choisir Cinnamon  64-bit ou KDE  64-bit suivant le type d’interface que vous préférez (par défaut, Cinnamon). Laisser s’enregistrer le fichier (linuxmint-18.2-cinnamon-64bit.iso) dans le répertoire Téléchargements de Windows.

Lancer VirtualBox, créer une nouvelle machine virtuelle (bouton Nouvelle) de type Linux, Other linux (64 bit), choisir une quantité de mémoire d’au minimum 512 Mo (de préférence 1 Go) mais inférieure à la mémoire physiquement disponible sur votre ordinateur. Dans la fenêtre Disque dur, cocher Créer un disque dur virtuel maintenant, dans la fenêtre Type de fichier de disque dur laisser coché VDI, dans la fenêtre Stockage sur disque dur physique laisser coché Dynamiquement alloué, dans la fenêtre Emplacement du fichier et taille laisser l’emplacement par défaut et choisir une taille d’au moins 16 Go, finaliser la création de la machine virtuelle.

Ensuite, dans VirtualBox, choisir la machine virtuelle nouvellement créée et cliquer sur le bouton Configuration, choisir au moins 80 Mo de mémoire vidéo (volet Affichage), choisir 1 ou plusieurs CPU en fonction du nombre de cœurs disponibles sur votre ordinateur (volet Système, onglet Processeur), choisir Presse-papier partagé : Bidirectionnel (volet Général, onglet Avancé).

Dans VirtualBox, choisir la machine virtuelle nouvellement créée et cliquer sur le bouton Démarrer. Choisir comme fichier de disque optique virtuel le fichier linuxmint...iso téléchargé et cliquer sur le bouton Démarrer. Cliquer ensuite sur l’icône d’installation qui a l’aspect d’un CD (Install Linux Mint). Lors de l’installation, bien choisir la langue (Français) et le fuseau horaire.

Installation de la dernière version de scikit-learn

Dans une fenêtre terminal sur linux Mint entrez les commandes suivantes les unes après les autres ; après chaque commande examinez les éventuels messages d’erreur ou avertissements.

sudo apt-get install build-essential python3-dev python3-setuptools \
                 python3-numpy python3-scipy \
                 libatlas-dev libatlas3gf-base
sudo update-alternatives --set libblas.so.3 \
    /usr/lib/atlas-base/atlas/libblas.so.3
sudo update-alternatives --set liblapack.so.3 \
    /usr/lib/atlas-base/atlas/liblapack.so.3
sudo apt-get install python3-tk
sudo apt-get install python3-matplotlib
sudo apt-get install python3-pip
sudo pip3 install -U scikit-learn

L’utilitaire apt-get est disponible sur les linux de la famille Debian / Ubuntu (dont linux Mint). Si votre choix s’est porté sur une autre famille, il vous faudra employer l’utilitaire correspondant de cette famille (par ex. yum sur Red Hat ou Suze).

Vérification

Dans une fenêtre terminal sur linux entrez python3 et ensuite, au prompt Python (>>>), les lignes suivantes qui correspondent à un exemple de classification automatique issu du site scikit-learn (vous pouvez tout copier et ensuite coller) :

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn.cluster import KMeans
from sklearn import datasets
np.random.seed(5)
centers = [[1, 1], [-1, -1], [1, -1]]
iris = datasets.load_iris()
X = iris.data
y = iris.target
estimators = {'k_means_iris_3': KMeans(n_clusters=3),
          'k_means_iris_8': KMeans(n_clusters=8),
          'k_means_iris_bad_init': KMeans(n_clusters=3, n_init=1,
                                          init='random')}
fignum = 1
for name, est in estimators.items():
    fig = plt.figure(fignum, figsize=(4, 3))
    plt.clf()
    ax = Axes3D(fig, rect=[0, 0, .95, 1], elev=48, azim=134)
    plt.cla()
    est.fit(X)
    labels = est.labels_
    ax.scatter(X[:, 3], X[:, 0], X[:, 2], c=labels.astype(np.float))
    ax.w_xaxis.set_ticklabels([])
    ax.w_yaxis.set_ticklabels([])
    ax.w_zaxis.set_ticklabels([])
    ax.set_xlabel('Petal width')
    ax.set_ylabel('Sepal length')
    ax.set_zlabel('Petal length')
    fignum = fignum + 1

fig = plt.figure(fignum, figsize=(4, 3))
plt.clf()
ax = Axes3D(fig, rect=[0, 0, .95, 1], elev=48, azim=134)
plt.cla()
for name, label in [('Setosa', 0),
                ('Versicolour', 1),
                ('Virginica', 2)]:
    ax.text3D(X[y == label, 3].mean(),
              X[y == label, 0].mean() + 1.5,
              X[y == label, 2].mean(), name,
              horizontalalignment='center',
              bbox=dict(alpha=.5, edgecolor='w', facecolor='w'))

y = np.choose(y, [1, 2, 0]).astype(np.float)
ax.scatter(X[:, 3], X[:, 0], X[:, 2], c=y)
ax.w_xaxis.set_ticklabels([])
ax.w_yaxis.set_ticklabels([])
ax.w_zaxis.set_ticklabels([])
ax.set_xlabel('Petal width')
ax.set_ylabel('Sepal length')
ax.set_zlabel('Petal length')
plt.show()