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)¶
- 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. - 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 :
Via Windows (vous avez Windows sur votre ordinateur mais vous souhaitez vous familiariser avec linux) :
- Installation de VirtualBox sur Windows
- Installation de Linux Mint
- Installation de la dernière version de scikit-learn
- 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()