首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:确定极具k均值聚类可能性的质心数组(scipy)

Python:确定极具k均值聚类可能性的质心数组(scipy)
EN

Stack Overflow用户
提问于 2013-07-18 08:53:38
回答 2查看 516关注 0票数 0

我使用k-均值的for实现,需要一种方法来循环计算n次,记录每个循环的质心输出数组,并以最大似然的方式计算输出。编辑我设置为k= 4,所以每个解决方案都有4个元素。我需要确定最常见的质心数组(即4个元素集)。

我的质心数组看起来类似于:

代码语言:javascript
复制
[[ 75]
 [115]
 [163]
 [ 16]]

在手动运行代码时,由于k均值的随机属性,出现了4-6个解决方案。基本上,我希望计数n上每个数组的出现情况,并返回最有可能出现的数组。

编辑澄清,根据Jblasco对问题的解释。

每次算法运行时,它都会返回一个质心数组,就像上面的那个。运行该算法3次,我会得到如下内容:

代码语言:javascript
复制
[[ 75]  [[ 73]  [[ 75]
 [115]   [112]   [115]
 [163]   [167]   [163]
 [ 16]], [ 14]], [ 16]]

我想完成两件事:

1)循环生成这些质心的代码

2)确定最有可能(最常见、最常见)的解决办法,在这种情况下是:

代码语言:javascript
复制
[[ 75]
 [115]
 [163]
 [ 16]]
EN

回答 2

Stack Overflow用户

发布于 2013-07-18 10:25:41

如果我理解正确的话,你会得到n倍的数组,这个数组看起来像你显示的那个数组,你想要计算数组中75次的次数,115次在数组中的次数等等。如果这是正确的,我会想到这样的事情:

代码语言:javascript
复制
keep_count = {}
for attempt in range(n):
    get_one_of_those_arrays  <-- sorry, no idea how the function of k-means work
    for result in array:        
        if keep_count.has_key(result):
            keep_count[result] +=1
        else:
            keep_count[result] = 1

现在,keep_count得到了每个结果数的所有正项。一种略显优雅的方式使用defaultdict:

代码语言:javascript
复制
    import collections
    keep_count = collections.defaultdict(int)  # initializes dict to int 0, no more if
    for attempt in range(n):
        get_one_of_those_arrays
        for result in array:
            keep_count[result] += 1
票数 0
EN

Stack Overflow用户

发布于 2013-07-18 16:15:18

好吧,现在我明白你的意思了,让我们重新开始,好吗?对类似的问题有相似的思考方式。我承认这并不是最优雅的可能性,但我认为这是可行的,而且很直观:

代码语言:javascript
复制
keep_count = {}
for attempt in range(n):
    array = get_one_of_those_arrays  <-- sorry, no idea how the function of k-means work
    array = tuple(array.reshape(4))
    if keep_count.has_key(array):
        keep_count[array] +=1
    else:
        keep_count[result] = 1

现在我们只需要找到最大值的位置:

代码语言:javascript
复制
max_value = max(keep_count.values())
max_pos = keep_count.values().index(max_value)
most_frequent = keep_count.keys()[max_pos]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17718853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档