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
- Comprendre el problema: Definir clarament el problema que volem resoldre.
- Exploració de dades: Realitzar una anàlisi exploratòria de les dades (EDA).
- Preprocessament de dades: Preparar les dades per al modelatge.
- Construcció del model: Seleccionar i entrenar un model de classificació.
- Avaluació del model: Avaluar el rendiment del model utilitzant mètriques adequades.
- Ajust del model: Millorar el model mitjançant tècniques d'ajust.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- Introducció a R i RStudio
- Sintaxi Bàsica de R
- Tipus de Dades i Estructures
- Operacions i Funcions Bàsiques
- Importació i Exportació de Dades
Mòdul 2: Manipulació de Dades
- Vectors i Llistes
- Matrius i Arrays
- Data Frames
- Factors
- Manipulació de Dades amb dplyr
- Manipulació de Cadenes
Mòdul 3: Visualització de Dades
- Introducció a la Visualització de Dades
- Gràfics Base de R
- Conceptes Bàsics de ggplot2
- ggplot2 Avançat
- Visualitzacions Interactives amb plotly
Mòdul 4: Anàlisi Estadística
- Estadístiques Descriptives
- Distribucions de Probabilitat
- Proves d'Hipòtesi
- Correlació i Regressió
- ANOVA i Proves de Chi-Cuadrat
Mòdul 5: Gestió Avançada de Dades
- Gestió de Dates i Hores
- Reestructuració de Dades
- Treballant amb Grans Conjunts de Dades
- Web Scraping
- APIs i JSON
Mòdul 6: Conceptes Avançats de Programació
- Escriure Funcions
- Depuració i Gestió d'Errors
- Programació Orientada a Objectes en R
- Programació Funcional
- Computació Paral·lela
Mòdul 7: Aprenentatge Automàtic amb R
- Introducció a l'Aprenentatge Automàtic
- Preprocessament de Dades
- Aprenentatge Supervisat
- Aprenentatge No Supervisat
- Avaluació i Ajust de Models
Mòdul 8: Temes Especialitzats
- Anàlisi de Sèries Temporals
- Anàlisi de Dades Espacials
- Mineria de Text i Processament del Llenguatge Natural
- Bioinformàtica amb R
- Anàlisi de Dades Financeres