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