#Datawhale AI夏令营# isiRNA生命科学方向 之 task(1) ~[BaseLine原理与分析] + [赛题解析]

1.赛题解析

(1)赛题信息解

        赛题介绍:RNAT扰(RNAi)是生物细胞内天然存在的一种基因表达调控机制,可抵御外来核酸的入侵和控制基因表达。其中小干扰RNA(SiRNA)是RNAi机制的主要作用分子SiRNA相关现象及作用机制的发现获得了2006年诸贝尔生理学或医学奖,2018年世界上首款siRNA药物获得美国FDA批准。相比于传统小分子药物,SiRNA具有可成药靶点多、药效强、安全性好、成本低的优势,其研发是全球范围内极具发展潜力的前沿医药领域之一。siRNA的化学修饰对siRNA在体内的稳定性、毒性、药代动力学特性至关重要,是SiRNA研发中的重要影响因素,本赛题聚焦经过化学修饰的SiRNA序列数据预测其对相应的信使RNA(mRNA)沉默效率指标,对指导SiRNA药物设计具有重要指向性作用。

            

(2)提供材料解析

(一).文件材料

(1)baseline.py:比赛仿官方提供的baseline,类似于与一个模板用来熟悉模型训练原理和基础。

(2)sample_submission.csv:训练模型需要的基因数据。

(3)train_data.csv:训练集,官方给的已知数据,用于提供给模型训练。

(4)vocab.csv:对前面两个文件属性名称的注解。

注:DateWhale对于baseline文件提供了注释详解版 task3.2_siRNA (1).ipynb   文章后面的baseline详解将基于该文件为基础。

(二)名称解析

train_data结合vocab详细解析

train_data训练集

  • (1)id                                                  -->   数据唯一识别号
  • (2)publication_id                             -->   数据来源文献号
  • (3)gene_traget_symbol_name       -->   需要去除的疾病基因名称(靶基因名称)
  • (4)gene_traget_ncbi_id                  -->   疾病基因编号(mRNA编号)
  • (5)gene_traget_species                 -->   带有mRNA的物种,主要包括人类和猕猴
  • (6)siRNA_duplex_id                       -->   药物基因编号(siRNA编号)
  • (7)siRNA_sense_seq                     -->   药物基因(siRNA)正义序列,与疾病基因(mRNA)序列                                                                    相似或相同。作用:稳定和辅助
  • (8)siRNA_antisense_seq               -->   药物基因(siRNA)反义序列,与疾病基因(mRNA)序列
  •                                                                  几乎完全互补。作用:是恶并结合疾病基因,使其讲
  •                                                                  解或无法表达
  • (9)cell_line_donor                          --> 细胞系:同一个细胞系来源于同一个“祖先”,由专业的 
  •                                                               公司或实验室进行复制研究
  • (10)siRNA_concentration              --> 药物基因(siRNA)的使用剂量,用浓度来衡昺:单位是
  •                                                               纳尔
  • (11)concentration_unit                   --> 单位纳尔
  • (12)Transfection_method               --> 药物导入细胞的方法,脂质体转染、自由摄取
  • (13)Duration_after_transfection_h -->药物作用时间
  • (14)modified_siRNA_sense_seg   -->实验过程中“升级'(修饰)前的siRNA序列
  • (15)modified_siRNA_antisense_sed-->实验过程中“升级'(修饰)后的siRNA序列
  • (16)nodified_siRNA_sense_seg_list-->给(14modified_siRNA_sense_seg)基因段加了空格
  •                                                                  方便识别和处理
  • (17)modified_siRNA_antisense seg_list-->给(15modified_siRNA_antisense_sed)基因段加
  •                                                                         了空格方便识别和处理
  •  (18)gene_target_seg                       -->   疾病基因(靶基因mRNA)的序列
  • (19)mRNA_remaining_pct                -->   疾病基因的剩余量(我们所需要预测的值)

2.Baseline代码解析与感悟

baseline模型训练的主要由两部分构成:数据的提炼 + 模型的训练

(1)数据的提炼

(一)依赖库的导入

(二)创建基因组分词器

       创建基因组分词器:用于将基因组序列分割成固定长度主要操作:国将输入序列转化为大写@将长序列RNA分子分割成更小的片段,有助于后续的分析和解读输入:长段基因输出:按照规则分割后的诸多短的片段基因。


GGUUCCAAGUCCAAUAUGGCAGGU

CCA  GUC  AAU  UGG

class GenomicTokenizer:
    def __init__(self, ngram=5, stride=2):
        # 初始化分词器,设置n-gram长度和步幅
        self.ngram = ngram
        self.stride = stride
        
    def tokenize(self, t):
        # 将输入序列转换为大写
        t = t.upper()
        
        if self.ngram == 1:
            # 如果n-gram长度为1,直接将序列转换为字符列表
            toks = list(t)
        else:
            # 否则,按照步幅对序列进行n-gram分词
            toks = [t[i:i+self.ngram] for i in range(0, len(t), self.stride) if len(t[i:i+self.ngram]) == self.ngram]
        
        # 如果最后一个分词长度小于n-gram,移除最后一个分词
        if len(toks[-1]) < self.ngram:
            toks = toks[:-1]
        
        # 返回分词结果
        return toks

(三)创建基因组词汇表

        创建基因组词汇表:将基因组中的特定片段与一种数据结构(索引)相关联,以便在后续的数据分析中高效地存储,检索和分析这些片段,
主要操作:①统计每个基因片段的出现频率②将基因片段的出现频率从高到低排序③选择出现频率>min freq的基因片段,加入到词汇表④最多保留max_vocab 个,剩下的基因片段就不要了
原因:在疾病中高频率出现的基因片段,有一定概率“是反派”,要“揪出来”在药物中高频率出现的基因片段,有一定概率“是好”,要“拉拢过来人”
都可以作为重点研究对象!

class GenomicVocab:
    def __init__(self, itos):
        # 初始化词汇表,itos是一个词汇表列表
        self.itos = itos
        # 创建从词汇到索引的映射
        self.stoi = {v: k for k, v in enumerate(self.itos)}
        
    @classmethod
    def create(cls, tokens, max_vocab, min_freq):
        # 创建词汇表类方法
        # 统计每个token出现的频率
        freq = Counter(tokens)
        # 选择出现频率大于等于min_freq的token,并且最多保留max_vocab个token
        itos = ['<pad>'] + [o for o, c in freq.most_common(max_vocab - 1) if c >= min_freq]
        # 返回包含词汇表的类实例
        return cls(itos)

  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 保险反欺诈预测是金融数据分析的重要应用之一。该赛题是基于保险数据集,旨在通过分析和挖掘数据特征,建立一个反欺诈预测模型的基准线。 首先,我们需要对保险数据集进行预处理和清洗,包括处理缺失值、异常值和重复值等。然后,我们可以进行特征工程,提取出与反欺诈相关的特征。常见的特征可以包括被保险人的年龄、职业、保险金额、历史理赔记录等信息。 接下来,我们可以选择合适的机器学习算法来构建预测模型。常用的算法包括逻辑回归、决策树、随机森林等。在构建模型之前,我们需要将数据集划分为训练集和测试集,用训练集进行模型训练,然后用测试集评估模型的性能。 评估模型的性能可以使用常见的指标,如准确率、精确率、召回率和F1值等。这些指标可以帮助我们评估模型的预测能力和误判率。 最后,我们需要对模型进行优化和改进。可以通过调整模型的参数、增加更多的特征或者尝试其他的机器学习算法来提高模型的预测性能。同时,对于不平衡样本问题,可以采用欠采样、过采样或者集成学习等方法来解决。 总结起来,保险反欺诈预测的baseline建立包括数据预处理、特征工程、模型构建和优化等步骤。通过不断地优化和改进,我们可以建立一个有效的反欺诈预测模型,提高保险公司的风险控制能力。 ### 回答2: 金融数据分析赛题2: 保险反欺诈预测baseline是指在保险领域中,利用金融数据分析的方法来预测保险反欺诈的基础模型。 保险反欺诈预测是指利用大数据和机器学习算法等技术手段,对保险投保人的风险进行分析和预测,从而提高保险公司的风险管理能力,减少保险欺诈行为。 基于金融数据分析的保险反欺诈预测baseline主要包括以下几个步骤: 1. 数据收集:收集与保险欺诈相关的数据,包括投保人的基本信息、历史保险记录、理赔记录等,以及其他与保险欺诈相关的非保险数据。 2. 数据清洗和预处理:对收集到的数据进行清洗和预处理,包括去除异常值、缺失值处理、数据标准化等。确保数据的质量和可用性。 3. 特征工程:根据业务需求和领域知识,对数据进行特征提取和构建。包括基本特征、组合特征和衍生特征等。 4. 模型选择和训练:选择适用于保险反欺诈预测的机器学习模型,例如逻辑回归、决策树、支持向量机等。通过训练数据拟合模型,并进行调参和验证,得到最佳模型。 5. 模型评估和优化:利用评价指标如准确率、召回率、F1值等对模型进行评估,并进行模型优化和调整,提高模型的预测性能。 6. 模型应用和部署:将优化后的模型应用于实际场景,进行实时预测和反欺诈行为识别。并对模型进行监测和更新,保持模型的准确性和稳定性。 基于以上步骤,金融数据分析赛题2的保险反欺诈预测baseline可以建立一个初步的保险反欺诈预测模型,并得到一组基本的预测结果。然后可以根据比赛的具体要求和模型效果进行进一步的改进和优化,提高保险反欺诈预测的准确性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值