DBSCAN对具有相同属性的另一个数据集进行分类

Tucka"class=Tucka 成员职位:3.贡献我
2020年1月编辑 帮助

你好,

所以我的想法是用一个训练好的DBSCAN模型对对象进行分类。因此,如果来自testdataset的对象在模型的集群内或附近,则其标记为集群,并且当对象没有这样的集群时,它标记为未知或其他东西(我认为“?”是标签要去)。我使用“Apply Model”操作符来执行此操作,但这并没有按预期工作。它基本上检查是否有一个与训练数据集中相同的ID,如果是,对象将被标记为与训练集中的对象相同的集群。基本上,我尝试创建一个二项分类器。

所以我的问题是,有没有可能的方法来创建一个过程,实现这个想法,但没有预测算子(树,k-NN,…)?

我的想法是用“循环集群”检查每个集群,然后尝试检查从测试集到集群中的对象的每个对象(如cluser_0有10个对象,测试集有10个对象->循环运行100次),并将它们与距离测量(欧几里德距离)进行比较,如果结果低于阈值,那么来自测试集的对象将被标记为与之比较的集群。输出应该是标记的testdata。

什么好主意吗?和感谢

标记:

最佳答案

  • lionelderkrikor"class=lionelderkrikor 主持人,RapidMiner认证分析师,会员职位:1195年独角兽
    解决方案接受

    @Tucka

    您的第一个解决方案确实是不可能的,因为,先验地,RapidMiner的DBscan算法分类

    聚类中的所有数据:总之,没有“未标记数据”或“噪声”。

    我在这里强调了RapidMiner的这种行为(与Python的DBscan算法相比)线程今年年初:看看最后两篇文章,你会看到并理解多亏了插图(小图片比长演讲好。:cathappy:..)两种算法在行为上的区别。

    所以我可以提出一个基于Python脚本的缓和解决方案。(你可以在RapidMiner中实现和执行一些Python脚本…)

    实际上,给定DBscan算法的参数(min points / epsilon),满足这些条件的数据被DBscan Python算法在生成的聚类中“分类”,其他数据被分类为“未标记”…

    因此,为了执行任务,我们可以应用第一种方法(训练/应用DBscan),但使用Python的DBscan算法而不是RapidMiner的DBscan)。

    对于这个任务,你能分享你的数据集和你用来训练这个模型的DBscan的参数(min points / epsilon)吗?

    -我允许自己(再次)问我上面提到的问题:为什么RapidMiner的DBSCAN是集群所有数据?/为什么没有“未标记的”数据?

    注:如果我问这最后两个问题,是因为理解事物是如何运作的感觉很好。”(引用@earmijo在最近的一篇文章中…:smileyvery-happy:)

    问候,

    莱昂内尔

    sgenzer"class=

答案

  • Tucka"class=Tucka 成员职位:3.贡献我

    @lionelderkrikor

    谢谢你的蟒蛇点子!这几乎完成了任务,比快速挖掘器DBSCAN要好得多。


    正如您之前提到的,我已经看到rapidminer的DBSCAN将所有“未知”对象标记为密度不存在的群集。所以我有一些好看的星团,其中包括所有的物体,在我看来,是“未知的”,但也有很多物体是在密度基础上聚集的。

    目前我无法分享数据,很抱歉。但我可以这样描述它们,它是一个系统温度数据的时间序列,这些数据还包括系统状态的一些致命误差。所以我的任务是找到错误,并尝试通过DM自动检测它们。我从文献中选择的DM方法是使用DBSCAN进行轮廓线检测。

    感谢你,我现在可以在我的训练数据中检测大纲,但如果我试图验证模型python构建一个新模型,所以我做了一些研究,我的结论是DBSCAN算法无法从其他数据集中找到大纲。现在我已经实现了一个决策树来弥补这一点……这个解是有效的,虽然不像一般的分类器那么好但是,我可以把它写下来。


    所以谢谢你!

    “所以我的问题是,为什么RapidMiner的DBSCAN会对所有数据进行聚类,而不考虑epsilon / min点的设置?”

    是的,这是我想知道的事情!

    谢谢

  • Tucka"class=Tucka 成员职位:3.贡献我

    @lionelderkrikor

    我的问题是,为什么RapidMiner的DBSCAN会对所有数据进行聚类,而不管epsilon / min点的设置如何?

    答:https://docs.www.turtlecreekpls.com/latest/studio/operators/modeling/segmentation/dbscan.html

    rapitminer DBSCAN所做的是将“噪声”聚类到“cluster_0”中,我比较了两种DBSCAN算法的结果,它们几乎是相同的。

  • lionelderkrikor"class=lionelderkrikor 主持人,RapidMiner认证分析师,会员职位:1195年独角兽

    你好,

    不客气@Tucka

    很高兴你的工作进展顺利。

    当然,感谢您对RapidMiner的DBscan算法的行为的回答。

    注意:对于异常值检测,您在RapidMiner中有专门的操作员:

    Outlier_1.png"title=

    …在扩展中异常检测(从Marketplace安装):

    Outlier_2.png"title=

    良好的延续,

    问候,

    莱昂内尔

登录注册置评。