对于DBSCAN python,是否必须同时进行标准化和标准化?

问题描述

对于DBSCAN实施,是否必须将所有功能列标准化并标准化?

例如

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

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

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

解决方法

标准化或标准化数据可以破坏数据集的重要属性。

一些例子:

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

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

如果您要归一化或标准化,很可能您不了解自己的数据,也不了解如何测量距离或相似性;然后人们喜欢使用归一化作为最后的手段;但是你永远都不知道结果是否有意义。