code: def gaussian_polygons(points, n=10):
      
      gdf = gpd.GeoDataFrame(data={'cluster_number': classify_clusters(points, n=n)}, geometry=points)
      polygons = []
      for i in range(n):
          sel_points = gdf[gdf['cluster_number'] == i].geometry
          polygons.append(shapely.geometry.MultiPoint([(p.x, p.y) for p in sel_points]).convex_hull)
      polygons = [p for p in polygons if
                  (not isinstance(p, shapely.geometry.Point)) and (not isinstance(p, shapely.geometry.LineString))]
      return gpd.GeoSeries(polygons)
docs: Returns an array of approximately `n` `shapely.geometry.Polygon` objects for an array of `shapely.geometry.Point`
      objects.