Introducció

L'aprenentatge automàtic (Machine Learning) és una branca de la intel·ligència artificial que permet als sistemes aprendre i millorar a partir de l'experiència sense ser explícitament programats. MATLAB ofereix una àmplia gamma d'eines i funcions per implementar i experimentar amb tècniques d'aprenentatge automàtic.

Continguts

  1. Conceptes Bàsics d'Aprenentatge Automàtic
  2. Preparació de les Dades
  3. Algorismes d'Aprenentatge Supervisat
  4. Algorismes d'Aprenentatge No Supervisat
  5. Avaluació de Models
  6. Exemple Pràctic: Classificació de Dades
  7. Exercicis Pràctics

  1. Conceptes Bàsics d'Aprenentatge Automàtic

Definicions Clau

  • Aprenentatge Supervisat: Modela una funció que mapeja una entrada a una sortida basada en exemples d'entrada-sortida parells.
  • Aprenentatge No Supervisat: Troba estructures ocultes en dades sense etiquetes.
  • Característiques: Atributs o propietats de les dades utilitzades per entrenar el model.
  • Etiquetes: Resultats o classes associades a les dades d'entrenament en l'aprenentatge supervisat.

Tipus de Problemes

  • Classificació: Assignar una etiqueta a una entrada.
  • Regressió: Predir un valor continu.
  • Clustering: Agrupar dades en grups basats en similituds.

  1. Preparació de les Dades

Importació de Dades

data = readtable('data.csv');

Preprocessament de Dades

  • Normalització: Ajustar les dades perquè tinguin una escala comuna.
  • Tractament de Valors Perduts: Omplir o eliminar valors nuls.
data = fillmissing(data, 'constant', 0);
data = normalize(data);

  1. Algorismes d'Aprenentatge Supervisat

Regressió Lineal

X = data(:, 1:end-1);
y = data(:, end);
model = fitlm(X, y);

Classificació amb K-Nearest Neighbors (KNN)

Mdl = fitcknn(X, y, 'NumNeighbors', 5);

  1. Algorismes d'Aprenentatge No Supervisat

Clustering amb K-means

[idx, C] = kmeans(X, 3);

Anàlisi de Components Principals (PCA)

[coeff, score, latent] = pca(X);

  1. Avaluació de Models

Mètriques de Rendiment

  • Precisió: Proporció de prediccions correctes.
  • Matriu de Confusió: Taula que descriu el rendiment d'un model de classificació.
predictions = predict(Mdl, X);
confMat = confusionmat(y, predictions);
accuracy = sum(diag(confMat)) / sum(confMat(:));

  1. Exemple Pràctic: Classificació de Dades

Descripció del Problema

Classificarem un conjunt de dades en dues categories utilitzant un model de classificació.

Pas 1: Importació de Dades

data = readtable('classification_data.csv');
X = data(:, 1:end-1);
y = data(:, end);

Pas 2: Divisió de les Dades

cv = cvpartition(size(data, 1), 'HoldOut', 0.3);
XTrain = X(training(cv), :);
yTrain = y(training(cv), :);
XTest = X(test(cv), :);
yTest = y(test(cv), :);

Pas 3: Entrenament del Model

Mdl = fitcknn(XTrain, yTrain, 'NumNeighbors', 5);

Pas 4: Avaluació del Model

predictions = predict(Mdl, XTest);
confMat = confusionmat(yTest, predictions);
accuracy = sum(diag(confMat)) / sum(confMat(:));
disp(['Accuracy: ', num2str(accuracy)]);

  1. Exercicis Pràctics

Exercici 1: Regressió Lineal

  1. Importa un conjunt de dades de regressió.
  2. Preprocessa les dades.
  3. Entrena un model de regressió lineal.
  4. Avalua el model utilitzant un conjunt de dades de prova.

Exercici 2: Clustering amb K-means

  1. Importa un conjunt de dades sense etiquetes.
  2. Aplica el clustering K-means.
  3. Visualitza els resultats utilitzant un gràfic 2D.

Solucions

Solució Exercici 1

% Importació de dades
data = readtable('regression_data.csv');
X = data(:, 1:end-1);
y = data(:, end);

% Divisió de les dades
cv = cvpartition(size(data, 1), 'HoldOut', 0.3);
XTrain = X(training(cv), :);
yTrain = y(training(cv), :);
XTest = X(test(cv), :);
yTest = y(test(cv), :);

% Entrenament del model
model = fitlm(XTrain, yTrain);

% Avaluació del model
predictions = predict(model, XTest);
mse = mean((yTest - predictions).^2);
disp(['Mean Squared Error: ', num2str(mse)]);

Solució Exercici 2

% Importació de dades
data = readtable('clustering_data.csv');
X = data(:, :);

% Aplicació de K-means
[idx, C] = kmeans(X, 3);

% Visualització dels resultats
figure;
gscatter(X(:,1), X(:,2), idx);
hold on;
plot(C(:,1), C(:,2), 'kx', 'MarkerSize', 15, 'LineWidth', 3);
title('K-means Clustering');
hold off;

Conclusió

En aquesta secció, hem explorat els conceptes bàsics de l'aprenentatge automàtic amb MATLAB, incloent la preparació de dades, l'ús d'algorismes d'aprenentatge supervisat i no supervisat, i l'avaluació de models. Els exemples pràctics i exercicis proporcionats han de servir com a base per a desenvolupar habilitats més avançades en l'aprenentatge automàtic amb MATLAB.

© Copyright 2024. Tots els drets reservats