我正在准备我的数据集以应用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
答案 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阈值。例如,您需要一天的时间阈值,以及数字属性的附加阈值。