El preprocessament de dades és una etapa crucial en l'anàlisi de dades, ja que garanteix que les dades estiguin netes, consistents i llestes per a l'anàlisi posterior. En aquest tema, aprendrem com preparar les dades per a l'anàlisi en MATLAB.

Objectius del Tema

  • Entendre la importància del preprocessament de dades.
  • Aprendre a netejar i transformar dades en MATLAB.
  • Gestionar valors perduts i dades anòmales.
  • Normalitzar i escalar dades.

  1. Importància del Preprocessament de Dades

El preprocessament de dades és essencial per:

  • Millorar la qualitat de les dades.
  • Reduir el soroll i les anomalies.
  • Assegurar la consistència de les dades.
  • Facilitar l'anàlisi i la modelització.

  1. Neteja de Dades

2.1. Eliminació de Valors Perduts

Els valors perduts poden afectar l'anàlisi de dades. MATLAB ofereix diverses funcions per gestionar aquests valors.

Exemple:

% Creació d'una matriu amb valors perduts
data = [1, 2, NaN; 4, NaN, 6; 7, 8, 9];

% Eliminació de files amb valors perduts
cleanedData = rmmissing(data);
disp(cleanedData);

Explicació:

  • rmmissing(data) elimina les files que contenen valors perduts (NaN).

2.2. Imputació de Valors Perduts

En lloc d'eliminar valors perduts, podem imputar-los amb valors com la mitjana, la mediana o altres estratègies.

Exemple:

% Imputació de valors perduts amb la mitjana de la columna
data = [1, 2, NaN; 4, NaN, 6; 7, 8, 9];
meanData = fillmissing(data, 'linear');
disp(meanData);

Explicació:

  • fillmissing(data, 'linear') omple els valors perduts utilitzant interpolació lineal.

  1. Transformació de Dades

3.1. Normalització

La normalització escala les dades perquè tinguin una distribució uniforme, sovint entre 0 i 1.

Exemple:

% Normalització de les dades
data = [1, 2, 3; 4, 5, 6; 7, 8, 9];
normalizedData = normalize(data, 'range');
disp(normalizedData);

Explicació:

  • normalize(data, 'range') escala les dades perquè estiguin entre 0 i 1.

3.2. Estandardització

L'estandardització transforma les dades perquè tinguin una mitjana de 0 i una desviació estàndard de 1.

Exemple:

% Estandardització de les dades
data = [1, 2, 3; 4, 5, 6; 7, 8, 9];
standardizedData = zscore(data);
disp(standardizedData);

Explicació:

  • zscore(data) estandarditza les dades.

  1. Detecció i Gestió de Dades Anòmales

Les dades anòmales poden distorsionar els resultats de l'anàlisi. És important detectar-les i gestionar-les adequadament.

Exemple:

% Detecció de dades anòmales utilitzant el mètode de l'interval interquartílic (IQR)
data = [1, 2, 3, 4, 5, 6, 7, 8, 100];
Q1 = prctile(data, 25);
Q3 = prctile(data, 75);
IQR = Q3 - Q1;
lowerBound = Q1 - 1.5 * IQR;
upperBound = Q3 + 1.5 * IQR;

% Identificació de valors anòmals
outliers = data(data < lowerBound | data > upperBound);
disp(outliers);

Explicació:

  • prctile(data, 25) i prctile(data, 75) calculen el primer i tercer quartil.
  • IQR és l'interval interquartílic.
  • lowerBound i upperBound defineixen els límits per detectar valors anòmals.

Exercicis Pràctics

Exercici 1: Neteja de Dades

Descripció: Donada la següent matriu de dades, elimina les files amb valors perduts.

data = [1, NaN, 3; 4, 5, NaN; 7, 8, 9];

Solució:

cleanedData = rmmissing(data);
disp(cleanedData);

Exercici 2: Imputació de Valors Perduts

Descripció: Imputa els valors perduts de la següent matriu amb la mitjana de la columna.

data = [1, 2, NaN; 4, NaN, 6; 7, 8, 9];

Solució:

meanData = fillmissing(data, 'linear');
disp(meanData);

Exercici 3: Normalització de Dades

Descripció: Normalitza la següent matriu de dades perquè estigui entre 0 i 1.

data = [1, 2, 3; 4, 5, 6; 7, 8, 9];

Solució:

normalizedData = normalize(data, 'range');
disp(normalizedData);

Exercici 4: Detecció de Dades Anòmales

Descripció: Detecta les dades anòmales en el següent vector utilitzant el mètode de l'interval interquartílic (IQR).

data = [1, 2, 3, 4, 5, 6, 7, 8, 100];

Solució:

Q1 = prctile(data, 25);
Q3 = prctile(data, 75);
IQR = Q3 - Q1;
lowerBound = Q1 - 1.5 * IQR;
upperBound = Q3 + 1.5 * IQR;
outliers = data(data < lowerBound | data > upperBound);
disp(outliers);

Conclusió

En aquesta secció, hem après la importància del preprocessament de dades i com netejar, transformar i gestionar dades en MATLAB. Aquestes tècniques són fonamentals per assegurar que les dades estiguin llestes per a l'anàlisi i la modelització. En el següent tema, explorarem l'anàlisi de regressió en MATLAB.

© Copyright 2024. Tots els drets reservats