Xiyue-Wang / TransPath

GNU General Public License v3.0
268 stars 36 forks source link

关于weakly supersived classification实验结果的疑惑(CTransPath论文中提到的CLAM-SB的结果和CLAM论文中提到的差距极大) #25

Open Shentl opened 1 year ago

Shentl commented 1 year ago

您好

CTransPath 论文中,在“Table 7. Results of weakly-supervised classification on three public datasets.”中有提到在CAMELYON16数据集上,保持数据集默认的划分,CLAM-SB 的分类结果acc=0.837, auc=0.873;然而,在CLAM的论文中(“Data-efficient and weakly supervised computational pathology on whole-slide images”),CAMELYON16数据集上CLAM-SB的acc是0.936,这里面auc的差距极大,有6.3%,您能解释一下吗?

1

另外,我按论文里说的用CTransPath提取CAMELYON16特征,然后训练CLAM-SB,只是将feature_size改为768,得到的结果auc最好时的确是0.94左右,但acc最好时只有0.87左右,更换了seed也没有用。

您能帮忙解释一下这两个问题吗?

Xiyue-Wang commented 1 year ago

@Shentl 关于clam原文的结果为啥这么高,不晓得为啥,因为大家都没复现出来这么高过,你可以看看clam,transmil 都是如此,也许是clam加17的数据?你可以发邮件询问原文作者。 第二个用了,我们的特征,acc 是一个trad-off的值,可以根据阈值调整,主要还是看auc

Shentl commented 1 year ago

然而我按CLAM代码跑了一下auc的确会到0.935(会稳定一段时间)

Shentl commented 1 year ago

只是使用CAMELYON16,CALM论文里提到“ Our best model achieved a test AUC of 0.936 ”时也明确了是在CAMELYON16的270WSIs上训练,129WSIs测试的

Xiyue-Wang commented 1 year ago

然而我按CLAM代码跑了一下auc的确会到0.935(会稳定一段时间)

那就没问题

Xiyue-Wang commented 1 year ago

只是使用CAMELYON16,CALM论文里提到“ Our best model achieved a test AUC of 0.936 ”时也明确了是在CAMELYON16的270WSIs上训练,129WSIs测试的

这个就不晓得了,dsmil,transmil,所有人跑都没这么高过,你能达到这么高吗?

Xiyue-Wang commented 1 year ago

然而我按CLAM代码跑了一下auc的确会到0.935(会稳定一段时间)

用imgnet的特征的?

Shentl commented 1 year ago

是用的CLAM代码里的imagenet预训练的resnet50

Xiyue-Wang commented 1 year ago

是用的CLAM代码里的imagenet预训练的resnet50

那就不清楚了,你可以多看看其他的论文,我们没办法用imgnet达到这么高的,不晓得你咋达到的

Shentl commented 1 year ago

好吧,只能说很神奇

Shentl commented 1 year ago

是否是因为在CLAM获取CAMELYON的patch时不同的设置导致的结果差异,做了一下不同参数提取patch的实验,使用create_patches_fp.py的默认参数最后的auc就是0.89,使用 create_patches_fp.py --preset bwh_biopsy.csv来划分CAMELYON的patch,auc就有0.936

Shentl commented 1 year ago

Hi, 还有一个问题,我在TCGA-RCC数据集上用CTransPath预训练模型跑CLAM-SB的确能达到0.99左右的AUC,但ACC只有0.928,RCC数据集用于做3分类,无法像之前提到的那样调阈值来改变ACC

acc 是一个trad-off的值,可以根据阈值调整,主要还是看auc

所以想问一下论文中0.967的ACC是怎么来的呢?

ACNicotine commented 10 months ago

是否是因为在CLAM获取CAMELYON的patch时不同的设置导致的结果差异,做了一下不同参数提取patch的实验,使用create_patches_fp.py的默认参数最后的auc就是0.89,使用 create_patches_fp.py --preset bwh_biopsy.csv来划分CAMELYON的patch,auc就有0.936

实际上我用的默认参数提取特征后再用CLAM发布的模型去测试也达到了0.93的acc,auc记不太清了。也就是说和提取特征关系不大,不知道在训练的时候CLAM的作者用了什么trick,我自己跑的话一般acc只有0.84,auc只有0.90。