利用Bio.Cluster进行聚类

    xiaoxiao2021-03-25  138

    # -*- coding: UTF-8 -*- from Bio.Cluster import * #http://biopython.org/DIST/docs/api #用k-means 或 k-median进行聚类,K为聚类数 def KCluster(data, K=2): clusterid, error, nfound = kcluster (data, nclusters=K, mask=None, weight=None, transpose=0, npass=1, method='a', dist='e', initialid=None) """ nclusters: 聚类数 (the 'k' in k-means)。 transpose: =0, 行进行聚类; =1,列进行聚类。 npass : 执行聚类算法的次数, 每次有一个随机的初始条件。 method : 指定中心簇的发现方法 'a': 算术平均法 'm': 中位数 dist : 指定要使用的距离函数 'e': 欧几里得距离 'b': City Block distance 'c': 皮尔森相关 'a': 相关性的绝对值 'u': 偏相关 'x': 绝对偏相关 's': 斯皮尔曼等级相关 'k': Kendall's tau initialid: =None, 进行npass次EM算法,每次随机初始条件;!=None, 只进行一次EM算法,从给定的初始条件开始。 """ """ return: clusterid: npass次聚类中最好的一次解决方案 error: 返回的解决方案中,距离的within-cluster和 nfound: 这个解决方案被发现的次数 """ cdata, cmask = clustercentroids(data, mask=None, transpose=0, clusterid=clusterid, method='a') """ 计算聚类中心 mask : 显示数据丢失,如果mask[i][j]==0, 表示data[i][j]缺失。 transpose: =0, 行进行聚类; =1,列进行聚类。 clusterid: 聚类返回的解决方案,为非负 method : 指定中心簇的发现方法 'a': 算术平均法 'm': 中位数 """ """ return: cdata: 聚类中心的坐标 cmask: cdata中丢失的元素 """ return clusterid, cdata if __name__ == '__main__': data = [[1,1], [1.5,2], [3,4], [5,7], [3.5,5], [4.5,5], [3.5,4.5], ] print KCluster(data, 2) """ clusterid = [0 0 1 1 1 1 1] cdata = [[ 1.25 1.5 ][ 3.9 5.1 ]] """
    转载请注明原文地址: https://ju.6miu.com/read-3100.html

    最新回复(0)