035、036 介绍了指纹与 Morgan/ECFP 的概念,本篇深入 ECFP 作为机器学习特征时需要懂的几个参数与陷阱。
三个关键参数
- 半径(radius):半径 2 = ECFP4,半径 3 = ECFP6。半径越大,捕捉的子结构越大,但也更稀疏。
- 位数(nBits):把无穷多的子结构哈希折叠到固定长度(常用 1024 / 2048)。位数越小,碰撞越多。
- 二值 vs 计数:二值只记「有没有」,计数记「出现几次」,后者信息更全。
优势与坑
- 可解释:每个置 1 的位对应一个具体的圆形子结构,可回溯。
- 位碰撞:折叠会让不同子结构落到同一位,造成信息混淆,必要时增大 nBits。
- 稀疏性:高半径下向量很稀疏,传统模型可能需要降维或选择。
关键要点
- 调参三件套:半径、位数、二值/计数;
- 位数太小 → 碰撞,太大 → 稀疏,需权衡;
- ECFP 可解释,能回溯到具体子结构。
延伸资源
- 实操:RDKit
rdFingerprintGenerator.GetMorganGenerator。 - 对照:038《MACCS Keys》是更简单、可解释的替代。