【问题标题】:How to find the success rate of a clustering algorithm?如何找到聚类算法的成功率?
【发布时间】:2019-01-02 15:14:51
【问题描述】:

我已经在图像数据集上实现了几种聚类算法。 我对得出聚类的成功率很感兴趣。我要检测肿瘤区域,在原始图像中我知道肿瘤的位置,我想比较两个图像并获得成功百分比。 以下图片:

原图:我知道癌症的位置

聚类算法后的图像

我使用的是 python 2.7。

【问题讨论】:

标签: python image-processing cluster-analysis analysis


【解决方案1】:

分割准确度

这是图像分割文献中解决的一个非常常见的问题,例如,here is a StackOverflow post

一种常见的方法是考虑“正确像素”与“错误像素”的比率,这在图像分割中很常见,用于安全域,例如Mask RCNNPixelNet

将其更多地视为对象检测任务,您可以获取对象外壳的重叠部分并仅测量accuracy(通常分为precision, recallf-score、和其他措施various bias/skews)。这允许您生成一个可以针对误报/误报进行校准的ROC curve

对于什么是正确的,没有与领域无关的共识。 KITTI provides both.

Mask RCNN 是最先进的开源技术,并提供实现 在python中

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

注意:虽然文献空间大得吓人,但我还是提醒您看看一些与领域相关的论文,因为它们可能比其他愿景需要更少的“统计捷径”(数字识别例如)项目接受。


Python

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

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

python中的边界框交集is easy to implement on one's own;我会使用像shapely if you want to measure general polygon intersection 这样的库。

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


文献检索

您在寻找答案时可能遇到困难的一个原因是您正在尝试在 监督学习 领域中衡量一种无监督方法(聚类)的性能。 “集群”在数学中基本上没有定义(**)。您想查看监督学习文献以了解准确度。

也有关于无监督学习/聚类的文献,通常会寻找拓扑结构。 Here's a very introductory summary。我认为这不是你想要的。

一个常见的问题,特别是在规模上,是监督方法需要标签,对于密集分割可以是time consuming to produce accurately。物体检测makes it a little easier.

有一些现有的医学数据集(例如[1][2])和some ongoing research in label-less metrics。如果这些都不适合您,那么您可能不得不重新考虑将其视为无监督问题,但评估的范围和效用会变得非常不同。


脚注

[*] 有远见的人有时会跳过交叉验证,即使他们不应该这样做,主要是因为模型拟合速度很慢而且他们是一群懒惰的人。 请不要跳过train/test/validation split,否则您的结果可能毫无用处

[**] 你可以找到各种各样的“正式”定义,但从来没有两个人就哪一个是正确的或最有用的达成一致。 Here's denser reading

【讨论】:

  • 很好的答案。我不确定还有什么要补充的!
猜你喜欢
  • 2015-01-21
  • 2019-08-17
  • 1970-01-01
  • 2020-11-19
  • 2019-04-09
  • 2017-04-07
  • 2017-05-06
  • 2018-09-03
  • 1970-01-01
相关资源
最近更新 更多