El Machine Learning (ML) es pot classificar en diferents tipus segons la manera en què els algorismes aprenen a partir de les dades. Els tres tipus principals són:

  1. Aprenentatge Supervisat
  2. Aprenentatge No Supervisat
  3. Aprenentatge per Reforç

A continuació, explorarem cadascun d'aquests tipus en detall.

  1. Aprenentatge Supervisat

Definició

L'aprenentatge supervisat és un tipus de ML on el model és entrenat amb un conjunt de dades etiquetades. Això significa que cada exemple d'entrenament està associat amb una etiqueta o resultat desitjat.

Característiques

  • Dades etiquetades: Les dades d'entrenament inclouen tant les característiques (inputs) com les etiquetes (outputs).
  • Predicció: L'objectiu és predir l'etiqueta per a noves dades no etiquetades.
  • Funció de pèrdua: Utilitza una funció de pèrdua per mesurar l'error entre les prediccions del model i les etiquetes reals.

Exemples d'algorismes

  • Regressió Lineal: Utilitzat per predir valors continus.
  • Regressió Logística: Utilitzat per problemes de classificació binària.
  • Arbres de Decisió: Utilitzats tant per a regressió com per a classificació.
  • Màquines de Suport Vectorial (SVM): Utilitzades per a classificació i regressió.
  • Xarxes Neuronals: Utilitzades per a tasques complexes de predicció i classificació.

Exemple Pràctic

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# Dades d'exemple
X = [[1], [2], [3], [4], [5]]
y = [1.5, 3.5, 5.5, 7.5, 9.5]

# Divisió de les dades en entrenament i prova
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Creació del model de regressió lineal
model = LinearRegression()
model.fit(X_train, y_train)

# Predicció
y_pred = model.predict(X_test)

# Avaluació del model
mse = mean_squared_error(y_test, y_pred)
print(f'Error quadràtic mitjà: {mse}')

  1. Aprenentatge No Supervisat

Definició

L'aprenentatge no supervisat és un tipus de ML on el model és entrenat amb dades que no estan etiquetades. L'objectiu és descobrir estructures ocultes o patrons en les dades.

Característiques

  • Dades no etiquetades: Les dades d'entrenament només inclouen les característiques (inputs) sense etiquetes.
  • Agrupació i reducció de dimensionalitat: Les tasques comunes inclouen l'agrupació (clustering) i la reducció de dimensionalitat.

Exemples d'algorismes

  • K-means: Algorisme d'agrupació que divideix les dades en K grups.
  • Clustering Jeràrquic: Agrupació basada en la creació d'una jerarquia de grups.
  • Anàlisi de Components Principals (PCA): Utilitzat per reduir la dimensionalitat de les dades.
  • DBSCAN: Algorisme d'agrupació basat en densitat.

Exemple Pràctic

from sklearn.cluster import KMeans
import numpy as np

# Dades d'exemple
X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]])

# Creació del model K-means
kmeans = KMeans(n_clusters=2, random_state=0)
kmeans.fit(X)

# Predicció dels grups
labels = kmeans.labels_
print(f'Grups: {labels}')

  1. Aprenentatge per Reforç

Definició

L'aprenentatge per reforç és un tipus de ML on un agent aprèn a prendre decisions mitjançant interaccions amb un entorn. L'agent rep recompenses o penalitzacions basades en les seves accions i ajusta la seva estratègia per maximitzar la recompensa acumulada.

Característiques

  • Agent i entorn: L'agent interactua amb l'entorn i pren accions.
  • Recompensa: L'agent rep una recompensa o penalització basada en l'acció presa.
  • Estratègia: L'agent desenvolupa una estratègia per maximitzar la recompensa a llarg termini.

Exemples d'algorismes

  • Q-learning: Algorisme d'aprenentatge per reforç basat en taules.
  • Deep Q-Networks (DQN): Utilitza xarxes neuronals per aproximar la funció Q.
  • Policy Gradient: Algorismes que optimitzen directament la política d'acció.

Exemple Pràctic

import numpy as np

# Paràmetres de l'entorn
states = [0, 1, 2, 3]
actions = [0, 1]  # 0: esquerra, 1: dreta
rewards = [0, 0, 0, 1]  # Recompensa per arribar a l'estat 3

# Inicialització de la taula Q
Q = np.zeros((len(states), len(actions)))

# Paràmetres d'aprenentatge
alpha = 0.1  # Taxa d'aprenentatge
gamma = 0.9  # Factor de descompte
epsilon = 0.1  # Probabilitat d'exploració

# Funció d'aprenentatge Q-learning
def q_learning(state, action, reward, next_state):
    best_next_action = np.argmax(Q[next_state])
    td_target = reward + gamma * Q[next_state, best_next_action]
    td_error = td_target - Q[state, action]
    Q[state, action] += alpha * td_error

# Simulació d'un episodi
state = 0
for _ in range(100):
    if np.random.rand() < epsilon:
        action = np.random.choice(actions)  # Exploració
    else:
        action = np.argmax(Q[state])  # Explotació

    next_state = state + (1 if action == 1 else -1)
    next_state = max(0, min(next_state, len(states) - 1))
    reward = rewards[next_state]

    q_learning(state, action, reward, next_state)
    state = next_state

print(f'Taula Q: \n{Q}')

Conclusió

En resum, els tres tipus principals de Machine Learning són l'aprenentatge supervisat, l'aprenentatge no supervisat i l'aprenentatge per reforç. Cada tipus té les seves pròpies característiques, aplicacions i algorismes. Comprendre aquests tipus és fonamental per seleccionar l'enfocament adequat per a un problema específic de ML.

Curs de Machine Learning

Mòdul 1: Introducció al Machine Learning

Mòdul 2: Fonaments d'Estadística i Probabilitat

Mòdul 3: Preprocessament de Dades

Mòdul 4: Algoritmes de Machine Learning Supervisat

Mòdul 5: Algoritmes de Machine Learning No Supervisat

Mòdul 6: Avaluació i Validació de Models

Mòdul 7: Tècniques Avançades i Optimització

Mòdul 8: Implementació i Desplegament de Models

Mòdul 9: Projectes Pràctics

Mòdul 10: Recursos Addicionals

© Copyright 2024. Tots els drets reservats