title: sklearn categorical data clustering
body: <p>I'm using sklearn and agglomerative clustering function. I have a mixed data which includes both numeric and nominal data columns. My nominal columns have values such that "Morning", "Afternoon", "Evening", "Night". If I convert my nominal data to numeric by assigning integer values like 0,1,2,3; euclidean distance will be calculated as 3 between "Night" and "Morning", but, 1 should be return value as a distance.</p>
  
  <pre><code>X = pd.read_csv("mydata.csv", sep=",", header=0, encoding="utf-8")
  X = StandardScaler().fit_transform(X)
  print("n_samples: %d, n_features: %d" % X.shape)
  
  km = AgglomerativeClustering(n_clusters=5, affinity='euclidean', linkage='average')
  km.fit(X)
  
  print("k = %d,  Silhouette Coefficient: %0.3f" % (x,
     metrics.silhouette_score(X, km.labels_, sample_size=None)))
  </code></pre>
  
  <p>Here is my code.</p>
  
  <p>How can I customize the distance function in sklearn or convert my nominal data to numeric?</p>