En aquesta secció, ens centrarem en la implementació pràctica dels conceptes de Machine Learning (ML) que hem après fins ara. A través d'exercicis pràctics, reforçarem els coneixements adquirits i desenvoluparem habilitats per aplicar tècniques de ML en problemes reals.
Objectius
- Aplicar algoritmes de Machine Learning: Implementar i entrenar models de ML utilitzant dades reals.
- Avaluar i validar models: Utilitzar tècniques d'avaluació per mesurar el rendiment dels models.
- Preprocessament de dades: Preparar les dades per a l'entrenament de models.
- Interpretar resultats: Analitzar i interpretar els resultats obtinguts dels models.
Contingut
- Exercici 1: Preprocessament de Dades
- Exercici 2: Entrenament d'un Model de Regressió Lineal
- Exercici 3: Classificació amb K-Nearest Neighbors (KNN)
- Exercici 4: Avaluació de Models
- Exercici 5: Implementació d'un Model de Clustering
Exercici 1: Preprocessament de Dades
Descripció
El preprocessament de dades és una etapa crucial en qualsevol projecte de ML. En aquest exercici, treballarem amb un conjunt de dades de mostres de vins i realitzarem diverses tasques de preprocessament.
Passos
-
Importació de Llibreries:
import pandas as pd import numpy as np from sklearn.preprocessing import StandardScaler, LabelEncoder -
Càrrega del Conjunt de Dades:
data = pd.read_csv('wine_data.csv') -
Exploració de Dades:
print(data.head()) print(data.info()) print(data.describe()) -
Tractament de Valors Nuls:
data = data.dropna() -
Codificació de Variables Categòriques:
label_encoder = LabelEncoder() data['target'] = label_encoder.fit_transform(data['target']) -
Normalització de les Dades:
scaler = StandardScaler() data_scaled = scaler.fit_transform(data.drop('target', axis=1))
Exercici
Preprocessa el conjunt de dades wine_data.csv seguint els passos anteriors. Assegura't que no hi hagi valors nuls i que les dades estiguin normalitzades.
Solució
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler, LabelEncoder
# Càrrega del Conjunt de Dades
data = pd.read_csv('wine_data.csv')
# Exploració de Dades
print(data.head())
print(data.info())
print(data.describe())
# Tractament de Valors Nuls
data = data.dropna()
# Codificació de Variables Categòriques
label_encoder = LabelEncoder()
data['target'] = label_encoder.fit_transform(data['target'])
# Normalització de les Dades
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data.drop('target', axis=1))
print(data_scaled)Exercici 2: Entrenament d'un Model de Regressió Lineal
Descripció
En aquest exercici, entrenarem un model de regressió lineal per predir el preu d'habitatges utilitzant un conjunt de dades de característiques d'habitatges.
Passos
-
Importació de Llibreries:
from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error -
Càrrega del Conjunt de Dades:
data = pd.read_csv('housing_data.csv') -
Divisió del Conjunt de Dades:
X = data.drop('price', axis=1) y = data['price'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) -
Entrenament del Model:
model = LinearRegression() model.fit(X_train, y_train) -
Predicció i Avaluació:
y_pred = model.predict(X_test) mse = mean_squared_error(y_test, y_pred) print(f'Error Quadràtic Mitjà: {mse}')
Exercici
Entrena un model de regressió lineal utilitzant el conjunt de dades housing_data.csv i avalua el seu rendiment.
Solució
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# Càrrega del Conjunt de Dades
data = pd.read_csv('housing_data.csv')
# Divisió del Conjunt de Dades
X = data.drop('price', axis=1)
y = data['price']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Entrenament del Model
model = LinearRegression()
model.fit(X_train, y_train)
# Predicció i Avaluació
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f'Error Quadràtic Mitjà: {mse}')Exercici 3: Classificació amb K-Nearest Neighbors (KNN)
Descripció
En aquest exercici, utilitzarem l'algoritme K-Nearest Neighbors (KNN) per classificar mostres de flors en diferents espècies.
Passos
-
Importació de Llibreries:
from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score -
Càrrega del Conjunt de Dades:
data = pd.read_csv('iris_data.csv') -
Divisió del Conjunt de Dades:
X = data.drop('species', axis=1) y = data['species'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) -
Entrenament del Model:
knn = KNeighborsClassifier(n_neighbors=3) knn.fit(X_train, y_train) -
Predicció i Avaluació:
y_pred = knn.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(f'Precisió: {accuracy}')
Exercici
Entrena un model KNN utilitzant el conjunt de dades iris_data.csv i avalua el seu rendiment.
Solució
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# Càrrega del Conjunt de Dades
data = pd.read_csv('iris_data.csv')
# Divisió del Conjunt de Dades
X = data.drop('species', axis=1)
y = data['species']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Entrenament del Model
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# Predicció i Avaluació
y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f'Precisió: {accuracy}')Exercici 4: Avaluació de Models
Descripció
En aquest exercici, avaluarem el rendiment de diferents models de ML utilitzant mètriques com l'accuracy, la precisió, el recall i el F1-score.
Passos
-
Importació de Llibreries:
from sklearn.metrics import precision_score, recall_score, f1_score -
Entrenament del Model: (Utilitza el model entrenat en l'exercici anterior)
-
Predicció i Avaluació:
precision = precision_score(y_test, y_pred, average='macro') recall = recall_score(y_test, y_pred, average='macro') f1 = f1_score(y_test, y_pred, average='macro') print(f'Precisió: {precision}') print(f'Recall: {recall}') print(f'F1-score: {f1}')
Exercici
Avalua el rendiment del model KNN entrenat en l'exercici anterior utilitzant les mètriques de precisió, recall i F1-score.
Solució
from sklearn.metrics import precision_score, recall_score, f1_score
# Predicció i Avaluació
precision = precision_score(y_test, y_pred, average='macro')
recall = recall_score(y_test, y_pred, average='macro')
f1 = f1_score(y_test, y_pred, average='macro')
print(f'Precisió: {precision}')
print(f'Recall: {recall}')
print(f'F1-score: {f1}')Exercici 5: Implementació d'un Model de Clustering
Descripció
En aquest exercici, implementarem un model de clustering utilitzant l'algoritme K-Means per agrupar mostres de dades en diferents clústers.
Passos
-
Importació de Llibreries:
from sklearn.cluster import KMeans import matplotlib.pyplot as plt -
Càrrega del Conjunt de Dades:
data = pd.read_csv('customer_data.csv') -
Entrenament del Model:
kmeans = KMeans(n_clusters=3, random_state=42) kmeans.fit(data) -
Visualització dels Clústers:
plt.scatter(data.iloc[:, 0], data.iloc[:, 1], c=kmeans.labels_, cmap='viridis') plt.show()
Exercici
Implementa un model de clustering utilitzant l'algoritme K-Means amb el conjunt de dades customer_data.csv i visualitza els clústers resultants.
Solució
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# Càrrega del Conjunt de Dades
data = pd.read_csv('customer_data.csv')
# Entrenament del Model
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(data)
# Visualització dels Clústers
plt.scatter(data.iloc[:, 0], data.iloc[:, 1], c=kmeans.labels_, cmap='viridis')
plt.show()Conclusió
En aquesta secció, hem realitzat diversos exercicis pràctics per aplicar els conceptes de Machine Learning. Hem treballat amb diferents tipus de models, des de regressió lineal fins a clustering, i hem après a preprocessar dades, entrenar models i avaluar-ne el rendiment. Aquests exercicis ens proporcionen una base sòlida per aplicar tècniques de ML en problemes reals.
Fonaments d'Intel·ligència Artificial (IA)
Mòdul 1: Introducció a la Intel·ligència Artificial
Mòdul 2: Principis Bàsics de la IA
Mòdul 3: Algoritmes en IA
Mòdul 4: Aprenentatge Automàtic (Machine Learning)
- Conceptes Bàsics de Machine Learning
- Tipus d'Aprenentatge Automàtic
- Algoritmes de Machine Learning
- Avaluació i Validació de Models
Mòdul 5: Xarxes Neuronals i Deep Learning
- Introducció a les Xarxes Neuronals
- Arquitectura de Xarxes Neuronals
- Deep Learning i les seves Aplicacions
