如何在应用 DBSCAN 之前将时间戳、日期时间转换为数字
How convert timestamp, datatime to number before to apply 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
不要对所有内容进行标准缩放。坏主意多于好主意。因为你破坏信息。
相反,请阅读 DBSCAN 作者关于 generalized DBSCAN 的文章。它展示了如何正确使用更复杂的数据。
Sander, Jörg; Ester, Martin; Kriegel, Hans-Peter; Xu, Xiaowei (1998).
Density-Based Clustering in Spatial Databases: The Algorithm GDBSCAN and Its Applications.
Data Mining and Knowledge Discovery. Berlin: Springer-Verlag. 2 (2): 169–194. doi:10.1023/A:1009745219419.
在这里,您可能想要使用多个 epsilon 阈值。例如,您想要一个关于一天中的时间的阈值,以及一个关于数字属性的附加阈值。
我正在准备我的数据集以应用 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
不要对所有内容进行标准缩放。坏主意多于好主意。因为你破坏信息。
相反,请阅读 DBSCAN 作者关于 generalized DBSCAN 的文章。它展示了如何正确使用更复杂的数据。
Sander, Jörg; Ester, Martin; Kriegel, Hans-Peter; Xu, Xiaowei (1998).
Density-Based Clustering in Spatial Databases: The Algorithm GDBSCAN and Its Applications.
Data Mining and Knowledge Discovery. Berlin: Springer-Verlag. 2 (2): 169–194. doi:10.1023/A:1009745219419.
在这里,您可能想要使用多个 epsilon 阈值。例如,您想要一个关于一天中的时间的阈值,以及一个关于数字属性的附加阈值。