TP_Regression.ipynb 57.5 KB
 TheophilePACE committed Jan 22, 2019 1 2 3 4 5 6 ``````{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ `````` Long Le committed Jan 22, 2019 7 8 `````` "# TP Apprentissage supervisé: Régression\n", "Dans ce TP, on va faire la regression. C'est pour analyser la relation d'une variable par rapport à une ou plusieurs autres." `````` TheophilePACE committed Jan 22, 2019 9 10 11 12 13 14 15 16 17 18 19 20 21 `````` ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dataset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ `````` Long Le committed Jan 22, 2019 22 23 24 25 26 27 28 `````` "On va utiliser les données Boston.\n", "https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html\n", "\n", "Prix des maisons à Boston (cf le site pour les variables)\n", "https://scikit-learn.org/stable/datasets/index.html#boston-dataset\n", "\n", "Importez les libraries de ce matin: `numpy` et `scikit datasets`.\n", `````` TheophilePACE committed Jan 22, 2019 29 `````` "Consultation de la doc du dataset\n", `````` Long Le committed Jan 22, 2019 30 `````` "\n", `````` TheophilePACE committed Jan 22, 2019 31 32 33 `````` "Chargement du dataset boston" ] }, `````` Long Le committed Jan 22, 2019 34 35 `````` { "cell_type": "code", `````` TheophilePACE committed Jan 23, 2019 36 `````` "execution_count": 1, `````` Long Le committed Jan 22, 2019 37 38 `````` "metadata": {}, "outputs": [], `````` TheophilePACE committed Jan 22, 2019 39 40 41 42 43 44 45 `````` "source": [ "import numpy as np \n", "from sklearn import datasets\n", "boston = datasets.load_boston()\n", "X, y = boston.data, boston.target\n", "feature_names = boston.feature_names" ] `````` Long Le committed Jan 22, 2019 46 `````` }, `````` TheophilePACE committed Jan 22, 2019 47 48 49 50 51 `````` { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyse exploratoire et préparation du dataset\n", `````` Long Le committed Jan 22, 2019 52 `````` "Étudier les corrélations en utilisant `np.corrcoef`" `````` TheophilePACE committed Jan 22, 2019 53 54 55 `````` ] }, { `````` Long Le committed Jan 22, 2019 56 `````` "cell_type": "code", `````` TheophilePACE committed Jan 23, 2019 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 `````` "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "