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

时间:2018-02-21 11:44:24

标签: pandas cluster-analysis dbscan

我正在准备我的数据集以应用DBSCAN群集。在此之前,我需要将所有功能转换为数字才能使用StandardScaler()。我的问题是我正在与时间戳和数据时间作斗争。我删除了日期和时间戳列,只留下了时间列,显示为整数秒。但是我仍然得到像

这样的错误

X = StandardScaler()。fit_transform(X)
TypeError:float()参数必须是字符串或数字,而不是'Timestamp'

提前多多感谢

 duration             float64
 power                float64
 duration_2           float64
 duration_2_energy    float64
 time2                int64
 dtype: object

1 个答案:

答案 0 :(得分:1)

不要标准缩放一切。这通常是一个坏主意而不是一个好主意。因为eyou 销毁信息。

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

  

Sander,Jörg;埃斯特,马丁; Kriegel,Hans-Peter;徐小伟(1998)。
空间数据库中基于密度的聚类:算法GDBSCAN及其应用
数据挖掘和知识发现。柏林:Springer-Verlag。 2(2):169-194。 DOI:10.1023 / A:1009745219419

在这里,您可能希望使用多个epsilon阈值。例如,您需要一天的时间阈值,以及数字属性的附加阈值。