相关疑难解决方法(0)

如何将聚类标签与 Matlab 中的“真实值”标签相匹配

我在这里搜索并用谷歌搜索,但没有结果。在 Weka 中进行聚类时,有一个方便的选项,即类到聚类,它将算法生成的聚类(例如简单的 k 均值)与您作为类属性提供的“基本事实”类标签相匹配。这样我们就可以看到聚类准确率(错误百分比)。

现在,我如何在Matlab中实现这一点,即将我的clusterClasses向量eg转换[1, 1, 2, 1, 3, 2, 3, 1, 1, 1]为与提供的地面真实标签向量eg相同的索引[2, 2, 2, 3, 1, 3]

我认为它可能是基于聚类中心和标签中心,但我不知道如何实现!

任何帮助将不胜感激。

文森特

matlab cluster-analysis weka

5
推荐指数
1
解决办法
7492
查看次数

Python 排列,包括子字符串

我遇到过这篇文章:How to generate all permutations of a list in Python

但我需要更多的东西,即一个字符串的所有排列以及所有子串的所有排列。我知道这是一个很大的数字,但这可能吗?

python permutation

5
推荐指数
1
解决办法
1594
查看次数

在不使用ITERTOOLS的情况下在布尔列表的python中创建组合/排列

l = [True, True , False]
Run Code Online (Sandbox Code Playgroud)

不使用itertools模块。

您如何在新的L中创建l的排列 list

newlist = [[True,True,False],[True,True,True], [False,False,True],[False,False,False]....]
Run Code Online (Sandbox Code Playgroud)

本质上,这就是我想做的事情:

allorderings = itertools.product ([False, True], repeat = n)
Run Code Online (Sandbox Code Playgroud)

python permutation

5
推荐指数
1
解决办法
3437
查看次数

Python初学者被复杂的代码行所困惑

我理解代码的要点,它形成了排列; 但是,我想知道是否有人能够在退货声明中准确解释发生了什么.

def perm(l):
    sz = len(l)
    print (l)
    if sz <= 1:
        print ('sz <= 1')
        return [l]
    return [p[:i]+[l[0]]+p[i:] for i in range(sz) for p in perm(l[1:])]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

4
推荐指数
1
解决办法
3474
查看次数

Python - 生成符合标准的大型集合组合的最有效方法?

我试图在受边界条件约束的投资组合中生成所有可能的金融工具组合。

例如,假设我有一组列表,这些列表代表对投资组合的分配,受每种工具的总投资组合规模的最小和最大百分比影响:

"US Bonds" = {0.10,0.15,0.20,0.25,0.30}
"US Equities" = {0.25, 0.30, 0.35, 0.40, 0.45, 0.50}
"European Bonds" = {0.10, 0.15, 0.20}
"European Equities = {0.20,0.25,0.30,0.35,0.40,0.45,0.50}
 ...
"Cash" = {0.0, 0.05, 0.10, 0.15,...0.95}
Run Code Online (Sandbox Code Playgroud)

我的资产清单如下所示:

[In]
Asset

[Out]
[[0.1, 0.15, 0.2, 0.25, 0.30],
[0.25, 0.30,0.35, 0.40, 0.45, 0.50],
[0.1, 0.15, 0.2],
[0.20, 0.25, 0.30,0.35, 0.40, 0.45, 0.50]
...
[0.0, 0.05, 0.1, 0.15, 0.2, 0.25,...0.95]]
Run Code Online (Sandbox Code Playgroud)

在每种工具组合之和必须 = 1 的条件下,生成所有可能的投资组合的最有效方法是什么?

现在,我正在创建一个“投资组合”列表,如下所示:

portfolios  = [item for item in itertools.product(*asset) if  np.isclose(sum(item),1)]
Run Code Online (Sandbox Code Playgroud)

(注意,'np.isclose' 负责处理时髦的 fp 算术)。 …

python combinations numpy combinatorics

4
推荐指数
1
解决办法
1472
查看次数

2 个字符的 x 长度的排列

假设我有两个字符:a& b。我想获得所有可能的名单排列a,并b对于给定长度(即5),使用Python 2.7。

我查看了itertools.permutations,但找不到允许我使用 2 个字符来构建超过 2 个字符的排列的方法。

我还查看了 Python 排列的多个 SO 答案,例如this one,但这与其他答案一起只会给出len(input)长度排列。

另外,如果有使用不同编程语言的好方法,请提出建议。我并没有一成不变地为此使用 Python。

python python-2.7

4
推荐指数
1
解决办法
1179
查看次数

在python中获取所有可能的订单组合

我有一个 1 和 2 的列表,例如 [2, 1, 1, 1] 我需要获得所有可能的组合:

[[2, 1, 1, 1], 
[1, 2, 1, 1], 
[1, 1, 2, 1],
[1, 1, 1, 2]]
Run Code Online (Sandbox Code Playgroud)

我尝试使用 itertools 的产品,但是,它多次返回相同的结果(例如 [2, 1, 1, 1]),并且在输入较大时效率低下。是否有一些内置功能用于这样的事情?

python combinations

4
推荐指数
1
解决办法
54
查看次数

如何生成几个字母的所有可能排列的列表?

所以我正在创建一个单词生成器,它接受几个输入的字母,将它们放在所有可能的位置,并将它们与文档匹配以查找单词.如果我接近这个错误请告诉我!如果不是我怎么能这样做?谢谢

python permutation alphabetical

3
推荐指数
1
解决办法
1万
查看次数

Python 生成所有唯一的排列并且没有排序的重复 [已修复,我想寻找组合]

编辑:我混淆了排列和组合之间的区别。编辑问题只是为了保持它(因为我无法删除它)。虽然我意识到了我的错误。

我一直在浏览这个问题,但找不到适合我正在寻找的唯一解决方案。

基本概念是如果我运行一个函数gen_permutations([1,2])来生成排列。我会得到结果([1,2],[2,1]),尽管在这个结果中,我会将它们归类为同一组。

我会考虑检查一些东西,result[0] < result[1]然后将其添加到结果集中。但是,例如,这将如何扩大规模gen_permutations(input, size=n | n <= len(input))

对不起,如果有一个问题对此有答案,但所有“类似问题”都指出我只是“独特的结果”,其中 [1,2] != [2,1]。

编辑:混淆案例,该函数gen_permutations只是我在这里找到并使用的通用生成器How to generate all permutations of a list in Python

另一个让它变大的例子。我可以运行这个案例

for i in permutations([1,2,3,4],3):
    print i
Run Code Online (Sandbox Code Playgroud)

得到结果 (1, 2, 3), (1, 2, 4),(1, 3, 2),(1, 3, 4),(1, 4, 2),(1, 4, 3),(2, 1, 3),(2, 1, 4),(2, 3, 1),(2, 3, 4),(2, 4, 1),(2, 4, 3),(3, 1, 2),(3, 1, 4),(3, 2, 1),(3, 2, 4),(3, 4, 1),(3, …

python algorithm

3
推荐指数
1
解决办法
2015
查看次数

使用顺序规则生成 N 个元素的所有可能序列

我有一个函数get_appendable_values(sequence),它接受一个序列(甚至是空的)并返回可附加到该序列(作为最后一个元素)的所有值的列表。我需要根据此函数中定义的规则并从空序列开始,生成 4 个元素的所有可能序列。

例子 :

假设 的实现get_appendable_values是:

def get_appendable_values(sequence):
    '''Dummy rules'''
    if len(sequence) == 2:
        return [4, 12]
    if sequence[-1] == 4:
        return [7]
    return [0, 9]
Run Code Online (Sandbox Code Playgroud)

预期输出:

[[0, 0, 4, 7],
[0, 0, 12, 0],
[0, 0, 12, 9],
[0, 9, 4, 7],
[0, 9, 12, 0],
[0, 9, 12, 9],
[9, 0, 4, 7],
[9, 0, 12, 0],
[9, 0, 12, 9],
[9, 9, 4, 7],
[9, 9, 12, 0],
[9, 9, 12, 9]] …
Run Code Online (Sandbox Code Playgroud)

python recursion

3
推荐指数
1
解决办法
141
查看次数