k在Scikit中,学习内核死亡 - 由于长期计算



我正在尝试使用k,意味着使用scikit学习。因此,使用肘方法找到k。

的最佳值
def elbow(df, n):
   kMeansVar = [KMeans(n_clusters=k).fit(df.values) for k in range(10, n)]
   centroids = [X.cluster_centers_ for X in kMeansVar]
   k_euclid = [cdist(df.values, cent) for cent in centroids]
   dist = [np.min(ke, axis=1) for ke in k_euclid]
   wcss = [sum(d**2) for d in dist] #TILL HERE THE CODE RAN PROPERLY
   tss = sum(pdist(df.values)**2)/df.values.shape[0]
   bss = tss - wcss
   plt.plot(bss)
   plt.show()

我的数据框有14列和188233行。当我试图将整个数据帧传递到功能时,内核死了。当我尝试通过一列时,即使在那种情况下,内核死了。当我尝试分类时,我能够弄清楚代码运行,直到上面函数中标有评论的行。请建议我如何克服这个问题。

,而不是重新计算所有的消毒,为什么不使用K-Means对象提供的inertia_

那么您不需要有问题的行(使用效率低下的DATS结构)。

相关内容

  • 没有找到相关文章

最新更新