code: def make_clustering_data(n, d, seed=None):
      """
      Construct a synthetic dataset with a variety of data types for testing
      clustering models.
      """
      if seed:
          np.random.seed(seed)
  
      sf = tc.SFrame()
  
      # integer and float columns
      for i in range(d):
          sf["int{}".format(i)] = np.random.randint(
              low=-10, high=10, size=n
          )
  
      for i in range(d):
          v = np.random.rand(n)
          sf["float{}".format(i)] = v * 20 - 10
  
      # dict column
      string_col = test_util.uniform_string_column(
          n, word_length=5, alphabet_size=5, missingness=0.0
      )
  
      sf["dict0"] = tc.text_analytics.count_ngrams(
          string_col, n=3, method="character", to_lower=False
      )
  
      return sf
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import unittest
  import copy
  import numpy
  from numpy.testing import assert_allclose
  import turicreate
  from .None import util
  from turicreate.util import _assert_sframe_equal
  from turicreate.toolkits._main import ToolkitError
  import sys
label_desc: Use image node_id 1 for calling a global function with example usage: make_clustering_data(n, d, seed) and returns: sf