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



对于DBSCAN实现,是否需要对所有功能列进行标准化和规范化?

例如

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

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

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

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

一些例子:

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

选择缩放不应该被完成";因为它总是"完成"的;;但因为你有实际的数据!选择它是因为它是正确的,而不是因为它是"默认";或者在一些教程中。

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

最新更新