python画P-R曲线,并计算AUPR值-实战代码

def draw_PR(dictNameYtruePred,title=None,savePath = './picture/',dpi = 600):
    '''
    :param dictNameYtruePred:
    :param title:
    :param savePath:
    :param dpi:
    #输入实例
        #     label = [1, 1, 0, 0,0,0,0, ] # y 是 a的值,x是各个元素的索引
        #     probability = [0.8, 0.3, 0.1, 0.2,0.3,0.4,0.6,]
        #     draw_PR({'name': [label, probability]})
    '''
    colors = cycle(['sienna','seagreen','blue', 'red', 'darkorange',  'gold', 'orchid',  'gray'])
    plt.figure()  # 指定大小分辨率等,相当于画纸
    for toolsName,y_trueANDpred_proba ,color in zip(dictNameYtruePred.keys(),dictNameYtruePred.values(),colors):
        precision, recall, thresholds = precision_recall_curve(y_trueANDpred_proba[0], y_trueANDpred_proba[1], pos_label=1)
        aupr = auc( recall,precision)#计算面积的
        plt.plot(precision, recall, color=color, label=str(toolsName)+'(AUPR = %0.3f)' % aupr, linestyle='--', LineWidth=3)#横纵坐标的取值,颜色样式等

    plt.xlim([-0.05, 1.05])#x坐标轴
    plt.ylim([-0.05, 1.05])#y坐标轴
    plt.xlabel('Recall', size=25)#x标签
    plt.ylabel('Precision', size=25)#y标签
    plt.legend(loc="lower right", ncol=1, fontsize=22)#加上图例
    plt.title(title, size=25)
    if not os.path.exists(savePath):
        os.makedirs(savePath)
    plt.savefig(savePath+str(1), dpi=dpi)
    plt.show()
if __name__ == '__main__':
    label1 = [1,1, 1, 1, 1,1,1 ,1,1,0, 0, 0, 0, 0, ]
    probability1 = [0.1,0.8, 0.3, 0.1, 0.6,0.5,0.8,0.9,0.4 ,0.2,0.3,0.4,0.6,0.1]
    label2 = [1, 1, 1, 1,1,1 ,1,1,0, 0, 0, 0, 0, 0,0,]
    probability2 = [0.9, 0.3, 0.8, 0.6,0.5,0.8,0.9,0.4 ,0.2,0.3,0.4,0.6,0.1,0.3,0.9]
    draw_PR({'name1': [label1, probability1],
             'name2': [label2, probability2]

             })

注意导入所需要的对应的包。

结果:因为数据量较少,所以显示的粗糙

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python中,你可以使用 lifelines 包来进行生存数据的Cox分析,建立Cox生存模型,并计算AUC、MCC、AUPR、DCA、KM曲线和校准曲线。 首先,需要安装 lifelines 包,可以使用以下命令进行安装: ``` pip install lifelines ``` 接下来,我们将详细解释并提供示例代码来完成你的需求。 1. 导入所需的库和模块: ```python import pandas as pd import numpy as np from lifelines import CoxPHFitter from lifelines.utils import concordance_index from lifelines.utils import k_fold_cross_validation from sklearn.metrics import matthews_corrcoef, roc_auc_score, average_precision_score, precision_recall_curve import matplotlib.pyplot as plt ``` 2. 加载数据并进行预处理: ```python # 假设你的生存数据保存在名为 'data.csv' 的CSV文件中,其中包含特征和生存时间 data = pd.read_csv('data.csv') # 对数据进行预处理,例如删除缺失等 data = data.dropna() ``` 3. 创建Cox生存模型并拟合数据: ```python # 创建CoxPHFitter对象 cph = CoxPHFitter() # 拟合Cox生存模型 cph.fit(data, 'time', event_col='event') ``` 4. 计算Cox模型的性能指标: ```python # 预测生存概率 data['predicted_proba'] = cph.predict_survival_function(data).T.iloc[:, 0] # 计算AUC auc = roc_auc_score(data['event'], data['predicted_proba']) # 计算MCC mcc = matthews_corrcoef(data['event'], data['predicted_proba'] > 0.5) # 计算AUPR aupr = average_precision_score(data['event'], data['predicted_proba']) # 计算DCA dca = k_fold_cross_validation(cph, data, 'time', event_col='event', k=5).mean() # 绘制KM曲线 cph.plot() # 绘制校准曲线 cph.plot_calibration_curve(data, 'time', event_col='event') ``` 以上代码提供了一个简单的示例,你可以根据你的数据和需求进行适当的修改。请确保在使用之前,先根据你的实际情况加载和预处理数据。 希望这个示例能帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值