将代码中的传递闭包聚类算法改为AP聚类算法出现float() argument must be a string or a number, not 'dict'
时间: 2023-10-27 18:06:43 浏览: 38
这个错误通常是因为 AP 聚类算法期望输入为数值型数据,而传递闭包聚类算法可以处理任意类型的数据。因此,在使用 AP 聚类算法之前,需要将数据转换为数值型数据。
以下是一个示例代码,演示如何使用 AP 聚类算法对数据进行聚类:
```python
from sklearn.cluster import AffinityPropagation
import numpy as np
# 将数据转换为数组形式
X = np.array(list(data.values()))
# 使用 AP 聚类算法进行聚类
af = AffinityPropagation().fit(X)
# 获取聚类结果
cluster_centers_indices = af.cluster_centers_indices_
labels = af.labels_
n_clusters_ = len(cluster_centers_indices)
# 输出聚类结果
for i in range(n_clusters_):
print("Cluster ", i+1, ":")
for j in range(len(labels)):
if labels[j] == i:
print(list(data.keys())[j])
```
在这个示例代码中,我们使用了 `sklearn` 中的 `AffinityPropagation` 类来实现 AP 聚类算法。我们首先将数据转换为数组形式,然后使用 `fit` 方法对数据进行聚类。最后,我们通过 `cluster_centers_indices_`、`labels_` 和 `n_clusters_` 获取聚类结果,并输出每个聚类包含的数据项。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)