0% ont trouvé ce document utile (0 vote)
123 vues23 pages

Formation Python Pour La Data Science - 5 - Le Machine Learning

Transféré par

tdiouf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
123 vues23 pages

Formation Python Pour La Data Science - 5 - Le Machine Learning

Transféré par

tdiouf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 23

Formation Python pour la

data science
Machine Learning
Emmanuel Jakobowicz
[email protected]

1
Le data mining et le machine learning

2
L’analyse de données et le machine learning
avec Python
 Le bibliothèque la plus adaptée pour faire du data mining et du machine learning est la bibliothèque
scikit-learn
 Cette bibliothèque propose des fonctions prédéfinies pour un grand nombre de méthodes
 La classification : SVM, plus proches voisins, random forest…
 Les régressions : linéaire, ridge, Lasso…
 Le clustering : k-means…
 L’analyse de données : ACP, DA…
 …
 Dans le cadre de cette formation, nous allons nous concentrer sur 5 méthodes afin de mener des analyses
complètes :
 La régression linéaire (dans statsmodels)
 L’ACP (dans scikit-learn)
 Les plus proches voisins (dans scikit-learn)
 Les k-means (dans scikit-learn)

3
La régression linéaire multiple

 L’algorithme des moindres carrés ordinaires se trouve dans de


nombreuses bibliothèques Python
 En python, il est toujours possible (et parfois nécessaire) de recoder soi-
même une fonction statistique (ou du moins d’assembler des morceaux)
 Nous utiliserons des méthodes permettant d’obtenir des résultats
directs dans la cadre de cette formation

 C’est dans la bibliothèque statsmodels qu’on trouve la manière la plus


poussée d’analyser un modèle linéaire par moindres carrés ordinaires
(OLS) / nous allons aussi montrer comment le faire avec scikit-learn
4
Etude de cas – publicité (1)

 Nous travaillons sur les données advertising.csv qui propose de


modéliser les ventes par la publicités par média (TV, radio,
journaux) Importez les données et estimez ce
modèle. Affichez les différentes
 Il y a 200 observations et 4 variables sorties et utilisez .predict() pour
prédire de nouvelles valeurs des
ventes en fonctions d’un
 On commence par étudier le modèle Sales ~ TV DataFrame.
smf.ols(formula='Sales ~ TV', data=data).fit()
Et on affiche les différentes sorties avec :
.params, .conf_int(), .rsquared, .predict()
5
Etude de cas – publicité (2)

 On étudie maintenant le modèle complet de régression


multiple

Obtenez des résultats


 On peut le faire avec smf.ols et afficher les résultats avec équivalents avec statsmodels et
.summary() scikit-learn pour le modèle de
régression multiple.
Créez des graphique Y / pred(Y)
 On peut le faire avec LinearRegression de scikit-learn et Y / résidus(Y)
 On utilisera des arrays avec les différentes variables (X et y)
 Et on affiche avec .intercept_, .coef_, .score(X, y) (pour
le R²)
 .predict permet de prédire une ou plusieurs valeurs
6
L’analyse en composantes principales

 L’analyse en composantes principales est une méthode


centrale en analyse de données
 Elle combine des calculs matriciels et des visualisations
 La tradition de Python va plutôt vers une implémentation
personnelle par calcul matriciel mais nous utiliserons ce qui
est disponible
 Nous utiliserons deux approches pour faire de l’ACP sur
nos données

7
Cas pratique 1 : les iris de Fisher avec scikit-
learn
 Les données : les iris de Fisher disponibles dans le package
Scikit-Learn ou importez directement de données de la
formation
 Nous utilisons la fonction PCA de Scikit-Learn, la principale
option est n_component qui demande le nombre de
composantes Faire une ACP sur les
 On peut voir ce qu’il y a dans l’objet créer en utilisant données des iris et
PCA.__doc__ représenter les nuages de
points
 Dans .explained_variance_ratio_ on retrouve la part de
variance expliquée
 On utilise la fonction pca.fit(X).transform(X) pour projeter
les points sur les axes
Pour récupérer les données, on utilise iris = datasets.load_iris() 8
Les plus proches voisins

 La méthode des plus proches voisins est une méthode permettant de


faire beaucoup d’analyses différentes :
 Régression
 Classification
 Elle est basée sur le principe de l’apprentissage automatique avec un
échantillon d’apprentissage et un échantillon de test
 Plusieurs algorithmes existent, scikit-learn privilégiera l’approche la plus
adaptée
 En cas d’égalité, scikit-learn privilégie l’observation placée en premier
dans l’échantillon d’apprentissage
9
Cas pratique : la prévision avec les plus proches voisins

 On désire effectuer une prévision en utilisant les plus proches voisins


 On travaille sur les statistiques des joueurs de la NBA en 2013-2014
 On a donc un jeu de données avec des données manquantes qu’on importe
depuis le format csv
 On a une liste de variables pour 481 joueurs
 On va essayer de prédire le nombre de points marqué dans la saison en
fonction des autres variables

Importez les données et visualisez les


statistiques de Tony Parker 10
Cas pratique : la prévision avec les plus
proches voisins
 On va donc créer un échantillon d’apprentissage et un
échantillon de test
Préparez les données et
 On utilise : appliquez le modèle des
plus proches voisins
 from numpy.random import permutation et on permute les KNeighborsRegressor(n_
indices permutation(nba2.index) neighbors=?)
 On crée avec l’option loc, les sous- échantillons. Obtenir les prédictions et
comparer les prédictions
 On prendra 40 observations de test aux valeurs obtenues
 On utilise des colonnes quanti pour prédire
 Le y est définit par la variable ‘pts’
11
Les k-means

 Pour les k-means, on va utiliser la fonction Kmeans() de Scikit-


Learn qui va nous permettre d’obtenir un objet facile à gérer
 Le principe des k-means est de classer des objets dans un
nombre de classe défini
 On va commencer par générer des classes aléatoires
 On va utiliser :
from sklearn.datasets.samples_generator import make_blobs
X, y = make_blobs(n_samples=1000,n_features=4, centers=6, Générez les classes.
random_state=0, cluster_std=1.60)

12
Les k-means

 On estime les modèle avec


from sklearn.cluster import KMeans
est = KMeans(6) # 6 classes
est.fit(X)
y_kmeans = est.predict(X)

Appliquez le modèle et
représentez deux scatter plot
avec les classes prédites et les
classes réelles

13
Cas pratique : réduire le nombre de couleurs
dans une image
 On va utiliser les k-means pour baisser la résolution
d'une image
 On prend l'image New York du site STAT4DECISION
 On utilise misc de scipy

from scipy import misc


face = misc.imread('New York.jpg')
import matplotlib.pyplot as plt
plt.imshow(face)
plt.grid(False);
14
Cas pratique : réduire le nombre de couleurs
dans une image
 On va donc appliquer les k-means sur tous les points de l’image afin de définir 64
couleurs à utiliser
 On transforme l’image en un array à deux dimensions
 On applique les k-means avec la fonction Kmeans et 8 classes
 On l’applique à X et on utilise cluster_centers_ pour définir le centre de chaque
cluster et la couleur à associer
 On repasse ensuite dans le format initial et on affiche l’image

image = face[::3, ::3] with sns.axes_style('white'):


n_colors = 8 plt.figure()
plt.imshow(new_image)
X = (image / 255.0).reshape(-1, 3) plt.title('{0} couleurs'.format(n_colors))

15
Résultats

16
Analyse du churn

 Pour analyser le churn, on va utiliser trois méthodes


 Les forêts aléatoires
 Les SVM Importez les données se trouvant
 Les k-plus proches voisins dans le fichier telecom.csv
Affichez le nom des variables et
 Nous utiliserons des données issues des telecoms leurs propriétés (.info())
 Chaque ligne représente un client avec un certain
nombre de variables décrivant le client
 On a aussi une variable permettant de savoir si le client
est toujours client de l’opérateur
17
Analyse du churn

 La variable qui nous intéresse est la variable churn, elles est mal
codée dans le jeu de données
 Pour utiliser des algorithmes de machine learning, on doit séparer
la partie explicative et la partie à expliquer
 On stocke le churn dans y
 On stocke les variables qui nous intéressent dans X

Créez une nouvelle variable churn qui


prend des valeurs 0/1 (avec np.where 18

par exemple)
Les plus proches voisins

 La méthode des plus proches voisins est une méthode permettant de


faire beaucoup d’analyses différentes :
 Régression
 Classification
 Elle est basée sur le principe de l’apprentissage automatique avec un
échantillon d’apprentissage et un échantillon de test
 Plusieurs algorithmes existent, scikit-learn privilégiera l’approche la plus
adaptée
 En cas d’égalité, scikit-learn privilégie l’observation placée en premier
dans l’échantillon d’apprentissage
19
Analyse du churn
 Appliquer un modèle de plus proches voisins
 On utilise la fonction plus proche voisins de sickit learn

 On crée un objet plus proche voisins (on prendra 10 voisins)

 On utilise la méthode .fit() de cet objet afin d’appliquer les données à la


méthode

 On peut calculer simplement l’accuracy pour ce modèle


20
Analyse du churn
 Effectuez les mêmes analyses avec les SVM et les forêts aléatoires

 Comparez les accuracy

21
Analyse du churn

 Pour aller plus loin, il faut ajuster les hyperparamètres des


modèles
 Il faut fonctionner par validation croisée
 Essayer de comprendre les importances des variables du modèle

22
23

Vous aimerez peut-être aussi