项目实训-智能生物序列分析平台-后端模块(1)

本文介绍了在智能生物序列分析平台后端模块中,如何使用Python进行ROC图、PR图和UMAP图的绘制。讨论了ROC曲线的概念、AUC的含义,以及如何平滑ROC曲线。同时,对比了tSNE和UMAP在降维可视化中的优缺点,展示了UMAP的实现过程。
摘要由CSDN通过智能技术生成

Plot部分代码更新

为了对任务进行整体全局的分析和把控,我们以不同的角度进行了画图和表格,以下是画图的分类。

数据分析类 结果比较类 特征比较类 参数比较类
数据正反样例统计表 模型分析ROC PR曲线 手工特征比较图 CD-Hit比较
分析序列长度的motif图 置信度结构出来的密度图 umap图 kmers比较
分析长度分布的图 shap图 data augumentation比较

ROC图和PR图

在信号检测理论中,接收者操作特征曲线(receiver operating characteristic curve,或者叫ROC曲线)是坐标图式的分析工具,用于:

  1. 选择最佳的信号侦测模型、舍弃次佳的模型。
  2. 在同一模型中设定最佳阈值。在做决策时,ROC分析能不受成本/效益的影响,给出客观中立的建议。

全名叫做Receiver Operating Characteristic,其主要分析工具是一个画在二维平面上的曲线——ROC 曲线。平面的横坐标是false positive rate(FPR),纵坐标是true positive rate(TPR)。对某个分类器而言,我们可以根据其在测试样本上的表现得到一个TPR和FPR点对。这样,此分类器就可以映射成ROC平面上的一个点。调整这个分类器分类时候使用的阈值,我们就可以得到一个经过(0, 0),(1, 1)的曲线,这就是此分类器的ROC曲线。一般情况下,这个曲线都应该处于(0, 0)和(1, 1)连线的上方。因为(0, 0)和(1, 1)连线形成的ROC曲线实际上代表的是一个随机分类器。

如果很不幸,你得到一个位于此直线下方的分类器的话,一个直观的补救办法就是把所有的预测结果反向,即:分类器输出结果为正类,则最终分类的结果为负类,反之,则为正类。虽然,用ROC 曲线来表示分类器的性能很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。于是Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC 曲线下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的性能。AUC(Area Under roc Curve)是一种用来度量分类模型好坏的一个标准。

def draw_ROC_PRC_curve(roc_datas, prc_datas, config):
    # roc_data = [FPR, TPR, AUC]
    # prc_data = [recall, precision, AP]

    f, (ax1, ax2) = plt.subplots(figsize=(16, 8), ncols=2)
    plt.subplots_adjust(wspace=0.2, hspace=0.3)
    lw = 2

首先先定义一个函数用来后续调用,将整张图裁剪成两个部分,分别用来做ROC曲线还有PR曲线的绘制。并且用subplots_adjust来调整子图与子图之间的间距还有整张图在图中的位置。

    plt.subplot(1, 2, 1)
    ax1.spines['right'].set_visible(False)
    ax1.spines['top'].set_visible(False)

在这里spines['right']是用来将左边框和右边框抹去而设计的,因为R语言画图是无边框的,而python的matplotlib是默认带有边框,现在要进行模仿,所以必须要进行改造。

    colorlocal = colors[len(roc_datas)]

    for index, roc_data in 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值