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

  1. Aplicar algoritmes de Machine Learning: Implementar i entrenar models de ML utilitzant dades reals.
  2. Avaluar i validar models: Utilitzar tècniques d'avaluació per mesurar el rendiment dels models.
  3. Preprocessament de dades: Preparar les dades per a l'entrenament de models.
  4. Interpretar resultats: Analitzar i interpretar els resultats obtinguts dels models.

Contingut

  1. Exercici 1: Preprocessament de Dades
  2. Exercici 2: Entrenament d'un Model de Regressió Lineal
  3. Exercici 3: Classificació amb K-Nearest Neighbors (KNN)
  4. Exercici 4: Avaluació de Models
  5. 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

  1. Importació de Llibreries:

    import pandas as pd
    import numpy as np
    from sklearn.preprocessing import StandardScaler, LabelEncoder
    
  2. Càrrega del Conjunt de Dades:

    data = pd.read_csv('wine_data.csv')
    
  3. Exploració de Dades:

    print(data.head())
    print(data.info())
    print(data.describe())
    
  4. Tractament de Valors Nuls:

    data = data.dropna()
    
  5. Codificació de Variables Categòriques:

    label_encoder = LabelEncoder()
    data['target'] = label_encoder.fit_transform(data['target'])
    
  6. 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

  1. Importació de Llibreries:

    from sklearn.model_selection import train_test_split
    from sklearn.linear_model import LinearRegression
    from sklearn.metrics import mean_squared_error
    
  2. Càrrega del Conjunt de Dades:

    data = pd.read_csv('housing_data.csv')
    
  3. 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)
    
  4. Entrenament del Model:

    model = LinearRegression()
    model.fit(X_train, y_train)
    
  5. 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

  1. Importació de Llibreries:

    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.metrics import accuracy_score
    
  2. Càrrega del Conjunt de Dades:

    data = pd.read_csv('iris_data.csv')
    
  3. 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)
    
  4. Entrenament del Model:

    knn = KNeighborsClassifier(n_neighbors=3)
    knn.fit(X_train, y_train)
    
  5. 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

  1. Importació de Llibreries:

    from sklearn.metrics import precision_score, recall_score, f1_score
    
  2. Entrenament del Model: (Utilitza el model entrenat en l'exercici anterior)

  3. 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

  1. Importació de Llibreries:

    from sklearn.cluster import KMeans
    import matplotlib.pyplot as plt
    
  2. Càrrega del Conjunt de Dades:

    data = pd.read_csv('customer_data.csv')
    
  3. Entrenament del Model:

    kmeans = KMeans(n_clusters=3, random_state=42)
    kmeans.fit(data)
    
  4. 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.

© Copyright 2024. Tots els drets reservats