nuget server logo nuget api documents
↑

API Docs / SMRUCC.genomics.Analysis.HTS.P-NET / PNETTrainer

PNETTrainer

Full name SMRUCC.genomics.Analysis.HTS.P_NET.PNETTrainer Assembly SMRUCC.genomics.Analysis.HTS.P-NET Members 10

P-NET 的训练器

00 Remarks

训练流程严格遵循论文 Methods 部分的描述:

  1. 按照 80% 训练 / 10% 验证 / 10% 测试做分层划分, 保证每一个子集之中的类别比例与原始数据集一致;
  2. 按照训练集的类别比例计算二元交叉熵的类别权重;
  3. 使用 Adam 优化器做 mini-batch 训练,初始学习率 0.001,每 50 个 epoch 阶梯衰减;
  4. 损失为各个深度监督预测头的加权二元交叉熵之和。

01 Syntax

SMRUCC.genomics.Analysis.HTS.P_NET.PNETTrainer

02 Methods

NameOverloadsSummary
.ctor 1 创建训练器
FitClassWeights 1 按照训练集的类别比例计算二元交叉熵的类别权重
StratifiedSplit 1 按照给定的比例做分层划分
Train 1 在训练集上训练模型
Evaluate 1 在测试集上评估模型

03 Properties

NameOverloadsSummary
Model 1 被训练的模型
Config 1 训练超参数配置
Optimizer 1 训练所使用的优化器
PositiveWeight 1 正样本类别权重,由 PNETTrainer.FitClassWeights()) 计算得到
NegativeWeight 1 负样本类别权重,由 PNETTrainer.FitClassWeights()) 计算得到

04 Members

method .ctor #

创建训练器

Parameters
NameTypeDescription
modelPNETModel

待训练的 P-NET 模型

configTrainConfig

训练超参数配置,取 Nothing 时使用默认配置

method FitClassWeights #
FitClassWeights(PNETSampleSet)

按照训练集的类别比例计算二元交叉熵的类别权重

Remarks

权重取值为 N / (2 · N_class),与 sklearn 的 class_weight='balanced' 一致。 若 TrainConfig.UseClassWeights 为 False,则两个权重均取 1。

Parameters
NameTypeDescription
dataPNETSampleSet

训练集

method StratifiedSplit #
StratifiedSplit(PNETSampleSet, Double, Double)

按照给定的比例做分层划分

Remarks

分层(stratified)的含义是:在正样本与负样本内部各自独立地做随机划分, 从而保证每一个子集之中的类别比例与原始数据集完全一致。

Parameters
NameTypeDescription
dataPNETSampleSet

完整数据集

trainRatioDouble

训练集比例,默认 0.8

validationRatioDouble

验证集比例,默认 0.1(其余样本归入测试集)

Returns

划分之后的训练集、验证集与测试集

method Train #

在训练集上训练模型

Parameters
NameTypeDescription
trainingSetPNETSampleSet

训练集

validationPNETSampleSet

验证集,给出之后会逐轮记录验证集 AUC 并可选地启用早停

Returns

训练过程的历史记录

method Evaluate #
Evaluate(PNETSampleSet, Double)

在测试集上评估模型

Parameters
NameTypeDescription
testPNETSampleSet

测试集

thresholdDouble

判定为正例的阈值,默认 0.5

Returns

评估指标结果

property Model #
Model

被训练的模型

Returns

P-NET 模型对象

property Config #
Config

训练超参数配置

Returns

训练配置对象

property Optimizer #
Optimizer

训练所使用的优化器

Returns

Adam 优化器

property PositiveWeight #
PositiveWeight

正样本类别权重,由 PNETTrainer.FitClassWeights() 计算得到

Returns

正样本权重

property NegativeWeight #
NegativeWeight

负样本类别权重,由 PNETTrainer.FitClassWeights() 计算得到

Returns

负样本权重