Quand nos annonces prennent l’R

Cette présentation fait suite au tools in action que nous avons donné à Devoxx cette année. L’objectif étant de montrer l’intérêt de R pour découvrir, nettoyer puis enrichir nos données avec des approches de type machine learning.

Chez Car&Boat Media, grâce au site de dépot d’annonces de véhicules d’occasions lacentrale.fr, nous avons à notre disposition plus de 280 000 annonces en publication. Nous souhaitons dans cette présentation vous montrer ce que l’on peut faire très facilement avec R pour découvrir, manipuler et jouer avec la donnée en partant d’un simple dump de ces annonces.

Pour illustrer cela de façon concrète nous allons élaborer un modèle simple de prédiction de prix de vente d’un véhicule (algo supervisé), un équivalent de la cote automobile.

Ensuite nous formerons des groupes de données proches en utilisant un algo non supervisé cette fois (kmeans) pour définir des catégories de véhicules.

Partie 1 : découverte du dataset

Nous avons obtenu un dump au format CSV de toutes les annonces en cours de publication, nous allons l’explorer pour déterminer ce que nous allons pouvoir en faire.

  • Chargement du fichier csv :
cars <- read.csv("finalcars.csv", sep=",", header=TRUE)

Nous créeons ainsi le dataframe cars, structure composée de lignes et de colonnes, que l’on peut assimiler à une table en BDD relationelle.

  • A quoi ressemblent nos premières lignes :
head(cars)

##    brand model                                   version yearModel mileage
## 1 ABARTH   500      1.4 16V T-JET 595 50EME ANNIVERSAIRE      2014     500
## 2 ABARTH   500                      1.4 16V T-JET ABARTH      2012   46750
## 3 ABARTH   500                   1.4 16V TURBO T-JET 140      2012   52250
## 4 ABARTH   500 1.4 16V TURBO T-JET 160CH 595 TURISMO BVR      2012    8800
## 5 ABARTH   500 1.4 16V TURBO T-JET 160CH 595 TURISMO BVR      2013   17850
## 6 ABARTH   500 1.4 16V TURBO T-JET 160CH 595 TURISMO BVR      2013    6911
##   gearbox energy doors powerDin priceNew price
## 1       1      1     3   999999        0 31990
## 2       2      1     3      134        0 13500
## 3       2      1     2   999999        0 14500
## 4       1      1     3      140        0 20690
## 5       1      1     2      140        0 19990
## 6       1      1     2      160        0 21980

Lire la suite