如何找到聚类算法的成功率?

Gur*_*zzi 13 python analysis cluster-analysis image-processing

我在图像数据集上实现了几种聚类算法.我有兴趣获得聚类的成功率.我必须检测肿瘤区域,在我知道肿瘤所在位置的原始图像中,我想比较两个图像并获得成功的百分比.以下图片:

原图:我知道癌症的位置

聚类算法后的图像

我正在使用python 2.7.

en_*_*ght 10

分割准确度

这是在图像分割文献中解决的非常常见的问题,例如,这里是StackOverflow帖子

一种常见的方法是考虑"正确像素"与"不正确像素"的比率,这在安全域的图像分割中是常见的,例如掩模RCNN,PixelNet.

将其视为对象检测任务的更多部分,您可以采用对象的船体重叠并仅测量精度(通常分解为精度,回忆,f分数和其他具有各种偏差/偏斜的度量).这允许您生成可以针对误报/漏报校准的ROC曲线.

关于什么是正确的,没有与领域无关的共识.KITTI提供两者.

掩码RCNN是开源的最新技术,它提供了python中的实现

在您的域名(医学)中,适用标准统计规则.使用保留集.交叉验证.等(*)

注意:虽然文献空间非常大,但我要提醒你看一些与领域相关的论文,因为他们可能比其他愿景(数字识别,例如)项目接受更少的"统计捷径".


蟒蛇

除了上面的掩码rcnn链接,scikit-learn提供了一些非常用户友好的工具,并被认为是python的标准科学"堆栈"的一部分.

在python中实现图像之间的差异是微不足道的(使用numpy).这是一个矫枉过正的SO链接.

python中的边界框交集很容易实现 ; 如果你想测量一般的多边形交叉点,我会使用像形状一样的库.

Scikit-learn有一些不错的机器学习评估工具,例如,


文献检索

您可能无法搜索答案的一个原因是因为您试图在监督学习领域中测量无监督方法的性能,聚类."集群"在数学上基本上没有定义(**).您希望查看有关准确性度量的监督学习文献.

还有关于无监督学习/聚类的文献,一般来说,它寻找拓扑结构.这是一个非常介绍性的总结.我不认为这就是你想要的.

一个常见的问题,特别是在规模上,是监督方法需要标签,这对于精确生成密集分割而言可能是耗时的.物体检测使其更容易一些.

有一些现有的医学数据集([1],[2],例如)和一些正在进行的无标签指标研究.如果这些都不适合您,那么您可能不得不将其视为无监督问题,但评估范围和实用性会有很大差异.


脚注

[*]视觉人有时会跳过交叉验证,即使他们不应该,主要是因为模型适应慢,而且他们是一堆懒惰.请不要跳过火车/测试/验证拆分,否则您的结果可能会非常危险

[**]您可以找到各种"正式"定义,但绝不会有两个人同意哪一个是正确的或最有用的.这是更密集的阅读

  • 很好的答案.我不确定还有什么要补充的! (2认同)