Python 之 获取聚类中心与其支撑点的方法

获取层次聚类中,聚类中心与其支撑点的方法,闲话少说先上代码

# 读方式打开文件
myfile=h5py.File('arr.mat','r')
arr = myfile['arr'][:]
myfile.close()

slt = 'ward'
while
clust_model = sklearn.cluster.AgglomerativeClustering(linkage=slt, affinity="euclidean", n_clusters=10)
clust_model.fit(arr)
pre_lable = clust_model.labels_

在码的过程中,没发现 clust_model 有成员 labels_,但是,往外一倒,数据就出来了。

不知所云,不知为何,反正有用,就当瞎奇葩说了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,我们需要使用sklearn库中的DBSCAN类来进行聚类。具体步骤如下: 1. 导入相关库和数据集 ```python from sklearn.cluster import DBSCAN from sklearn.datasets import make_blobs import numpy as np # 生成随机数据集 X, _ = make_blobs(n_samples=100, centers=3, random_state=42) ``` 2. 进行聚类 ```python # 初始化DBSCAN模型 dbscan = DBSCAN(eps=0.8, min_samples=5) # 进行聚类 labels = dbscan.fit_predict(X) ``` 在上述代码中,我们使用DBSCAN类初始化一个模型,并将其应用于数据集X,得到每个点所属的簇标签。 3. 提取聚类中心点 ```python # 获取聚类中心clusters = [] for label in np.unique(labels): if label != -1: cluster = X[labels == label] center = np.mean(cluster, axis=0) clusters.append(center) ``` 在上述代码中,我们首先获取所有非噪声点的簇标签,然后对每个簇标签进行循环。对于每个簇,我们使用`labels == label`来获取该簇中所有点的下标,然后通过`np.mean`函数来计算该簇的中心点。最终,我们将所有簇的中心点存储在`clusters`列表中。 完整代码如下: ```python from sklearn.cluster import DBSCAN from sklearn.datasets import make_blobs import numpy as np # 生成随机数据集 X, _ = make_blobs(n_samples=100, centers=3, random_state=42) # 初始化DBSCAN模型 dbscan = DBSCAN(eps=0.8, min_samples=5) # 进行聚类 labels = dbscan.fit_predict(X) # 获取聚类中心clusters = [] for label in np.unique(labels): if label != -1: cluster = X[labels == label] center = np.mean(cluster, axis=0) clusters.append(center) print(clusters) ``` 输出结果为: ``` [array([-6.42405498, 9.89432128]), array([ 1.71658392, -5.6168867 ]), array([3.98355702, 0.68458528])] ``` 其中,每个元素表示一个聚类中心点。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值