在 scikit 聚类算法中忽略 NaN 值

Posted

技术标签:

【中文标题】在 scikit 聚类算法中忽略 NaN 值【英文标题】:Ignoring NaN values in a scikit clustering algorithm 【发布时间】:2021-09-17 00:42:02 【问题描述】:

我使用了一种凝聚算法来聚类一个分解的数据帧(它正在工作)。 NaN 值在此数据框中显示为 -1,但我不想将它们作为算法的输入数据包含在内。我想我必须设置某种边界,我指定只有值 => 0 应该被考虑在内,但我不确定如何完成这项工作。下面我展示了我的算法代码和数据帧 z 的部分输出。

z=df.apply(lambda x: pd.factorize(x)[0])
cluster = AgglomerativeClustering(n_clusters=None,distance_threshold=(10), affinity='euclidean', linkage='ward')
cluster.fit_predict(z)

数据框 z 的一部分:

0       0       0       0       0  ...        0       -1       -1          -1
1       0       0       0       0  ...       -1       -1       -1          -1
2       0       0       0       0  ...        1       -1       -1          -1
3       0       0       0       0  ...       -1       -1       -1          -1
4       0       0       0       0  ...        0       -1       -1          -1
5       0       0       0       0  ...        0       -1       -1          -1
6       0       0       0       0  ...        0       -1       -1          -1
7       0       0       0       0  ...        0       -1       -1          -1
8       0       0       0       0  ...        0       -1       -1          -1
9       0       0       0       0  ...       -1       -1       -1          -1
10      0       1       1       1  ...        0       -1       -1          -1
11      0       1       1       1  ...       -1       -1       -1          -1
12      0       2       1       2  ...        0       -1       -1          -1
13      0       2       1       2  ...       -1       -1       -1          -1
14      0       3       1       3  ...        0       -1       -1          -1
15      0       3       1       3  ...       -1       -1       -1          -1
16      1       4       1       4  ...        0       -1       -1          -1
17      1       4       1       4  ...        1       -1       -1          -1

【问题讨论】:

【参考方案1】:

在创建z 之前,调用DataFrame.dropna()。您可以在pandas docs 上阅读更多内容。

df.dropna(inplace=True)

【讨论】:

以上是关于在 scikit 聚类算法中忽略 NaN 值的主要内容,如果未能解决你的问题,请参考以下文章

如何根据颜色值聚类彩色图像? [关闭]

用python K值聚类识别图片主要颜色的程序,算法python代码已经有了

DBSCAN

聚类算法(上)06

Scikit 的 DBSCAN 聚类算法中的噪声样本是啥?

用scikit-learn学习BIRCH聚类