title: Changes of clustering results after each time run in Python scikit-learn
body: <p>I have a bunch of sentences and I want to cluster them using scikit-learn spectral clustering. I've run the code and get the results with no problem. But, every time I run it I get different results. I know this is the problem with initiation but I don't know how to fix it. This is my a part of my code that runs on sentences:</p>
  
  <pre><code>vectorizer = TfidfVectorizer(norm='l2',sublinear_tf=True,tokenizer=tokenize,stop_words='english',charset_error="ignore",ngram_range=(1, 5),min_df=1)
  X = vectorizer.fit_transform(data)
  # connectivity matrix for structured Ward
  connectivity = kneighbors_graph(X, n_neighbors=5)
  # make connectivity symmetric
  connectivity = 0.5 * (connectivity + connectivity.T)
  distances = euclidean_distances(X)
  spectral = cluster.SpectralClustering(n_clusters=number_of_k,eigen_solver='arpack',affinity="nearest_neighbors",assign_labels="discretize")
  spectral.fit(X)
  </code></pre>
  
  <p>Data is a list of sentences. Everytime the code runs, my clustering results differs. How can I get consistent results using Spectral clustering. I also have the same problem with Kmean. This is my code for Kmean:</p>
  
  <pre><code>vectorizer = TfidfVectorizer(sublinear_tf=True,stop_words='english',charset_error="ignore")
  X_data = vectorizer.fit_transform(data)
  km = KMeans(n_clusters=number_of_k, init='k-means++', max_iter=100, n_init=1,verbose=0)
  km.fit(X_data)
  </code></pre>
  
  <p>I appreciate your helps. </p>