在scikit-learn中使用交叉验证时计算平均精确度 - 回忆曲线

时间:2016-03-03 12:52:38

标签: python machine-learning scikit-learn cross-validation precision-recall

我尝试使用以下方式绘制平均图:

  1. 计算所有折叠的精确回忆曲线。

  2. 计算平均精确回忆曲线。我不知道该怎么做,因为不同折叠的尺寸不同。

  3. 绘制曲线,这是在第二步中计算的。

    P.S。来自Plotting Precision-Recall curve when using cross-validation in scikit-learn的解决方案不合适,因为如果我计算所有预测的平均值然后计算精确回忆曲线,我将得到AUC = 1.0。这是错误的。

  4. 我想得到这样的东西:

    from sklearn.metrics import precision_recall_curve
    import matplotlib.pyplot as plt
    
    scores = []
    for train, test in kfold:
        true, pred = clf.predict(test)
        precision, recall, _ = precision_recall_curve(true, pred)
        scores.append((precision, recall))
    precision_avg, recall_avg = compute_average(scores)
    plt.plot(precision_avg, recall_avg)
    

0 个答案:

没有答案