Как запустить K-means на value_counts Pandas dataframe? - PullRequest
0 голосов
/ 28 февраля 2020

Я хочу использовать Kmeans для кластеризации кадра данных с подготовленным набором данных по количеству значений. Тогда я хочу построить это.

from sklearn.cluster import KMeans
frq = pd.DataFrame.from_dict(presult["ClientIP"].value_counts().to_dict(), orient="index").reset_index()
frq.columns = ['IP', 'Frq']
print(frq.columns)
print(frq)
Index(['IP', 'Frq'], dtype='object')
                                         IP   Frq
0                             2X.1XX.X.X  1158
1    X:598:X:db8a:X:X:e9aa   408
2                             18.X.X.109   405
3                              217.X.X.28   394
4                            92.X.X.119   360
..                                      ...   ...
760                          216.10.X.X     1
761                          185.152.X.X     1

Из предварительно настроенного набора данных я предполагаю, что могу позвонить:

kmeans_model = KMeans(n_clusters = 3, random_state = 1).fit(frq)

Это не работает, потому что мой столбец IP является строкой. Однако мне нужно знать, какой IP входит в какой кластер.

Я бы добавил столбец для каждого IP-адреса, чтобы увидеть, к какому кластеру он принадлежит:

frq['kmean'] = kmeans_model.labels_
print(frq['kmean'].value_counts())

Кто-нибудь знает, как убедить sklearn в кластере, основываясь на количестве значений внутри dataframe

...