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:
- ¿Cuáles son las coordenadas de los centros de los grupos?
- ¿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:
- ¿Cómo afecta PCA a la interpretabilidad de los datos?
- ¿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:
- ¿Qué puntos fueron clasificados como anomalías?
- ¿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:
- ¿Cuáles son las coordenadas de los centros de los grupos?
- ¿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:
- ¿Cómo afecta PCA a la interpretabilidad de los datos?
- ¿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:
- ¿Qué puntos fueron clasificados como anomalías?
- ¿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:
- ¿Cuáles son las coordenadas de los centros de los grupos?
- ¿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:
- ¿Cómo afecta PCA a la interpretabilidad de los datos?
- ¿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:
- ¿Qué puntos fueron clasificados como anomalías?
- ¿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:
- ¿Cuáles son las coordenadas de los centros de los grupos?
- ¿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:
- ¿Cómo afecta PCA a la interpretabilidad de los datos?
- ¿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:
- ¿Qué puntos fueron clasificados como anomalías?
- ¿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!