代码之家  ›  专栏  ›  技术社区  ›  Annalix

如何在应用DBSCAN之前将时间戳、数据时间转换为数字

  •  0
  • Annalix  · 技术社区  · 6 年前

    我正在准备数据集以应用DBSCAN群集。在此之前,我需要将所有功能转换为数字,以便使用StandardScaler()。我的问题是,我正在与时间戳和数据时间进行斗争。我去掉了day和timestamp列,只留下了以秒为单位的时间列,看起来是整数。然而,我仍然会遇到如下错误

    X=StandardScaler()。fit\u变换(X)
    TypeError:float()参数必须是字符串或数字,而不是“Timestamp”

    提前多谢了

     duration             float64
     power                float64
     duration_2           float64
     duration_2_energy    float64
     time2                int64
     dtype: object
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Has QUIT--Anony-Mousse    6 年前

    不要标准缩放所有内容。与其说这是个好主意,不如说这是个坏主意。因为爱你 摧毁 信息

    相反,请阅读 广义DBSCAN DBSCAN作者。它展示了如何正确使用更复杂的数据。

    Sander,Jörg;Ester,Martin;Kriegel,Hans Peter;徐晓伟(1998)。
    空间数据库中基于密度的聚类算法GDBSCAN及其应用 .
    数据挖掘和知识发现。柏林:斯普林格·维拉格。2 (2): 169–194. 内政部:10.1023/A:1009745219419。

    在这里,你可能想 使用多个ε阈值 . 例如,您希望在一天的某个时间设置一个阈值,并在数字属性上设置一个附加阈值。