Skip to content
Snippets Groups Projects
Commit e93d4c25 authored by rubegar's avatar rubegar
Browse files

Upload New File

parent b3755fed
No related branches found
No related tags found
No related merge requests found
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
# Función para cargar los datos desde un archivo CSV
def cargar_datos_csv(nombre_archivo):
df = pd.read_csv(nombre_archivo)
columnas_deseadas = ['cpu', 'cpus', 'diskread', 'diskwrite', 'maxmem', 'mem', 'netin', 'netout']
df_seleccionado = df[columnas_deseadas]
return df_seleccionado
# Función para realizar el análisis de conglomerados con el criterio del codo
def analisis_conglomerados_criterio_codo(datos):
# Estandarizar los datos
scaler = StandardScaler()
datos_escalados = scaler.fit_transform(datos)
# Aplicar K-Means y calcular SSE para diferentes números de clústeres
sse = {}
for k in range(1, 23):
kmeans = KMeans(n_clusters=k, random_state=42)
kmeans.fit(datos_escalados)
sse[k] = kmeans.inertia_ # Suma de las distancias cuadradas de las muestras al centroide más cercano
# Graficar el criterio del codo
plt.figure(figsize=(10, 6))
plt.plot(list(sse.keys()), list(sse.values()), 'bx-')
plt.xlabel('Número de clústeres (k)')
plt.ylabel('SSE')
plt.title('El método del codo para determinar k óptimo')
plt.savefig('codo.png')
return sse
# Punto de entrada del programa
if __name__ == '__main__':
# Pedir al usuario que introduzca la ruta al archivo CSV
nombre_archivo = "datos_normalizados.csv"
# Cargar los datos
try:
datos = cargar_datos_csv(nombre_archivo)
# Realizar el análisis de conglomerados con el criterio del codo
analisis_conglomerados_criterio_codo(datos)
except Exception as e:
print(f"Ha ocurrido un error al cargar los datos: {e}")
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment