Créa-blog

Ressources pour développeur web

Tutoriel R, Application avancée et apprentissage automatique

Accueil R et Rstudio Tutoriel R, Application avancée et apprentissage automatique

Dans ce chapitre, nous allons explorer des domaines plus avancés de l’analyse de données avec R, tels que l’analyse de séries temporelles, l’analyse de texte et l’apprentissage automatique. Chacune de ces sections introduira des concepts complexes mais importants, illustrés par des exemples concrets pour aider un débutant à comprendre leur utilité.

Analyse de séries temporelles

Une série temporelle est une suite de données collectées ou mesurées à intervalles de temps réguliers. L’analyse de séries temporelles est utilisée pour identifier des tendances, des cycles et des relations temporelles dans les données.

Exemple : Prévision de données avec une série temporelle. Imaginons que nous avons des données mensuelles sur le nombre de visiteurs d’un site web, et nous voulons prévoir le nombre de visiteurs pour les mois à venir.

Étape 1 : Charger les données


# Créer un vecteur de données représentant le nombre de visiteurs mensuels
visiteurs <- c(120, 135, 142, 160, 180, 175, 190, 200, 210, 220, 230, 240)
# Créer une série temporelle avec une fréquence de 12 (mensuelle)
serie_temporelle <- ts(visiteurs, frequency = 12, start = c(2023, 1))
# Afficher la série temporelle
plot(serie_temporelle, main = "Nombre de visiteurs par mois", ylab = "Visiteurs", xlab = "Mois")

Étape 2 : Identifier les tendances

Nous utilisons le package forecast pour créer un modèle de prévision simple à partir de ces données.


# Installer le package forecast
install.packages("forecast")
# Charger le package forecast
library(forecast)
# Créer un modèle de prévision
modele <- auto.arima(serie_temporelle)
# Prévoir les 6 prochains mois
previsions <- forecast(modele, h = 6)
# Afficher les prévisions
plot(previsions, main = "Prévision du nombre de visiteurs")

Explication

  • Série temporelle (ts) : Crée une série temporelle à partir des données.
  • Modèle ARIMA : Un modèle statistique utilisé pour faire des prévisions sur des séries temporelles.
  • forecast() : Fonction qui permet de prévoir les futures valeurs de la série.

Analyse de texte

L'analyse de texte consiste à traiter et analyser des données textuelles pour extraire des informations utiles. Cela peut inclure des tâches comme la comptabilisation des mots, l'analyse des sentiments ou l'identification de thèmes récurrents dans un texte.

Exemple : Analyse de la fréquence des mots dans un texte. Nous allons utiliser un texte simple et analyser la fréquence des mots à l’aide du package tm (Text Mining) et wordcloud pour visualiser les résultats.

Étape 1 : Préparer et nettoyer le texte


# Installer les packages nécessaires
install.packages("tm")
install.packages("wordcloud")
# Charger les packages
library(tm)
library(wordcloud)
# Créer un corpus à partir d'un vecteur de texte
texte <- c("R est un langage de programmation puissant pour l'analyse des données.", 
           "Les séries temporelles et l'apprentissage automatique sont des applications avancées.", 
           "L'analyse de texte est utile pour extraire des informations des données textuelles.")
corpus <- Corpus(VectorSource(texte))
# Nettoyer le texte : suppression des majuscules, ponctuation et mots inutiles
corpus <- tm_map(corpus, content_transformer(tolower))
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, removeWords, stopwords("fr"))
# Créer une matrice de termes
matrice_termes <- TermDocumentMatrix(corpus)
matrice_termes <- as.matrix(matrice_termes)
frequence_mots <- sort(rowSums(matrice_termes), decreasing = TRUE)
# Afficher les mots les plus fréquents
print(frequence_mots)

Étape 2 : Visualiser la fréquence des mots


# Créer un nuage de mots
wordcloud(names(frequence_mots), frequence_mots, max.words = 10)

Explication

  • Corpus : Ensemble de textes traités.
  • Nettoyage : Nous convertissons le texte en minuscules, supprimons la ponctuation et éliminons les mots inutiles comme "le", "la", "de".
  • TermDocumentMatrix : Crée une matrice qui compte le nombre d'occurrences de chaque mot dans le texte.
  • wordcloud() : Crée une visualisation de la fréquence des mots sous forme de nuage de mots.

Apprentissage automatique avec R

L'apprentissage automatique consiste à enseigner à un programme informatique à apprendre à partir de données, sans être explicitement programmé pour effectuer une tâche spécifique. En d'autres termes, au lieu de coder toutes les règles manuellement, vous fournissez un algorithme qui analyse les données, identifie des modèles et fait des prédictions.

Il existe principalement trois types d’apprentissage automatique :

  • Apprentissage supervisé : Le modèle apprend à partir de données étiquetées (chaque donnée d’entraînement a une réponse correcte). L'objectif est de prédire une étiquette pour de nouvelles données. Par exemple, vous pourriez entraîner un modèle à partir d’un jeu de données de fleurs où chaque fleur est déjà classée dans une catégorie (espèce de fleur).
  • Apprentissage non supervisé : Le modèle analyse des données non étiquetées pour découvrir des structures cachées. Par exemple, on peut demander au modèle de regrouper des clients selon leur comportement d’achat sans savoir à l'avance quels groupes existent.
  • Apprentissage par renforcement : Le modèle apprend par essais et erreurs, en recevant des récompenses ou des punitions en fonction des actions qu'il effectue.

L’apprentissage supervisé

L’apprentissage supervisé est l'un des types d’apprentissage automatique les plus courants et plus faciles à comprendre. Voyons plus en détail comment cela fonctionne avec un exemple simple.

Exemple : Prédiction des prix des maisons

Imaginons que vous souhaitez prédire le prix d'une maison en fonction de certaines caractéristiques comme sa taille, le nombre de chambres, l'année de construction, etc.

Les données ressembleraient à ceci :

Taille (m²)ChambresAnnéePrix (€)
10032005250 000
12042010300 000
15042015400 000

Votre tâche est de prédire le prix d’une nouvelle maison en utilisant les informations des maisons précédentes. Vous avez ici un exemple de régression, car la variable à prédire (le prix) est continue.

Étape 1 : Diviser les données

Avant de former un modèle, vous devez diviser vos données en deux ensembles :

  • Ensemble d'entraînement : Les données que le modèle va utiliser pour apprendre.
  • Ensemble de test : Les données que le modèle va utiliser pour vérifier s’il a bien appris.
# Exemple de données sur les maisons
maisons <- data.frame(
  taille = c(100, 120, 150, 180),
  chambres = c(3, 4, 4, 5),
  annee = c(2005, 2010, 2015, 2018),
  prix = c(250000, 300000, 400000, 500000)
)
# Diviser les données en ensemble d'entraînement et de test (ici on simplifie)
train_set <- maisons[1:3, ]  # Données d'entraînement
test_set <- maisons[4, ]      # Données de test

Étape 2 : Choisir un modèle

Un modèle simple que nous pouvons utiliser est la régression linéaire. Ce modèle essaie de tracer une droite à travers les points de données pour établir une relation entre les variables d’entrée (par exemple, la taille, le nombre de chambres) et la sortie (le prix).

# Construire un modèle de régression linéaire
modele <- lm(prix ~ taille + chambres + annee, data = train_set)
# Résumé du modèle
summary(modele)

Étape 3 : Faire des prédictions

Une fois que le modèle est construit, nous pouvons l'utiliser pour prédire le prix de la nouvelle maison (celle dans l'ensemble de test).

# Prédire le prix de la maison dans l'ensemble de test
prediction <- predict(modele, newdata = test_set)
print(prediction)

Si la maison a une taille de 180 m², 5 chambres et a été construite en 2018, le modèle nous donnera une estimation du prix basé sur ce qu’il a appris avec les autres maisons.

L’apprentissage non supervisé

L'apprentissage non supervisé est différent parce qu'il n'y a pas de "réponse correcte" dans les données d'entraînement. L’objectif est plutôt de trouver des structures ou des regroupements naturels dans les données.

Exemple : Groupement de clients

Imaginons que vous ayez des données sur les habitudes d'achat de clients et que vous souhaitiez regrouper ces clients en fonction de leur comportement.

ClientAchats mensuels (€)Visites par moisÂge
A5001030
B200525
C7001540

Étape 1 : Appliquer K-means clustering

# Exemple de données
clients <- data.frame(
  achats = c(500, 200, 700, 150),
  visites = c(10, 5, 15, 4),
  age = c(30, 25, 40, 20)
)
# Appliquer l'algorithme de K-means pour regrouper les clients
resultat_kmeans <- kmeans(clients, centers = 2)
# Afficher les groupes
print(resultat_kmeans$cluster)

Ce code regroupe les clients en deux groupes en fonction de leurs habitudes d'achat.

Apprentissage par renforcement

L'apprentissage par renforcement est un peu différent des autres formes d'apprentissage. Ici, un agent apprend à interagir avec un environnement et à prendre des décisions pour maximiser une récompense. Par exemple, cela pourrait être utilisé pour enseigner à un robot comment naviguer dans une pièce ou à un programme comment jouer à un jeu vidéo.

Choisir le bon algorithme

Il existe de nombreux algorithmes d’apprentissage automatique, et le choix du bon dépend du type de problème que vous essayez de résoudre. Voici quelques-uns des algorithmes courants :

  • Régression linéaire : Prédire une variable numérique continue.
  • K-nearest neighbors (KNN) : Classer des points de données selon leurs voisins.
  • SVM (Support Vector Machine) : Classer les données en groupes distincts.
  • Random Forest : Utilise plusieurs arbres de décision pour améliorer la précision.
  • K-means : Trouver des groupes dans des données non étiquetées.

L'apprentissage automatique est un domaine très puissant qui permet de résoudre une grande variété de problèmes, que ce soit pour faire des prédictions, des classifications ou découvrir des structures cachées dans les données. Avec des algorithmes adaptés et de bonnes données, vous pouvez créer des systèmes intelligents capables d'apprendre de leurs expériences et de s'améliorer au fil du temps.

Dans ce chapitre, nous avons découvert trois applications avancées de R :

  • Analyse de séries temporelles : Utilisée pour analyser des données collectées au fil du temps.
  • Analyse de texte : Technique d'extraction d'informations à partir de données textuelles.
  • Apprentissage automatique : Utilisé pour classer ou prédire des données à l'aide de modèles mathématiques.

Ces outils vous permettent d'approfondir votre expertise en analyse de données avec R.

Chapitre 11 : R Mardown et exportation de rapports en R →