4、机器学习在蛋白‑配体预测中的角色:回归与分类
说实话,不少刚入门的朋友会问我:“做蛋白‑配体预测到底该用回归还是分类?”我的回答通常是:先看你的实验数据是什么样,再想业务上要什么。这事没那么玄乎,但踩坑的人真不少。
今天我就把这两类任务掰开揉碎讲清楚。回归负责“猜多亲”,分类负责“判死活”。两者用的模型框架类似,但目标函数、评估方式、数据要求完全不一样。下面我们逐项展开。
4.1 回归任务:预测结合亲和力
回归要输出一个连续数值——比如 pIC50、pKd、ΔG。我见过最直接的场景:你手里有几十个化合物,各有活性数据,老板想知道下一个候选物的亲和力是多少。
4.1.1 常用指标
| 指标 | 含义 | 我的说明 |
|---|---|---|
| RMSE | 均方根误差 | 单位与目标一致,直观但受异常值影响大 |
| R² | 决定系数 | 模型解释了多少方差;我习惯先看这个 |
| Pearson r | 皮尔逊相关系数 | 只看线性相关,不罚偏差 |
| Spearman ρ | 排序相关性 | 只关心排名,适合筛选场景 |
4.1.2 数据与模型
回归任务需要高质量的连续活性值。常见陷阱:实验数据来自不同实验室、不同方法,数值漂移严重。我在一个跨膜蛋白项目里就吃过这个亏——同一个化合物的pIC50差了两个数量级,模型怎么调都不收敛。
模型层面,随机森林、XGBoost、图神经网络都有人用。我个人经验:当数据量小于1000时,树模型比深度网络更稳;数据量上万后,图网络+注意力机制往往能多出几个百分点的R²。
# 一个极简的回归示例(Python + scikit-learn)
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error, r2_score
model = RandomForestRegressor(n_estimators=200, max_depth=12)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(f"RMSE: {mean_squared_error(y_test, y_pred, squared=False):.2f}")
print(f"R² : {r2_score(y_test, y_pred):.3f}")
4.2 分类任务:判断活性 vs 非活性
分类输出是离散标签——最常见的就是“活性(1)”和“非活性(0)”。你想想看,工业界高通量筛选最喜欢这个:一套流程跑下来,直接标好坏,省得测绝对亲和力。
4.2.1 正负样本不平衡
真实筛选场景中活性分子常常只占1%~5%。我遇到过最夸张的一次:15000个化合物,只有73个活性。用原始数据训练出来的模型,永远预测“非活性”,准确率95%以上——但屁用没有。
4.2.2 评价指标不能只看准确率
| 指标 | 适用场景 | 我的看法 |
|---|---|---|
| AUC‑ROC | 排序能力 | 最常用,但正负样本极度不平衡时可参考 |
| Precision / Recall | 实际正类预测效果 | 我习惯看F1,尤其是活性类 |
| PR 曲线下面积 | 不平衡数据 | 强烈推荐,比ROC更真实 |
| 命中率 / 富集因子 | 虚拟筛选 | 业务导向,老板最喜欢这个 |
4.2.3 常用模型与技巧
分类模型可以从逻辑回归一路堆到图注意力网络。我的建议:先跑一个简单的XGBoost基线,看数据是不是 linearly separable。如果基线AUC > 0.85,别急着上大模型;如果 < 0.7,再考虑图网络、3D卷积等复杂架构。
# 分类示例(XGBoost + 不平衡调整)
import xgboost as xgb
model = xgb.XGBClassifier(
scale_pos_weight=len(y_train[y_train==0]) / len(y_train[y_train==1]),
n_estimators=100, max_depth=6
)
model.fit(X_train, y_train)
y_prob = model.predict_proba(X_test)[:, 1]
# 根据验证集重新选阈值,比如用最大化F1
4.3 回归 vs 分类:一句话对比
| 维度 | 回归 | 分类 |
|---|---|---|
| 输出 | 连续值(pIC50等) | 离散标签(活性/非活性) |
| 数据需求 | 高质量连续活性 | 阈值定义明确,不平衡常存 |
| 典型模型 | RF, XGBoost, GNN | XGBoost, DNN, GNN |
| 主要评估 | RMSE, R², Spearman | AUC, F1, PR‑AUC |
| 业务价值 | 定量排序 & 优化 | 高通量初筛 & 二分化决策 |
4.4 如何选择?一张流程图
下面这张图概括了我平时做任务选型的思路,从数据特点一路走到评估决策。
说白了,选回归还是分类,核心就看两样:你的数据长什么样,业务上要一个数还是一个标签。搞明白了这个,后面调参、选模型才不会跑偏。