En aquest tema, explorarem els conceptes bàsics del Machine Learning (ML) i com utilitzar la biblioteca scikit-learn per implementar models de ML en Python. Scikit-learn és una de les biblioteques més populars per a l'aprenentatge automàtic en Python, oferint eines simples i eficients per a l'anàlisi de dades i la mineria de dades.

Objectius del Tema

  • Entendre els conceptes bàsics del Machine Learning.
  • Familiaritzar-se amb la biblioteca scikit-learn.
  • Aprendre a preparar les dades per a l'entrenament de models.
  • Implementar models de ML bàsics amb scikit-learn.
  • Avaluar el rendiment dels models.

Conceptes Bàsics del Machine Learning

Què és el Machine Learning?

El Machine Learning és una branca de la intel·ligència artificial que se centra en el desenvolupament d'algoritmes que permeten als ordinadors aprendre a partir de dades i fer prediccions o decisions sense ser explícitament programats per a cada tasca.

Tipus de Machine Learning

  1. Aprenentatge Supervisat: Els models s'entrenen amb dades etiquetades. Exemples inclouen la regressió i la classificació.
  2. Aprenentatge No Supervisat: Els models s'entrenen amb dades no etiquetades. Exemples inclouen el clustering i l'anàlisi de components principals (PCA).
  3. Aprenentatge per Reforç: Els models aprenen a prendre decisions a través de recompenses i càstigs.

Introducció a scikit-learn

Instal·lació

Per instal·lar scikit-learn, pots utilitzar pip:

pip install scikit-learn

Importació de la Biblioteca

import sklearn

Preparació de les Dades

Carregar un Dataset

Scikit-learn proporciona diversos datasets per a practicar. Un dels més utilitzats és el dataset Iris.

from sklearn.datasets import load_iris
data = load_iris()

Divisió del Dataset

Abans d'entrenar un model, és important dividir les dades en conjunts d'entrenament i prova.

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)

Normalització de les Dades

La normalització és crucial per a molts algoritmes de ML.

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

Implementació de Models de Machine Learning

Regressió Lineal

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X_train, y_train)

Classificació amb K-Nearest Neighbors (KNN)

from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

Avaluació del Rendiment del Model

Mètriques de Regressió

from sklearn.metrics import mean_squared_error, r2_score

y_pred = model.predict(X_test)
print("Mean Squared Error:", mean_squared_error(y_test, y_pred))
print("R2 Score:", r2_score(y_test, y_pred))

Mètriques de Classificació

from sklearn.metrics import accuracy_score, classification_report

y_pred = knn.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))
print("Classification Report:\n", classification_report(y_test, y_pred))

Exercicis Pràctics

Exercici 1: Regressió Lineal amb el Dataset Boston

  1. Carrega el dataset Boston de scikit-learn.
  2. Divideix les dades en conjunts d'entrenament i prova.
  3. Normalitza les dades.
  4. Entrena un model de regressió lineal.
  5. Avalua el rendiment del model.

Solució

from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error, r2_score

# Carregar el dataset
boston = load_boston()
X = boston.data
y = boston.target

# Dividir les dades
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Normalitzar les dades
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# Entrenar el model
model = LinearRegression()
model.fit(X_train, y_train)

# Predir i avaluar
y_pred = model.predict(X_test)
print("Mean Squared Error:", mean_squared_error(y_test, y_pred))
print("R2 Score:", r2_score(y_test, y_pred))

Exercici 2: Classificació amb el Dataset Digits

  1. Carrega el dataset Digits de scikit-learn.
  2. Divideix les dades en conjunts d'entrenament i prova.
  3. Entrena un model KNN.
  4. Avalua el rendiment del model.

Solució

from sklearn.datasets import load_digits
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report

# Carregar el dataset
digits = load_digits()
X = digits.data
y = digits.target

# Dividir les dades
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Entrenar el model
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Predir i avaluar
y_pred = knn.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))
print("Classification Report:\n", classification_report(y_test, y_pred))

Resum

En aquest tema, hem après els conceptes bàsics del Machine Learning i com utilitzar la biblioteca scikit-learn per implementar models de ML. Hem cobert la preparació de dades, la implementació de models de regressió i classificació, i l'avaluació del rendiment dels models. Els exercicis pràctics proporcionats ajudaran a reforçar aquests conceptes i habilitats.

Curs de Programació en Python

Mòdul 1: Introducció a Python

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats