【问题标题】:For DBSCAN python, is it mandatory to do Standardization and normalization both?对于 DBSCAN python,是否必须同时进行标准化和规范化?
【发布时间】:2021-01-03 20:22:38
【问题描述】:

对于 DBSCAN 实现,是否需要将所有特征列标准化和标准化?

例如

[[ 664.      ,  703.      , 2901.069079],  
[ 632.      ,  717.      , 2901.069079],  
[ 606.      ,  740.      , 4386.449399],    
[ 635.      ,  751.      , 4386.449399],   
[ 672.      ,  525.      , 4760.874001]]

如果我必须对此进行 DBSCAN,是否必须先对其进行标准化,然后对其进行标准化?只是标准化它?

此外,这些值如何决定 eps 的选择?

【问题讨论】:

    标签: python opencv scikit-learn cluster-analysis dbscan


    【解决方案1】:

    规范化或标准化您的数据可能破坏数据集的重要属性。

    一些例子:

    • 您的数据是地理坐标。绝对不能将纬度和经度标准化或标准化
    • 您的数据是直方图。唯一有意义的归一化是使直方图的总和为 1。永远不要变换单个变量!
    • 您的数据有一个有意义的零。例如,它是货币价值。不过,使用 sgn(x)*sqrt(abs(x)) 进行转换在某些领域可能会有所帮助。
    • 您的数据稀疏。永远不要标准化。 (如果没有负值,归一化可能是“好的”。)

    不应该选择缩放比例“因为它总是完成”;但是由于您拥有的实际数据!选择它是因为它是正确的,而不是因为它是“默认”或在某些教程中。

    如果您求助于标准化或标准化,很可能您不了解您的数据,也不了解如何测量距离或相似性;然后人们喜欢使用规范化作为最后的手段来获得“一些”结果;但你永远不知道结果是否有意义。

    【讨论】:

    • 感谢您提供如此有意义的回答。我认为,“仅仅因为一些教程规范化,我应该做同样的事情”,在集群时是非常糟糕的思维方式。如果我们不对数据进行标准化/归一化,并且所有输入特征都在相同的尺度上,那么我们可以非常使用 DBSCAN 的 eps 值作为相同的单位并相应地选择值。再次感谢!
    猜你喜欢
    • 2017-04-05
    • 1970-01-01
    • 2023-01-20
    • 2021-05-28
    • 2013-03-08
    • 2015-11-26
    • 2011-03-22
    • 2014-01-15
    • 2018-12-12
    相关资源
    最近更新 更多