Menu iconMenu icon
Fundamentos de Ingeniería de Datos

Capítulo 15: Aprendizaje No Supervisado

15.4 Ejercicios Prácticos Capítulo 15

Ejercicio 1: Agrupamiento por K-means

Tarea: Agrupa el siguiente conjunto de puntos 2D en 2 grupos usando K-means.

import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# Sample Data
X = np.array([[1, 2],
              [5, 8],
              [1.5, 1.8],
              [8, 8],
              [1, 0.6],
              [9, 11]])

# Implement K-means
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)
labels = kmeans.labels_

# Visualizing the clusters
for i in range(len(X)):
    plt.scatter(X[i][0], X[i][1], c=['r','g'][labels[i]])
plt.scatter(kmeans.cluster_centers_[:,0], kmeans.cluster_centers_[:,1], marker='x')
plt.show()

Preguntas:

  1. ¿Cuáles son las coordenadas de los centros de los grupos?
  2. ¿Cómo afecta el número de grupos al resultado?

Ejercicio 2: Análisis de Componentes Principales (PCA)

Tarea: Aplica PCA para reducir las dimensiones del conjunto de datos Iris y luego plótalo.

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import seaborn as sns

# Load the dataset
iris = load_iris()
X = iris.data
y = iris.target

# Apply PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# Visualizing the result
sns.scatterplot(x=X_pca[:, 0], y=X_pca[:, 1], hue=y)
plt.show()

Preguntas:

  1. ¿Cómo afecta PCA a la interpretabilidad de los datos?
  2. ¿Cuáles son los primeros y segundos componentes principales?

Ejercicio 3: Detección de Anomalías con Isolation Forest

Tarea: Detecta anomalías en un conjunto de datos simple usando Isolation Forest.

from sklearn.ensemble import IsolationForest

# Sample data (10 normal points and 2 anomalies)
X = np.array([[1, 1],
              [2, 2],
              [3, 3],
              [4, 4],
              [5, 5],
              [6, 6],
              [7, 7],
              [8, 8],
              [100, 100],
              [200, 200]])

# Apply Isolation Forest
clf = IsolationForest(contamination=0.2)
clf.fit(X)
predictions = clf.predict(X)

# Print predictions (-1 indicates anomaly)
print("Predictions:", predictions)

Preguntas:

  1. ¿Qué puntos fueron clasificados como anomalías?
  2. ¿Cómo afecta el parámetro 'contamination' al resultado?

Siéntete libre de ajustar el código como desees, probar diferentes configuraciones de parámetros y explorar cómo afectan tus resultados. Recuerda, cuanto más practiques, más cómodo te sentirás con estas técnicas poderosas. ¡Feliz codificación!

15.4 Ejercicios Prácticos Capítulo 15

Ejercicio 1: Agrupamiento por K-means

Tarea: Agrupa el siguiente conjunto de puntos 2D en 2 grupos usando K-means.

import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# Sample Data
X = np.array([[1, 2],
              [5, 8],
              [1.5, 1.8],
              [8, 8],
              [1, 0.6],
              [9, 11]])

# Implement K-means
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)
labels = kmeans.labels_

# Visualizing the clusters
for i in range(len(X)):
    plt.scatter(X[i][0], X[i][1], c=['r','g'][labels[i]])
plt.scatter(kmeans.cluster_centers_[:,0], kmeans.cluster_centers_[:,1], marker='x')
plt.show()

Preguntas:

  1. ¿Cuáles son las coordenadas de los centros de los grupos?
  2. ¿Cómo afecta el número de grupos al resultado?

Ejercicio 2: Análisis de Componentes Principales (PCA)

Tarea: Aplica PCA para reducir las dimensiones del conjunto de datos Iris y luego plótalo.

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import seaborn as sns

# Load the dataset
iris = load_iris()
X = iris.data
y = iris.target

# Apply PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# Visualizing the result
sns.scatterplot(x=X_pca[:, 0], y=X_pca[:, 1], hue=y)
plt.show()

Preguntas:

  1. ¿Cómo afecta PCA a la interpretabilidad de los datos?
  2. ¿Cuáles son los primeros y segundos componentes principales?

Ejercicio 3: Detección de Anomalías con Isolation Forest

Tarea: Detecta anomalías en un conjunto de datos simple usando Isolation Forest.

from sklearn.ensemble import IsolationForest

# Sample data (10 normal points and 2 anomalies)
X = np.array([[1, 1],
              [2, 2],
              [3, 3],
              [4, 4],
              [5, 5],
              [6, 6],
              [7, 7],
              [8, 8],
              [100, 100],
              [200, 200]])

# Apply Isolation Forest
clf = IsolationForest(contamination=0.2)
clf.fit(X)
predictions = clf.predict(X)

# Print predictions (-1 indicates anomaly)
print("Predictions:", predictions)

Preguntas:

  1. ¿Qué puntos fueron clasificados como anomalías?
  2. ¿Cómo afecta el parámetro 'contamination' al resultado?

Siéntete libre de ajustar el código como desees, probar diferentes configuraciones de parámetros y explorar cómo afectan tus resultados. Recuerda, cuanto más practiques, más cómodo te sentirás con estas técnicas poderosas. ¡Feliz codificación!

15.4 Ejercicios Prácticos Capítulo 15

Ejercicio 1: Agrupamiento por K-means

Tarea: Agrupa el siguiente conjunto de puntos 2D en 2 grupos usando K-means.

import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# Sample Data
X = np.array([[1, 2],
              [5, 8],
              [1.5, 1.8],
              [8, 8],
              [1, 0.6],
              [9, 11]])

# Implement K-means
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)
labels = kmeans.labels_

# Visualizing the clusters
for i in range(len(X)):
    plt.scatter(X[i][0], X[i][1], c=['r','g'][labels[i]])
plt.scatter(kmeans.cluster_centers_[:,0], kmeans.cluster_centers_[:,1], marker='x')
plt.show()

Preguntas:

  1. ¿Cuáles son las coordenadas de los centros de los grupos?
  2. ¿Cómo afecta el número de grupos al resultado?

Ejercicio 2: Análisis de Componentes Principales (PCA)

Tarea: Aplica PCA para reducir las dimensiones del conjunto de datos Iris y luego plótalo.

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import seaborn as sns

# Load the dataset
iris = load_iris()
X = iris.data
y = iris.target

# Apply PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# Visualizing the result
sns.scatterplot(x=X_pca[:, 0], y=X_pca[:, 1], hue=y)
plt.show()

Preguntas:

  1. ¿Cómo afecta PCA a la interpretabilidad de los datos?
  2. ¿Cuáles son los primeros y segundos componentes principales?

Ejercicio 3: Detección de Anomalías con Isolation Forest

Tarea: Detecta anomalías en un conjunto de datos simple usando Isolation Forest.

from sklearn.ensemble import IsolationForest

# Sample data (10 normal points and 2 anomalies)
X = np.array([[1, 1],
              [2, 2],
              [3, 3],
              [4, 4],
              [5, 5],
              [6, 6],
              [7, 7],
              [8, 8],
              [100, 100],
              [200, 200]])

# Apply Isolation Forest
clf = IsolationForest(contamination=0.2)
clf.fit(X)
predictions = clf.predict(X)

# Print predictions (-1 indicates anomaly)
print("Predictions:", predictions)

Preguntas:

  1. ¿Qué puntos fueron clasificados como anomalías?
  2. ¿Cómo afecta el parámetro 'contamination' al resultado?

Siéntete libre de ajustar el código como desees, probar diferentes configuraciones de parámetros y explorar cómo afectan tus resultados. Recuerda, cuanto más practiques, más cómodo te sentirás con estas técnicas poderosas. ¡Feliz codificación!

15.4 Ejercicios Prácticos Capítulo 15

Ejercicio 1: Agrupamiento por K-means

Tarea: Agrupa el siguiente conjunto de puntos 2D en 2 grupos usando K-means.

import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# Sample Data
X = np.array([[1, 2],
              [5, 8],
              [1.5, 1.8],
              [8, 8],
              [1, 0.6],
              [9, 11]])

# Implement K-means
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)
labels = kmeans.labels_

# Visualizing the clusters
for i in range(len(X)):
    plt.scatter(X[i][0], X[i][1], c=['r','g'][labels[i]])
plt.scatter(kmeans.cluster_centers_[:,0], kmeans.cluster_centers_[:,1], marker='x')
plt.show()

Preguntas:

  1. ¿Cuáles son las coordenadas de los centros de los grupos?
  2. ¿Cómo afecta el número de grupos al resultado?

Ejercicio 2: Análisis de Componentes Principales (PCA)

Tarea: Aplica PCA para reducir las dimensiones del conjunto de datos Iris y luego plótalo.

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import seaborn as sns

# Load the dataset
iris = load_iris()
X = iris.data
y = iris.target

# Apply PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# Visualizing the result
sns.scatterplot(x=X_pca[:, 0], y=X_pca[:, 1], hue=y)
plt.show()

Preguntas:

  1. ¿Cómo afecta PCA a la interpretabilidad de los datos?
  2. ¿Cuáles son los primeros y segundos componentes principales?

Ejercicio 3: Detección de Anomalías con Isolation Forest

Tarea: Detecta anomalías en un conjunto de datos simple usando Isolation Forest.

from sklearn.ensemble import IsolationForest

# Sample data (10 normal points and 2 anomalies)
X = np.array([[1, 1],
              [2, 2],
              [3, 3],
              [4, 4],
              [5, 5],
              [6, 6],
              [7, 7],
              [8, 8],
              [100, 100],
              [200, 200]])

# Apply Isolation Forest
clf = IsolationForest(contamination=0.2)
clf.fit(X)
predictions = clf.predict(X)

# Print predictions (-1 indicates anomaly)
print("Predictions:", predictions)

Preguntas:

  1. ¿Qué puntos fueron clasificados como anomalías?
  2. ¿Cómo afecta el parámetro 'contamination' al resultado?

Siéntete libre de ajustar el código como desees, probar diferentes configuraciones de parámetros y explorar cómo afectan tus resultados. Recuerda, cuanto más practiques, más cómodo te sentirás con estas técnicas poderosas. ¡Feliz codificación!