[ PROMPT_NODE_27182 ]
utilities
[ SKILL_DOCUMENTATION ]
# TDC 工具与数据函数
本文档提供了 TDC 数据处理、评估和工具函数的综合文档。
## 概述
TDC 提供的工具分为四大类:
1. **数据集拆分** - 训练/验证/测试划分策略
2. **模型评估** - 标准化性能指标
3. **数据处理** - 分子转换、过滤和变换
4. **实体检索** - 数据库查询和转换
## 1. 数据集拆分
数据集拆分对于评估模型的泛化能力至关重要。TDC 提供了多种专为治疗性机器学习设计的拆分策略。
### 基本拆分用法
python
from tdc.single_pred import ADME
data = ADME(name='Caco2_Wang')
# 使用默认参数获取拆分
split = data.get_split()
# 返回: {'train': DataFrame, 'valid': DataFrame, 'test': DataFrame}
# 自定义拆分参数
split = data.get_split(
method='scaffold',
seed=42,
frac=[0.7, 0.1, 0.2]
)
### 拆分方法
#### 随机拆分
数据的随机洗牌 - 适用于通用机器学习任务。
python
split = data.get_split(method='random', seed=1)
**何时使用:**
- 基准模型评估
- 当化学/时间结构不重要时
- 快速原型设计
**不推荐用于:**
- 现实的药物发现场景
- 评估对新化学物质的泛化能力
#### 支架拆分
基于分子支架(Bemis-Murcko 支架)进行拆分 - 确保测试分子在结构上与训练集不同。
python
split = data.get_split(method='scaffold', seed=1)
**何时使用:**
- 大多数单预测任务的默认设置
- 评估对新化学系列的泛化能力
- 现实的药物发现场景
**工作原理:**
1. 从每个分子中提取 Bemis-Murcko 支架
2. 按支架对分子进行分组
3. 将支架分配给训练/验证/测试集
4. 确保测试分子具有未见过的支架
#### 冷拆分 (DTI/DDI 任务)
对于多实例预测,冷拆分确保测试集包含未见过的药物、靶点或两者皆有。
**冷药物拆分:**
python
from tdc.multi_pred import DTI
data = DTI(name='BindingDB_Kd')
split = data.get_split(method='cold_drug', seed=1)
- 测试集包含训练期间未见过的药物
- 评估对新化合物的泛化能力
**冷靶点拆分:**
python
split = data.get_split(method='cold_target', seed=1)
- 测试集包含训练期间未见过的靶点
- 评估对新靶点的泛化能力