El aprendizaje automático (Machine Learning) es una rama de la inteligencia artificial que se centra en el desarrollo de algoritmos que permiten a las computadoras aprender y hacer predicciones basadas en datos. MATLAB proporciona un entorno robusto y herramientas específicas para implementar y experimentar con algoritmos de aprendizaje automático.

Contenido

  1. Introducción al Aprendizaje Automático
  2. Preparación de Datos
  3. Algoritmos de Aprendizaje Supervisado
  4. Algoritmos de Aprendizaje No Supervisado
  5. Evaluación de Modelos
  6. Implementación Práctica en MATLAB
  7. Ejercicios Prácticos

  1. Introducción al Aprendizaje Automático

Conceptos Clave

  • Aprendizaje Supervisado: Algoritmos que aprenden de datos etiquetados.
  • Aprendizaje No Supervisado: Algoritmos que encuentran patrones en datos no etiquetados.
  • Conjunto de Entrenamiento y Prueba: Datos utilizados para entrenar y evaluar el modelo.
  • Características (Features): Variables independientes utilizadas para hacer predicciones.
  • Etiquetas (Labels): Variables dependientes que el modelo intenta predecir.

Ejemplo de Flujo de Trabajo

  1. Recolección de Datos: Obtener datos relevantes para el problema.
  2. Preprocesamiento de Datos: Limpiar y preparar los datos.
  3. Selección de Modelo: Elegir el algoritmo adecuado.
  4. Entrenamiento del Modelo: Ajustar el modelo a los datos de entrenamiento.
  5. Evaluación del Modelo: Medir el rendimiento del modelo.
  6. Predicción: Usar el modelo para hacer predicciones en nuevos datos.

  1. Preparación de Datos

Importación de Datos

data = readtable('data.csv');

Limpieza de Datos

  • Eliminar valores faltantes:

    data = rmmissing(data);
    
  • Normalización de Datos:

    data = normalize(data);
    

División de Datos

cv = cvpartition(size(data, 1), 'HoldOut', 0.3);
trainData = data(training(cv), :);
testData = data(test(cv), :);

  1. Algoritmos de Aprendizaje Supervisado

Regresión Lineal

mdl = fitlm(trainData, 'ResponseVar', 'target');
predictions = predict(mdl, testData);

Árboles de Decisión

tree = fitctree(trainData, 'target');
predictions = predict(tree, testData);

  1. Algoritmos de Aprendizaje No Supervisado

K-Means Clustering

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

Análisis de Componentes Principales (PCA)

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

  1. Evaluación de Modelos

Métricas de Evaluación

  • Error Cuadrático Medio (MSE):

    mse = mean((predictions - testData.target).^2);
    
  • Precisión, Recall, F1-Score:

    confusionMat = confusionmat(testData.target, predictions);
    precision = confusionMat(1,1) / sum(confusionMat(:,1));
    recall = confusionMat(1,1) / sum(confusionMat(1,:));
    f1Score = 2 * (precision * recall) / (precision + recall);
    

  1. Implementación Práctica en MATLAB

Ejemplo Completo: Clasificación con SVM

% Cargar datos
data = readtable('data.csv');

% Preprocesamiento
data = rmmissing(data);
data = normalize(data);

% División de datos
cv = cvpartition(size(data, 1), 'HoldOut', 0.3);
trainData = data(training(cv), :);
testData = data(test(cv), :);

% Entrenamiento del modelo
svmModel = fitcsvm(trainData, 'target');

% Predicción
predictions = predict(svmModel, testData);

% Evaluación
confusionMat = confusionmat(testData.target, predictions);
accuracy = sum(diag(confusionMat)) / sum(confusionMat(:));
disp(['Accuracy: ', num2str(accuracy)]);

  1. Ejercicios Prácticos

Ejercicio 1: Regresión Lineal

Objetivo: Implementar un modelo de regresión lineal para predecir el precio de casas basado en características como el tamaño, número de habitaciones, etc.

Datos: house_prices.csv

Pasos:

  1. Importar y limpiar los datos.
  2. Dividir los datos en conjuntos de entrenamiento y prueba.
  3. Entrenar un modelo de regresión lineal.
  4. Evaluar el modelo usando MSE.

Solución:

% Importar datos
data = readtable('house_prices.csv');

% Preprocesamiento
data = rmmissing(data);
data = normalize(data);

% División de datos
cv = cvpartition(size(data, 1), 'HoldOut', 0.3);
trainData = data(training(cv), :);
testData = data(test(cv), :);

% Entrenamiento del modelo
mdl = fitlm(trainData, 'ResponseVar', 'price');

% Predicción
predictions = predict(mdl, testData);

% Evaluación
mse = mean((predictions - testData.price).^2);
disp(['MSE: ', num2str(mse)]);

Ejercicio 2: Clasificación con KNN

Objetivo: Implementar un modelo de clasificación KNN para predecir la especie de flores basado en características como el largo y ancho de los pétalos y sépalos.

Datos: iris.csv

Pasos:

  1. Importar y limpiar los datos.
  2. Dividir los datos en conjuntos de entrenamiento y prueba.
  3. Entrenar un modelo KNN.
  4. Evaluar el modelo usando precisión.

Solución:

% Importar datos
data = readtable('iris.csv');

% Preprocesamiento
data = rmmissing(data);
data = normalize(data);

% División de datos
cv = cvpartition(size(data, 1), 'HoldOut', 0.3);
trainData = data(training(cv), :);
testData = data(test(cv), :);

% Entrenamiento del modelo
knnModel = fitcknn(trainData, 'species');

% Predicción
predictions = predict(knnModel, testData);

% Evaluación
confusionMat = confusionmat(testData.species, predictions);
accuracy = sum(diag(confusionMat)) / sum(confusionMat(:));
disp(['Accuracy: ', num2str(accuracy)]);

Conclusión

En esta sección, hemos explorado los conceptos básicos del aprendizaje automático y cómo implementarlos en MATLAB. Hemos cubierto tanto algoritmos supervisados como no supervisados, y hemos aprendido a evaluar el rendimiento de los modelos. Los ejercicios prácticos proporcionan una oportunidad para aplicar estos conceptos y reforzar el aprendizaje.

En el siguiente módulo, nos enfocaremos en el Proyecto Final, donde aplicaremos todo lo aprendido en un proyecto integral.

© Copyright 2024. Todos los derechos reservados