我正在尝试对此数据执行k-means聚类。
它具有NaN值。我想忽略NaN,只给剩下的列提供集群。
Col1 Col2 Col3 Col4 Animal clusters
0 1.0 1.0 2.0 2.0 Rabbit
1 1.0 1.0 NaN 1.0 Cat NaN
2 1.0 1.0 2.0 2.0 Dog
3 2.0 NaN 2.0 2.0 Cat NaN
4 2.0 0.0 0.0 3.0 Dog
使用第1、2、3、4列制备聚类,我需要动物和聚类列进行进一步分析。
这是我使用的代码。但我不知道如何忽略Nans
clustering_kmeans = KMeans(n_clusters=3, precompute_distances="auto", n_jobs=-1)
data.iloc[:, :-1]['clusters'] = clustering_kmeans.fit_predict(data)
有人能帮我解决这个问题吗?
您需要在这些地方有一个数字(Nan=不是数字(来执行k-均值。这种情况下的一些解决方法是用特性的平均值填充它们,或者将它们分配给最近的集群