【问题标题】:Compute Kendall's Tau for a list of list计算 Kendall 的 Tau 以获得列表列表
【发布时间】:2020-04-07 09:45:02
【问题描述】:

我创建了一个模型,可以订购不同长度的对象,我想测量它的性能。该模型接收打乱的对象作为输入并输出排序的对象。例如,我有一个输入 x= [[ 5, 6, 4, 3, 1, 2], [3,2,4,1], [2,1,3],.....] 和输出为 y=[[5, 6, 3, 1, 2, 4], [ 1,3, 2, 4], [1,2,3].....] 我想使用 Kendall 的 tau 来计算列表 x 和 y 的相关性。但我不确定我是否能做到这一点,因为网络上的许多示例都显示使用只有一维列表的 Kendall's Tau,所以我应该为每个列表分别计算 Kendall's Tau 并对它们进行平均吗?如果我不必单独做,我该如何处理不同长度的列表? 我试图做 scipy.stat.kendalltau(x,y) 但由于列表的长度不同,它给了我一个错误。

【问题讨论】:

    标签: python scipy correlation


    【解决方案1】:

    看起来 x 和 y 的每个元素都是相同长度的列表。您只需要使用zip 并行迭代列表。

    from scipy import stats
    
    x= [[ 5, 6, 4, 3, 1, 2], [3,2,4,1], [2,1,3]] 
    y=[[5, 6, 3, 1, 2, 4], [ 1,3, 2, 4], [1,2,3]]
    
    for l1, l2 in zip(x, y):
        print(stats.kendalltau(l1, l2))
    
    KendalltauResult(correlation=0.6, pvalue=0.1361111111111111)
    KendalltauResult(correlation=-0.6666666666666669, pvalue=0.3333333333333333)
    KendalltauResult(correlation=0.33333333333333337, pvalue=1.0)
    

    【讨论】:

    • 我想将整个列表 x 和 y 的 Kendall's Tau 计算为一个数字。我在 x 和 y 中有大约 4,846 个列表,所以我不希望每个元素都有 4,846 个 Kendall 的 tau。我希望这很清楚。
    猜你喜欢
    • 2015-05-12
    • 2019-12-10
    • 2023-03-31
    • 2011-02-03
    • 2015-05-22
    • 2021-10-17
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多