Simulación y Prosumidor (Lección 7)

Conceptos clave sobre la simulación y el rol del prosumidor en el análisis de datos y modelos de IA.

Evaluación y Ajuste de Modelos

Métricas de Evaluación:

Precisión, Recall y F1-score

Son métricas de evaluación para modelos de clasificación.

from sklearn.metrics import precision_score, recall_score, f1_score

# Valores reales (ground truth) y predicciones del modelo
y_true = [0, 1, 1, 1, 0, 1, 0]
y_pred = [0, 1, 1, 0, 0, 1, 1]

# Calcular la precisión, recall y F1-score
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)

# Imprimir los resultados
print("Precisión:", precision)
print("Recall:", recall)
print("F1-score:", f1)
        

Mean Squared Error (MSE)

El MSE mide el error cuadrático medio en problemas de regresión.

from sklearn.metrics import mean_squared_error

# Valores reales y predicciones del modelo
y_true = [3.0, -0.5, 2.0, 7.0]
y_pred = [2.5, 0.0, 2.1, 7.8]

# Calcular el MSE
mse = mean_squared_error(y_true, y_pred)

# Imprimir el resultado
print("MSE:", mse)
        

R-squared (R²)

El coeficiente de determinación indica qué tan bien el modelo explica la variabilidad de los datos.

from sklearn.metrics import r2_score

# Valores reales y predicciones del modelo
y_true = [3.0, -0.5, 2.0, 7.0]
y_pred = [2.5, 0.0, 2.1, 7.8]

# Calcular el coeficiente R²
r2 = r2_score(y_true, y_pred)

# Imprimir el resultado
print("R-squared:", r2)
        

Ajuste de Hiperparámetros

Búsqueda de Hiperparámetros Óptimos:


from sklearn.model_selection import GridSearchCV
param_grid = {'n_neighbors': range(1, 11)}
grid = GridSearchCV(KNeighborsClassifier(), param_grid, cv=5)
grid.fit(X, y)
print(f'Best parameters: {grid.best_params_}')
print(f'Best cross-validation score: {grid.best_score_}')
        

Documentación y Presentación de Resultados

Redacción de un informe detallado sobre la implementación, evaluación y ajuste de los modelos.


import seaborn as sns
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.show()
        

Desarrollo de un Pequeño Proyecto de IA

Selección y Definición del Proyecto:

Ejemplo: Clasificación de correos electrónicos como spam o no spam.


import pandas as pd
data = pd.read_csv('emails.csv')
print(data.head())
        

Implementación del Modelo de Clasificación

Preprocesamiento de Datos:


import re
from nltk.corpus import stopwords

def preprocess_text(text):
    text = re.sub(r'\W', ' ', text)
    text = text.lower()
    text = re.sub(r'\s+', ' ', text)
    return text

data['text'] = data['text'].apply(preprocess_text)
        

Entrenamiento del Modelo


from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(data['text'])
y = data['spam']
        

Evaluación del Modelo


y_pred = model.predict(X_test)
from sklearn.metrics import classification_report, accuracy_score
print(classification_report(y_test, y_pred))
print(f'Accuracy: {accuracy_score(y_test, y_pred)}')
        

Visualización y Documentación


import matplotlib.pyplot as plt
from sklearn.metrics import plot_confusion_matrix
plot_confusion_matrix(model, X_test, y_test)
plt.show()
        

Presentación de Resultados

Presentación del problema, metodología y resultados.