Foros del Web » Programando para Internet » Python »

Generar una única imagen usando sklearn

Estas en el tema de Generar una única imagen usando sklearn en el foro de Python en Foros del Web. Hola a todos, quería hacerles la siguiente consulta: Resulta que estoy haciendo algo de machine learning pero en la parte 8 del código intenté que ...
  #1 (permalink)  
Antiguo 24/12/2019, 22:53
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 425
Antigüedad: 8 años, 9 meses
Puntos: 6
Generar una única imagen usando sklearn

Hola a todos, quería hacerles la siguiente consulta: Resulta que estoy haciendo algo de machine learning pero en la parte 8 del código intenté que las gráficas del facetgrid genere una imagen sola con las 6 gráficas, pero no pude.
Vor a poner el código

Código Python:
Ver original
  1. # sklearn
  2. from sklearn.preprocessing import StandardScaler, normalize
  3. from sklearn.cluster import KMeans
  4. from sklearn.decomposition import PCA
  5.  
  6. # generico
  7. import matplotlib.pyplot as plt
  8. import seaborn as sns
  9. import pandas as pd
  10. import numpy as np
  11. import os
  12.  
  13. # --------------- Ejercicio 1
  14. # ---------- parte 1
  15. os.system("clear")
  16. data = pd.read_csv("Mall_Customers.csv")
  17. # ---------- parte 2
  18. print("Parte 2\nAntes\n")
  19. print(data.columns)
  20. print("\n")
  21. print(data.head())
  22. print("\n")
  23. print(data.shape)
  24. print("\n")
  25. print(data.dtypes)
  26. # ---------- parte 3
  27. print("\n--------------------\n")
  28. print("Parte 3\nAhora\n")
  29. """
  30. # sin variables dummy
  31. data["Gender"] = data["Gender"].replace("Male", 1).replace("Female", 0)
  32. print(data.head())
  33. """
  34.  
  35. # con variables dummy
  36. df_dummys = pd.get_dummies(data, columns=["Gender"], drop_first=True)
  37. print(df_dummys.head())
  38.  
  39. # ---------- parte 4
  40. print("\n--------------------\n")
  41. print("Parte 4\n")
  42. # data = data.drop("CustomerID", axis=1)
  43. # data = data.astype(np.float64)
  44. # data = data.fillna(method="ffill")
  45. df_dummys.set_index("CustomerID", drop=True, append=False, inplace=False, verify_integrity=False)
  46. print(df_dummys.info())
  47. # ---------- parte 5
  48. print("\n--------------------\n")
  49. print("Parte 5\n")
  50. df_dummys = df_dummys.astype(np.float64)
  51. print(df_dummys.dtypes)
  52. print("\n")
  53. print(df_dummys.head())
  54. # ---------- parte 6
  55. print("\n--------------------\n")
  56. print("Parte 6\n")
  57. df_grupo = df_dummys[["Annual Income (k$)", "Spending Score (1-100)"]]
  58. print(df_grupo.head())
  59. scaler = StandardScaler()
  60. scaled_df = scaler.fit_transform(df_grupo)
  61. normalized_df = normalize(scaled_df)
  62. normalized_df = pd.DataFrame(normalized_df, columns=df_grupo.columns)
  63. print("\n")
  64. print(normalized_df.head())
  65. # ----------
  66. K = 3
  67. km = KMeans(n_clusters=K)
  68. km.fit(normalized_df)
  69. pca = PCA(n_components=2)
  70. X_principal = pca.fit_transform(normalized_df)
  71. X_principal = pd.DataFrame(X_principal)
  72. X_principal.columns = ["P1", "P2"]
  73. print("\n")
  74. print(X_principal.head())
  75. plt.figure(figsize=(6, 6))
  76. plt.scatter(X_principal["P1"], X_principal["P2"], c=km.predict(normalized_df))
  77. plt.savefig("figura1.png")
  78. plt.show()
  79. # ---------- parte 7
  80. print("\n--------------------\n")
  81. print("Parte 7\n")
  82. Sum_of_squared_distances = []
  83. for k in range(1, 15):
  84.     km = KMeans(n_clusters=k)
  85.     km = km.fit(normalized_df)
  86.     Sum_of_squared_distances.append(km.inertia_)
  87. print(Sum_of_squared_distances)
  88. plt.plot(Sum_of_squared_distances)
  89. plt.savefig("figura2.png")
  90. plt.show()
  91. # ----------
  92. K = 2
  93. km = KMeans(n_clusters=K)
  94. km.fit(normalized_df)
  95. plt.figure(figsize=(6, 6))
  96. plt.scatter(X_principal["P1"], X_principal["P2"], c=km.predict(normalized_df))
  97. plt.savefig("figura3.png")
  98. plt.show()
  99. # ---------- parte 8
  100. print("\n--------------------\n")
  101. print("Parte 8\n")
  102. df_dummys["c"] = km.predict(normalized_df)
  103. print(df_dummys.head())
  104. i = 1
  105. [B]# aquí está la parte del problema
  106. for col in df_dummys:
  107.     grid = sns.FacetGrid(df_dummys, col="c")
  108.     grid.map(plt.hist, col)
  109.     plt.savefig("grilla" + str(i) + ".png")
  110.     plt.show()
  111.     i += 1
  112. [/B]

Y no sé me ocurre cómo generar la imagen única, espero sus respuestas y saludos.
__________________
Si te interesa, visita mi perfil de Linkedin. Gracias



La zona horaria es GMT -6. Ahora son las 09:10.