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.
- 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ó.
- 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.
- 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.
- 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)
iprctile(data, 75)
calculen el primer i tercer quartil.IQR
és l'interval interquartílic.lowerBound
iupperBound
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.
Solució:
Exercici 2: Imputació de Valors Perduts
Descripció: Imputa els valors perduts de la següent matriu amb la mitjana de la columna.
Solució:
Exercici 3: Normalització de Dades
Descripció: Normalitza la següent matriu de dades perquè estigui entre 0 i 1.
Solució:
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).
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.
Curs de Programació en MATLAB
Mòdul 1: Introducció a MATLAB
- Començant amb MATLAB
- Interfície i Entorn de MATLAB
- Comandes i Sintaxi Bàsiques
- Variables i Tipus de Dades
- Operacions i Funcions Bàsiques
Mòdul 2: Vectors i Matrius
- Creació de Vectors i Matrius
- Operacions amb Matrius
- Indexació i Segmentació
- Funcions de Matrius
- Àlgebra Lineal en MATLAB
Mòdul 3: Estructures de Programació
- Flux de Control: if, else, switch
- Bucles: for, while
- Funcions: Definició i Abast
- Scripts vs. Funcions
- Depuració i Gestió d'Errors
Mòdul 4: Visualització de Dades
- Conceptes Bàsics de Gràfics
- Gràfics 2D
- Gràfics 3D
- Personalització de Gràfics
- Tècniques Avançades de Gràfics
Mòdul 5: Anàlisi de Dades i Estadística
- Importació i Exportació de Dades
- Estadístiques Descriptives
- Preprocessament de Dades
- Anàlisi de Regressió
- Proves Estadístiques
Mòdul 6: Temes Avançats
- Entrada/Sortida de Fitxers
- Gestió de Grans Conjunts de Dades
- Tècniques d'Optimització
- Conceptes Bàsics de Simulink
- Computació Paral·lela