El preprocessament de dades és una etapa crucial en l'aprenentatge automàtic, ja que la qualitat de les dades d'entrada pot influir significativament en el rendiment dels models. En aquest tema, aprendrem com preparar les dades per a l'anàlisi i la modelització, incloent la neteja, transformació i normalització de dades.
Objectius del Tema
- Entendre la importància del preprocessament de dades.
- Aprendre tècniques de neteja de dades.
- Aplicar transformacions i normalitzacions de dades.
- Gestionar dades mancants i valors atípics.
- Importància del Preprocessament de Dades
El preprocessament de dades és essencial per diverses raons:
- Qualitat de les Dades: Dades brutes poden contenir errors, valors mancants o inconsistències que poden afectar negativament els models.
- Rendiment del Model: Models d'aprenentatge automàtic funcionen millor amb dades netes i ben estructurades.
- Eficiència Computacional: Dades preprocessades poden reduir el temps de càlcul i millorar l'eficiència dels algoritmes.
- Neteja de Dades
2.1. Identificació de Dades Mancants
Les dades mancants són comuns en molts conjunts de dades. Podem identificar-les utilitzant funcions com is.na()
en R.
# Exemple de dades amb valors mancants dades <- data.frame( id = 1:5, valor = c(10, NA, 30, NA, 50) ) # Identificar valors mancants is.na(dades)
2.2. Tractament de Dades Mancants
Hi ha diverses maneres de tractar les dades mancants:
- Eliminació: Eliminar files o columnes amb valors mancants.
- Imputació: Substituir valors mancants amb la mitjana, mediana o mode.
# Eliminació de files amb valors mancants dades_sense_na <- na.omit(dades) # Imputació amb la mitjana dades$valor[is.na(dades$valor)] <- mean(dades$valor, na.rm = TRUE)
2.3. Identificació de Valors Atípics
Els valors atípics poden distorsionar els resultats dels models. Podem identificar-los utilitzant tècniques com la visualització de dades o estadístiques descriptives.
# Exemple de boxplot per identificar valors atípics boxplot(dades$valor, main = "Boxplot de Valors")
2.4. Tractament de Valors Atípics
Podem tractar els valors atípics eliminant-los o transformant-los.
# Eliminació de valors atípics dades_sense_outliers <- dades[dades$valor < quantile(dades$valor, 0.95), ]
- Transformació de Dades
3.1. Escalament de Dades
L'escalament de dades és important per assegurar que totes les característiques tinguin la mateixa escala. Això és especialment important per a algoritmes que depenen de la distància, com el K-Nearest Neighbors.
3.2. Normalització de Dades
La normalització de dades transforma les dades perquè tinguin una distribució específica, com la distribució normal.
# Normalització de dades dades$valor_normalitzat <- (dades$valor - min(dades$valor)) / (max(dades$valor) - min(dades$valor))
- Codificació de Variables Categòriques
Les variables categòriques han de ser codificades en format numèric per ser utilitzades en models d'aprenentatge automàtic.
4.1. Codificació One-Hot
La codificació one-hot crea una columna binària per a cada categoria.
# Exemple de codificació one-hot dades <- data.frame( id = 1:5, categoria = c("A", "B", "A", "C", "B") ) dades_one_hot <- model.matrix(~ categoria - 1, dades)
Exercicis Pràctics
Exercici 1: Neteja de Dades Mancants
- Crea un data frame amb valors mancants.
- Identifica els valors mancants.
- Imputa els valors mancants amb la mediana.
# Solució dades <- data.frame( id = 1:5, valor = c(10, NA, 30, NA, 50) ) # Identificar valors mancants is.na(dades) # Imputació amb la mediana dades$valor[is.na(dades$valor)] <- median(dades$valor, na.rm = TRUE)
Exercici 2: Escalament i Normalització
- Crea un data frame amb valors numèrics.
- Escala els valors.
- Normalitza els valors.
# Solució dades <- data.frame( id = 1:5, valor = c(10, 20, 30, 40, 50) ) # Escalament de dades dades$valor_escalat <- scale(dades$valor) # Normalització de dades dades$valor_normalitzat <- (dades$valor - min(dades$valor)) / (max(dades$valor) - min(dades$valor))
Resum
En aquest tema, hem après la importància del preprocessament de dades i hem explorat diverses tècniques per netejar, transformar i codificar dades. Aquestes tècniques són fonamentals per assegurar que els models d'aprenentatge automàtic funcionin de manera òptima. En el proper tema, ens endinsarem en l'aprenentatge supervisat, on aplicarem aquestes tècniques per construir models predictius.
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