Capítulo 1: Introducción al Aprendizaje Automático
Ejercicios Prácticos Capítulo 1
Ejercicio 1: Comprendiendo los Tipos de Machine Learning
Tarea: Con base en la explicación de aprendizaje supervisado, no supervisado y de refuerzo, clasifica los siguientes ejemplos del mundo real en el tipo de aprendizaje automático correcto:
- Un sistema que predice los precios de las casas en función de características como el tamaño, la ubicación y el número de habitaciones.
- Un programa que agrupa a los clientes en clústeres según su comportamiento de compra.
- Un robot que aprende a caminar recibiendo retroalimentación de su entorno.
Solución:
- Aprendizaje Supervisado: Predicción de precios de casas en función de características.
- Aprendizaje No Supervisado: Agrupación de clientes en base a su comportamiento de compra.
- Aprendizaje por Refuerzo: Un robot que aprende a caminar mediante retroalimentación.
Ejercicio 2: Implementando Aprendizaje Supervisado
Tarea: Utiliza Scikit-learn para implementar un modelo básico de aprendizaje supervisado. Carga el conjunto de datos de Iris, divídelo en conjuntos de entrenamiento y prueba, y entrena un modelo de Regresión Logística para clasificar las especies de iris. Después de entrenar, evalúa la precisión del modelo en el conjunto de prueba.
Solución:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Initialize and train a Logistic Regression model
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# Make predictions and evaluate accuracy
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Model Accuracy: {accuracy:.2f}")
Ejercicio 3: Explorando Aprendizaje No Supervisado
Tarea: Implementa un algoritmo de agrupamiento K-means usando Scikit-learn en el siguiente conjunto de datos:
data = [[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]
Usa 2 clústeres y, después de ajustar el modelo, imprime los centros de los clústeres y las etiquetas asignadas a cada punto de datos.
Solución:
from sklearn.cluster import KMeans
# Define the dataset
data = [[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]
# Fit the K-means model with 2 clusters
kmeans = KMeans(n_clusters=2, random_state=0).fit(data)
# Print cluster centers and labels
print(f"Cluster Centers: {kmeans.cluster_centers_}")
print(f"Data Labels: {kmeans.labels_}")
Ejercicio 4: Análisis de Sentimientos Usando NLP
Tarea: Utiliza TextBlob para realizar un análisis de sentimientos en el siguiente texto:
"El nuevo modelo de teléfono es increíble, me encanta la cámara y la duración de la batería."
Escribe un script en Python para calcular e imprimir la polaridad del sentimiento.
Solución:
from textblob import TextBlob
# Define the text
text = "The new phone model is amazing, I absolutely love the camera and the battery life!"
# Perform sentiment analysis
blob = TextBlob(text)
sentiment = blob.sentiment
# Print the sentiment polarity
print(f"Sentiment Polarity: {sentiment.polarity}")
Ejercicio 5: Visualización de Datos
Tarea: Usa Matplotlib para graficar un histograma con los siguientes datos:
data = [22, 25, 23, 20, 19, 22, 26, 30, 31, 22, 24, 25, 22, 27]
Crea un histograma con 5 divisiones y etiqueta los ejes de manera adecuada.
Solución:
import matplotlib.pyplot as plt
# Define the data
data = [22, 25, 23, 20, 19, 22, 26, 30, 31, 22, 24, 25, 22, 27]
# Create a histogram
plt.hist(data, bins=5, edgecolor='black')
# Add labels and title
plt.title('Histogram of Data')
plt.xlabel('Values')
plt.ylabel('Frequency')
# Show the plot
plt.show()
Ejercicio 6: Construcción de una Red Neuronal Simple con Keras
Tarea: Utiliza Keras para construir una red neuronal feedforward simple. Entrena la red en el conjunto de datos Iris para clasificar las especies. La red debe contener dos capas ocultas con 10 neuronas cada una y usar funciones de activación ReLU. Evalúa la precisión en el conjunto de prueba.
Solución:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Build the neural network
model = Sequential([
Dense(10, input_dim=4, activation='relu'),
Dense(10, activation='relu'),
Dense(3, activation='softmax')
])
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# Train the model
model.fit(X_train, y_train, epochs=50, batch_size=10)
# Evaluate the model
loss, accuracy = model.evaluate(X_test, y_test)
print(f"Test Accuracy: {accuracy:.2f}")
Ejercicio 7: Explorando AI Explicable (XAI)
Tarea: Usa SHAP (SHapley Additive exPlanations) para explicar las predicciones de un modelo XGBoost en el conjunto de datos Boston Housing. Imprime y grafica los valores SHAP para la primera predicción.
Solución:
import shap
import xgboost
from sklearn.datasets import load_diabetes
# Load the Diabetes dataset
data = load_diabetes()
X, y = data.data, data.target
# Train an XGBoost model
model = xgboost.XGBRegressor()
model.fit(X, y)
# Initialize SHAP explainer
explainer = shap.Explainer(model, X)
shap_values = explainer(X)
# Plot the SHAP values for the first prediction
shap.plots.waterfall(shap_values[0])
Estos ejercicios prácticos ayudan a reforzar los conceptos clave presentados en el Capítulo 1. Al trabajar en estas tareas, obtendrás experiencia práctica en la comprensión de los tipos de machine learning, construcción de modelos simples, manipulación de datos y visualización, e incluso en temas de vanguardia como la inteligencia artificial explicable. Asegúrate de tomarte tu tiempo con cada ejercicio y no dudes en ajustar el código para explorar más a fondo.
Ejercicios Prácticos Capítulo 1
Ejercicio 1: Comprendiendo los Tipos de Machine Learning
Tarea: Con base en la explicación de aprendizaje supervisado, no supervisado y de refuerzo, clasifica los siguientes ejemplos del mundo real en el tipo de aprendizaje automático correcto:
- Un sistema que predice los precios de las casas en función de características como el tamaño, la ubicación y el número de habitaciones.
- Un programa que agrupa a los clientes en clústeres según su comportamiento de compra.
- Un robot que aprende a caminar recibiendo retroalimentación de su entorno.
Solución:
- Aprendizaje Supervisado: Predicción de precios de casas en función de características.
- Aprendizaje No Supervisado: Agrupación de clientes en base a su comportamiento de compra.
- Aprendizaje por Refuerzo: Un robot que aprende a caminar mediante retroalimentación.
Ejercicio 2: Implementando Aprendizaje Supervisado
Tarea: Utiliza Scikit-learn para implementar un modelo básico de aprendizaje supervisado. Carga el conjunto de datos de Iris, divídelo en conjuntos de entrenamiento y prueba, y entrena un modelo de Regresión Logística para clasificar las especies de iris. Después de entrenar, evalúa la precisión del modelo en el conjunto de prueba.
Solución:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Initialize and train a Logistic Regression model
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# Make predictions and evaluate accuracy
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Model Accuracy: {accuracy:.2f}")
Ejercicio 3: Explorando Aprendizaje No Supervisado
Tarea: Implementa un algoritmo de agrupamiento K-means usando Scikit-learn en el siguiente conjunto de datos:
data = [[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]
Usa 2 clústeres y, después de ajustar el modelo, imprime los centros de los clústeres y las etiquetas asignadas a cada punto de datos.
Solución:
from sklearn.cluster import KMeans
# Define the dataset
data = [[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]
# Fit the K-means model with 2 clusters
kmeans = KMeans(n_clusters=2, random_state=0).fit(data)
# Print cluster centers and labels
print(f"Cluster Centers: {kmeans.cluster_centers_}")
print(f"Data Labels: {kmeans.labels_}")
Ejercicio 4: Análisis de Sentimientos Usando NLP
Tarea: Utiliza TextBlob para realizar un análisis de sentimientos en el siguiente texto:
"El nuevo modelo de teléfono es increíble, me encanta la cámara y la duración de la batería."
Escribe un script en Python para calcular e imprimir la polaridad del sentimiento.
Solución:
from textblob import TextBlob
# Define the text
text = "The new phone model is amazing, I absolutely love the camera and the battery life!"
# Perform sentiment analysis
blob = TextBlob(text)
sentiment = blob.sentiment
# Print the sentiment polarity
print(f"Sentiment Polarity: {sentiment.polarity}")
Ejercicio 5: Visualización de Datos
Tarea: Usa Matplotlib para graficar un histograma con los siguientes datos:
data = [22, 25, 23, 20, 19, 22, 26, 30, 31, 22, 24, 25, 22, 27]
Crea un histograma con 5 divisiones y etiqueta los ejes de manera adecuada.
Solución:
import matplotlib.pyplot as plt
# Define the data
data = [22, 25, 23, 20, 19, 22, 26, 30, 31, 22, 24, 25, 22, 27]
# Create a histogram
plt.hist(data, bins=5, edgecolor='black')
# Add labels and title
plt.title('Histogram of Data')
plt.xlabel('Values')
plt.ylabel('Frequency')
# Show the plot
plt.show()
Ejercicio 6: Construcción de una Red Neuronal Simple con Keras
Tarea: Utiliza Keras para construir una red neuronal feedforward simple. Entrena la red en el conjunto de datos Iris para clasificar las especies. La red debe contener dos capas ocultas con 10 neuronas cada una y usar funciones de activación ReLU. Evalúa la precisión en el conjunto de prueba.
Solución:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Build the neural network
model = Sequential([
Dense(10, input_dim=4, activation='relu'),
Dense(10, activation='relu'),
Dense(3, activation='softmax')
])
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# Train the model
model.fit(X_train, y_train, epochs=50, batch_size=10)
# Evaluate the model
loss, accuracy = model.evaluate(X_test, y_test)
print(f"Test Accuracy: {accuracy:.2f}")
Ejercicio 7: Explorando AI Explicable (XAI)
Tarea: Usa SHAP (SHapley Additive exPlanations) para explicar las predicciones de un modelo XGBoost en el conjunto de datos Boston Housing. Imprime y grafica los valores SHAP para la primera predicción.
Solución:
import shap
import xgboost
from sklearn.datasets import load_diabetes
# Load the Diabetes dataset
data = load_diabetes()
X, y = data.data, data.target
# Train an XGBoost model
model = xgboost.XGBRegressor()
model.fit(X, y)
# Initialize SHAP explainer
explainer = shap.Explainer(model, X)
shap_values = explainer(X)
# Plot the SHAP values for the first prediction
shap.plots.waterfall(shap_values[0])
Estos ejercicios prácticos ayudan a reforzar los conceptos clave presentados en el Capítulo 1. Al trabajar en estas tareas, obtendrás experiencia práctica en la comprensión de los tipos de machine learning, construcción de modelos simples, manipulación de datos y visualización, e incluso en temas de vanguardia como la inteligencia artificial explicable. Asegúrate de tomarte tu tiempo con cada ejercicio y no dudes en ajustar el código para explorar más a fondo.
Ejercicios Prácticos Capítulo 1
Ejercicio 1: Comprendiendo los Tipos de Machine Learning
Tarea: Con base en la explicación de aprendizaje supervisado, no supervisado y de refuerzo, clasifica los siguientes ejemplos del mundo real en el tipo de aprendizaje automático correcto:
- Un sistema que predice los precios de las casas en función de características como el tamaño, la ubicación y el número de habitaciones.
- Un programa que agrupa a los clientes en clústeres según su comportamiento de compra.
- Un robot que aprende a caminar recibiendo retroalimentación de su entorno.
Solución:
- Aprendizaje Supervisado: Predicción de precios de casas en función de características.
- Aprendizaje No Supervisado: Agrupación de clientes en base a su comportamiento de compra.
- Aprendizaje por Refuerzo: Un robot que aprende a caminar mediante retroalimentación.
Ejercicio 2: Implementando Aprendizaje Supervisado
Tarea: Utiliza Scikit-learn para implementar un modelo básico de aprendizaje supervisado. Carga el conjunto de datos de Iris, divídelo en conjuntos de entrenamiento y prueba, y entrena un modelo de Regresión Logística para clasificar las especies de iris. Después de entrenar, evalúa la precisión del modelo en el conjunto de prueba.
Solución:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Initialize and train a Logistic Regression model
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# Make predictions and evaluate accuracy
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Model Accuracy: {accuracy:.2f}")
Ejercicio 3: Explorando Aprendizaje No Supervisado
Tarea: Implementa un algoritmo de agrupamiento K-means usando Scikit-learn en el siguiente conjunto de datos:
data = [[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]
Usa 2 clústeres y, después de ajustar el modelo, imprime los centros de los clústeres y las etiquetas asignadas a cada punto de datos.
Solución:
from sklearn.cluster import KMeans
# Define the dataset
data = [[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]
# Fit the K-means model with 2 clusters
kmeans = KMeans(n_clusters=2, random_state=0).fit(data)
# Print cluster centers and labels
print(f"Cluster Centers: {kmeans.cluster_centers_}")
print(f"Data Labels: {kmeans.labels_}")
Ejercicio 4: Análisis de Sentimientos Usando NLP
Tarea: Utiliza TextBlob para realizar un análisis de sentimientos en el siguiente texto:
"El nuevo modelo de teléfono es increíble, me encanta la cámara y la duración de la batería."
Escribe un script en Python para calcular e imprimir la polaridad del sentimiento.
Solución:
from textblob import TextBlob
# Define the text
text = "The new phone model is amazing, I absolutely love the camera and the battery life!"
# Perform sentiment analysis
blob = TextBlob(text)
sentiment = blob.sentiment
# Print the sentiment polarity
print(f"Sentiment Polarity: {sentiment.polarity}")
Ejercicio 5: Visualización de Datos
Tarea: Usa Matplotlib para graficar un histograma con los siguientes datos:
data = [22, 25, 23, 20, 19, 22, 26, 30, 31, 22, 24, 25, 22, 27]
Crea un histograma con 5 divisiones y etiqueta los ejes de manera adecuada.
Solución:
import matplotlib.pyplot as plt
# Define the data
data = [22, 25, 23, 20, 19, 22, 26, 30, 31, 22, 24, 25, 22, 27]
# Create a histogram
plt.hist(data, bins=5, edgecolor='black')
# Add labels and title
plt.title('Histogram of Data')
plt.xlabel('Values')
plt.ylabel('Frequency')
# Show the plot
plt.show()
Ejercicio 6: Construcción de una Red Neuronal Simple con Keras
Tarea: Utiliza Keras para construir una red neuronal feedforward simple. Entrena la red en el conjunto de datos Iris para clasificar las especies. La red debe contener dos capas ocultas con 10 neuronas cada una y usar funciones de activación ReLU. Evalúa la precisión en el conjunto de prueba.
Solución:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Build the neural network
model = Sequential([
Dense(10, input_dim=4, activation='relu'),
Dense(10, activation='relu'),
Dense(3, activation='softmax')
])
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# Train the model
model.fit(X_train, y_train, epochs=50, batch_size=10)
# Evaluate the model
loss, accuracy = model.evaluate(X_test, y_test)
print(f"Test Accuracy: {accuracy:.2f}")
Ejercicio 7: Explorando AI Explicable (XAI)
Tarea: Usa SHAP (SHapley Additive exPlanations) para explicar las predicciones de un modelo XGBoost en el conjunto de datos Boston Housing. Imprime y grafica los valores SHAP para la primera predicción.
Solución:
import shap
import xgboost
from sklearn.datasets import load_diabetes
# Load the Diabetes dataset
data = load_diabetes()
X, y = data.data, data.target
# Train an XGBoost model
model = xgboost.XGBRegressor()
model.fit(X, y)
# Initialize SHAP explainer
explainer = shap.Explainer(model, X)
shap_values = explainer(X)
# Plot the SHAP values for the first prediction
shap.plots.waterfall(shap_values[0])
Estos ejercicios prácticos ayudan a reforzar los conceptos clave presentados en el Capítulo 1. Al trabajar en estas tareas, obtendrás experiencia práctica en la comprensión de los tipos de machine learning, construcción de modelos simples, manipulación de datos y visualización, e incluso en temas de vanguardia como la inteligencia artificial explicable. Asegúrate de tomarte tu tiempo con cada ejercicio y no dudes en ajustar el código para explorar más a fondo.
Ejercicios Prácticos Capítulo 1
Ejercicio 1: Comprendiendo los Tipos de Machine Learning
Tarea: Con base en la explicación de aprendizaje supervisado, no supervisado y de refuerzo, clasifica los siguientes ejemplos del mundo real en el tipo de aprendizaje automático correcto:
- Un sistema que predice los precios de las casas en función de características como el tamaño, la ubicación y el número de habitaciones.
- Un programa que agrupa a los clientes en clústeres según su comportamiento de compra.
- Un robot que aprende a caminar recibiendo retroalimentación de su entorno.
Solución:
- Aprendizaje Supervisado: Predicción de precios de casas en función de características.
- Aprendizaje No Supervisado: Agrupación de clientes en base a su comportamiento de compra.
- Aprendizaje por Refuerzo: Un robot que aprende a caminar mediante retroalimentación.
Ejercicio 2: Implementando Aprendizaje Supervisado
Tarea: Utiliza Scikit-learn para implementar un modelo básico de aprendizaje supervisado. Carga el conjunto de datos de Iris, divídelo en conjuntos de entrenamiento y prueba, y entrena un modelo de Regresión Logística para clasificar las especies de iris. Después de entrenar, evalúa la precisión del modelo en el conjunto de prueba.
Solución:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Initialize and train a Logistic Regression model
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# Make predictions and evaluate accuracy
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Model Accuracy: {accuracy:.2f}")
Ejercicio 3: Explorando Aprendizaje No Supervisado
Tarea: Implementa un algoritmo de agrupamiento K-means usando Scikit-learn en el siguiente conjunto de datos:
data = [[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]
Usa 2 clústeres y, después de ajustar el modelo, imprime los centros de los clústeres y las etiquetas asignadas a cada punto de datos.
Solución:
from sklearn.cluster import KMeans
# Define the dataset
data = [[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]
# Fit the K-means model with 2 clusters
kmeans = KMeans(n_clusters=2, random_state=0).fit(data)
# Print cluster centers and labels
print(f"Cluster Centers: {kmeans.cluster_centers_}")
print(f"Data Labels: {kmeans.labels_}")
Ejercicio 4: Análisis de Sentimientos Usando NLP
Tarea: Utiliza TextBlob para realizar un análisis de sentimientos en el siguiente texto:
"El nuevo modelo de teléfono es increíble, me encanta la cámara y la duración de la batería."
Escribe un script en Python para calcular e imprimir la polaridad del sentimiento.
Solución:
from textblob import TextBlob
# Define the text
text = "The new phone model is amazing, I absolutely love the camera and the battery life!"
# Perform sentiment analysis
blob = TextBlob(text)
sentiment = blob.sentiment
# Print the sentiment polarity
print(f"Sentiment Polarity: {sentiment.polarity}")
Ejercicio 5: Visualización de Datos
Tarea: Usa Matplotlib para graficar un histograma con los siguientes datos:
data = [22, 25, 23, 20, 19, 22, 26, 30, 31, 22, 24, 25, 22, 27]
Crea un histograma con 5 divisiones y etiqueta los ejes de manera adecuada.
Solución:
import matplotlib.pyplot as plt
# Define the data
data = [22, 25, 23, 20, 19, 22, 26, 30, 31, 22, 24, 25, 22, 27]
# Create a histogram
plt.hist(data, bins=5, edgecolor='black')
# Add labels and title
plt.title('Histogram of Data')
plt.xlabel('Values')
plt.ylabel('Frequency')
# Show the plot
plt.show()
Ejercicio 6: Construcción de una Red Neuronal Simple con Keras
Tarea: Utiliza Keras para construir una red neuronal feedforward simple. Entrena la red en el conjunto de datos Iris para clasificar las especies. La red debe contener dos capas ocultas con 10 neuronas cada una y usar funciones de activación ReLU. Evalúa la precisión en el conjunto de prueba.
Solución:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Build the neural network
model = Sequential([
Dense(10, input_dim=4, activation='relu'),
Dense(10, activation='relu'),
Dense(3, activation='softmax')
])
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# Train the model
model.fit(X_train, y_train, epochs=50, batch_size=10)
# Evaluate the model
loss, accuracy = model.evaluate(X_test, y_test)
print(f"Test Accuracy: {accuracy:.2f}")
Ejercicio 7: Explorando AI Explicable (XAI)
Tarea: Usa SHAP (SHapley Additive exPlanations) para explicar las predicciones de un modelo XGBoost en el conjunto de datos Boston Housing. Imprime y grafica los valores SHAP para la primera predicción.
Solución:
import shap
import xgboost
from sklearn.datasets import load_diabetes
# Load the Diabetes dataset
data = load_diabetes()
X, y = data.data, data.target
# Train an XGBoost model
model = xgboost.XGBRegressor()
model.fit(X, y)
# Initialize SHAP explainer
explainer = shap.Explainer(model, X)
shap_values = explainer(X)
# Plot the SHAP values for the first prediction
shap.plots.waterfall(shap_values[0])
Estos ejercicios prácticos ayudan a reforzar los conceptos clave presentados en el Capítulo 1. Al trabajar en estas tareas, obtendrás experiencia práctica en la comprensión de los tipos de machine learning, construcción de modelos simples, manipulación de datos y visualización, e incluso en temas de vanguardia como la inteligencia artificial explicable. Asegúrate de tomarte tu tiempo con cada ejercicio y no dudes en ajustar el código para explorar más a fondo.