.. _chap-installationScikitLearn: ############################ 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 : :ref:`installationWin` : installation directe de ``scikit-learn`` sur Windows. :ref:`installationLinux` : installation directe de ``scikit-learn`` sur Linux. .. _installationWin: 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. .. _installationLinux: 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 : #. :ref:`installationScikitLearnLinux` #. :ref:`verification` Via Windows (vous avez Windows sur votre ordinateur mais vous souhaitez vous familiariser avec linux) : #. :ref:`installationVirtualBox` #. :ref:`installationLinuxMint` #. :ref:`installationScikitLearnLinux` #. :ref:`verification` -------------------------------------------------------------------------------------------------------------------------- .. _installationVirtualBox: 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. .. _installationLinuxMint: 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. .. _installationScikitLearnLinux: 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. .. code-block:: bash 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). .. _verification: 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) : .. code-block:: python 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()