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.

  1. 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.

  1. 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), ]

  1. 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.

# Escalament de dades
dades$valor_escalat <- scale(dades$valor)

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))

  1. 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

  1. Crea un data frame amb valors mancants.
  2. Identifica els valors mancants.
  3. 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ó

  1. Crea un data frame amb valors numèrics.
  2. Escala els valors.
  3. 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

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