【问题标题】:Confusion matrix with dask混淆矩阵与 dask
【发布时间】:2019-01-09 05:34:38
【问题描述】:

我正在尝试使用 Dask 计算混淆矩阵元素。 从算法的角度来看,我的实现似乎没问题。 但是,当我在 2 个大小为 100 万的数组上运行它时,它需要很长时间。

有人对如何优化这段代码有建议吗?

def confusion_matrix_dask(truth,predictions,labels_list=[]):
    TP=0
    FP=0
    FN=0
    TN=0
    if not labels_list:
        TP=(truth[predictions==1]==1).sum()
        FP=(truth[predictions!=1]==1).sum()
        TN=(truth[predictions!=1]!=1).sum()
        FN=(truth[predictions==1]!=1).sum()
    for label in labels_list:
        TP=(truth[predictions==label]==label).sum()+TP
        FP=(truth[predictions!=label]==label).sum()+FP
        TN=(truth[predictions!=label]!=label).sum()+TN
        FN=(truth[predictions==label]!=label).sum()+FN


    return np.array([[TN.compute(), FP.compute()] , [TN.compute() ,FN.compute()]])

【问题讨论】:

    标签: dask


    【解决方案1】:

    您应该注意的一个快速改进:

    import dask
    TP, FP, TN, FN = dask.compute(TP, FP, TN, FN)
    

    而不是在每个上调用.compute()。这将共享通用数据和任务,从而减少要完成的总工作量。

    【讨论】:

      猜你喜欢
      • 2014-07-09
      • 2015-12-17
      • 2020-10-01
      • 2012-01-20
      • 2019-11-23
      • 1970-01-01
      • 1970-01-01
      • 2022-07-07
      • 2018-09-26
      相关资源
      最近更新 更多