En aquest estudi de cas, aplicarem els coneixements adquirits sobre aprenentatge automàtic per resoldre un problema pràctic. Utilitzarem un conjunt de dades real per construir, avaluar i ajustar un model de classificació.

Objectius de l'Estudi de Cas

  1. Comprendre el problema: Definir clarament el problema que volem resoldre.
  2. Exploració de dades: Realitzar una anàlisi exploratòria de les dades (EDA).
  3. Preprocessament de dades: Preparar les dades per al modelatge.
  4. Construcció del model: Seleccionar i entrenar un model de classificació.
  5. Avaluació del model: Avaluar el rendiment del model utilitzant mètriques adequades.
  6. Ajust del model: Millorar el model mitjançant tècniques d'ajust.

  1. Comprendre el Problema

Descripció del Conjunt de Dades

Utilitzarem el conjunt de dades iris que ve inclòs amb R. Aquest conjunt de dades conté informació sobre tres espècies de flors d'iris (Setosa, Versicolor, i Virginica) i quatre característiques: longitud i amplada del sèpal, i longitud i amplada del pètal.

Objectiu

L'objectiu és construir un model de classificació que pugui predir l'espècie de l'iris basant-se en les quatre característiques.

  1. Exploració de Dades

# Carregar el conjunt de dades iris
data(iris)

# Resum del conjunt de dades
summary(iris)

# Visualització de les primeres files
head(iris)

# Visualització de la distribució de les característiques
pairs(iris, col = iris$Species)

Explicació

  • summary(iris): Proporciona un resum estadístic de cada característica.
  • head(iris): Mostra les primeres files del conjunt de dades.
  • pairs(iris, col = iris$Species): Crea un gràfic de dispersió per visualitzar la distribució de les característiques segons l'espècie.

  1. Preprocessament de Dades

# Comprovar valors nuls
sum(is.na(iris))

# Dividir el conjunt de dades en entrenament i prova
set.seed(123)
index <- sample(1:nrow(iris), 0.7 * nrow(iris))
train_data <- iris[index, ]
test_data <- iris[-index, ]

Explicació

  • sum(is.na(iris)): Comprova si hi ha valors nuls en el conjunt de dades.
  • sample(1:nrow(iris), 0.7 * nrow(iris)): Divideix el conjunt de dades en un 70% per entrenament i un 30% per prova.

  1. Construcció del Model

Model de Classificació amb Random Forest

# Carregar la llibreria randomForest
library(randomForest)

# Entrenar el model
model <- randomForest(Species ~ ., data = train_data, ntree = 100)

# Visualitzar el model
print(model)

Explicació

  • randomForest(Species ~ ., data = train_data, ntree = 100): Entrena un model de Random Forest amb 100 arbres.

  1. Avaluació del Model

# Prediccions sobre el conjunt de prova
predictions <- predict(model, test_data)

# Matriu de confusió
confusion_matrix <- table(test_data$Species, predictions)
print(confusion_matrix)

# Càlcul de l'exactitud
accuracy <- sum(diag(confusion_matrix)) / sum(confusion_matrix)
print(paste("Exactitud:", round(accuracy, 2)))

Explicació

  • predict(model, test_data): Realitza prediccions sobre el conjunt de prova.
  • table(test_data$Species, predictions): Crea una matriu de confusió per avaluar el rendiment del model.
  • sum(diag(confusion_matrix)) / sum(confusion_matrix): Calcula l'exactitud del model.

  1. Ajust del Model

Ajust de Paràmetres

# Ajustar el nombre d'arbres
model_tuned <- randomForest(Species ~ ., data = train_data, ntree = 200)

# Prediccions amb el model ajustat
predictions_tuned <- predict(model_tuned, test_data)

# Nova matriu de confusió
confusion_matrix_tuned <- table(test_data$Species, predictions_tuned)
print(confusion_matrix_tuned)

# Nova exactitud
accuracy_tuned <- sum(diag(confusion_matrix_tuned)) / sum(confusion_matrix_tuned)
print(paste("Exactitud ajustada:", round(accuracy_tuned, 2)))

Explicació

  • randomForest(Species ~ ., data = train_data, ntree = 200): Entrena un model de Random Forest amb 200 arbres per veure si millora el rendiment.
  • predict(model_tuned, test_data): Realitza prediccions amb el model ajustat.
  • table(test_data$Species, predictions_tuned): Crea una nova matriu de confusió per al model ajustat.
  • sum(diag(confusion_matrix_tuned)) / sum(confusion_matrix_tuned): Calcula la nova exactitud del model ajustat.

Conclusió

En aquest estudi de cas, hem aplicat un model de Random Forest per classificar espècies de flors d'iris. Hem seguit un procés sistemàtic que inclou la comprensió del problema, l'exploració de dades, el preprocessament, la construcció del model, l'avaluació i l'ajust. Aquest enfocament ens ha permès construir un model robust i millorar el seu rendiment mitjançant l'ajust de paràmetres.

Resum dels Conceptes Clau

  • Exploració de Dades: Anàlisi inicial per comprendre les dades.
  • Preprocessament de Dades: Preparació de les dades per al modelatge.
  • Construcció del Model: Entrenament d'un model de classificació.
  • Avaluació del Model: Avaluació del rendiment del model.
  • Ajust del Model: Millora del model mitjançant l'ajust de paràmetres.

Aquest estudi de cas proporciona una base sòlida per aplicar tècniques d'aprenentatge automàtic a problemes reals utilitzant R.

Programació en R: De Principiant a Avançat

Mòdul 1: Introducció a R

Mòdul 2: Manipulació de Dades

Mòdul 3: Visualització de Dades

Mòdul 4: Anàlisi Estadística

Mòdul 5: Gestió Avançada de Dades

Mòdul 6: Conceptes Avançats de Programació

Mòdul 7: Aprenentatge Automàtic amb R

Mòdul 8: Temes Especialitzats

Mòdul 9: Projecte i Estudis de Cas

© Copyright 2024. Tots els drets reservats