Я пытаюсь использовать k означает кластеризацию с помощью scikit learn.Hence, используя метод локтя, чтобы найти оптимальное значение k.K означает в scikit learn Ядро умерло - из-за длинных вычислений
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 строк. Когда я попытался передать весь файл данных функции, ядро умерло. Когда я попытался передать только один столбец, даже в этом случае ядро умерло. Когда я попытался сортировать, мне удалось выяснить, что код работает до строки, помеченной комментарием в приведенной выше функции. Пожалуйста, предложите мне, как решить эту проблему.
Что вы подразумеваете под умершим? ваша программа бросает некоторую ошибку? –
@WasiAhmad Нет, он не показывает никаких ошибок, скорее ноутбук перестает отвечать, а состояние ядра становится мертвым. – vikky
вы можете проверить, не связано ли это с проблемой памяти? когда вы запускаете свою программу, вы можете проверить использование памяти. можете ли вы выполнить тест с меньшим количеством строк без изменения количества столбцов и посмотреть, что произойдет? –