擅长:python、mysql、java
<p>使用k-means时,需要在<code>KMeans</code>中设置<code>random_state</code>参数(请参见<a href="http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html">documentation</a>)。将其设置为int或<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.RandomState.html">^{<cd3>}</a>实例。</p>
<pre><code>km = KMeans(n_clusters=number_of_k, init='k-means++',
max_iter=100, n_init=1, verbose=0, random_state=3425)
km.fit(X_data)
</code></pre>
<p>这很重要,因为k-means不是一个确定性算法。它通常从一些随机初始化过程开始,这种随机性意味着不同的运行将从不同的点开始。播种伪随机数生成器可确保相同种子的随机性始终相同。</p>
<p>不过,我不确定光谱聚类的例子。从<code>random_state</code>参数上的<a href="http://scikit-learn.org/stable/modules/generated/sklearn.cluster.SpectralClustering.html#sklearn.cluster.SpectralClustering">documentation</a>:“一个伪随机数生成器,用于在<code>eigen_solver == 'amg'</code>时初始化lobpcg特征向量分解,并通过K-均值初始化。”在这些情况下,OP的代码似乎不包含,尽管设置该参数可能值得一试。</p>