cba*_*ake 4 cluster-analysis machine-learning data-mining dbscan
我正在查看具有lat,lng和事件日期/时间的数据点.我在查看聚类算法时遇到的算法之一是DBSCAN.虽然它在聚类lat和lng时可以正常工作,但我担心的是在合并时间信息时它会分崩离析,因为它不是相同比例或相同类型的距离.
将时态数据合并到DBSCAN算法中有哪些选择?
查看同一作者的广义DBSCAN.
桑德,约尔格; 埃斯特,马丁; Kriegel,Hans-Peter; 徐小伟(1998). 空间数据库中基于密度的聚类:GDBSCAN算法及其应用.数据挖掘和知识发现(柏林:Springer-Verlag)2(2):169-194.DOI:10.1023/A:1009745219419.
对于(广义)DBSCAN,您需要两个功能:
findNeighbors - 从数据库中获取所有"相关"对象
corePoint - 确定此集是否足以启动集群
然后你可以反复找到邻居来增长集群.
功能1是您想要挂钩的地方,例如通过使用两个阈值:一个是地理的,一个是时间的(即在100英里内,在1小时内).
tl;dr,您将必须修改您的功能集,即缩放日期/时间以匹配地理数据的大小。
DBSCAN 的输入只是一个向量,算法本身并不知道一个维度(时间)比另一个维度(距离)大或小几个数量级。因此,在计算数据点的密度时,缩放比例的差异会搞砸。
现在我想你可以修改算法本身以区别对待不同的维度。这可以通过更改两点之间“距离”的定义来完成,即提供您自己的距离函数,而不是使用默认的欧几里德距离。
不过,恕我直言,更容易做的事情是缩放一个维度以匹配另一个维度。只需将您的时间值乘以固定的线性因子,以便它们与地理值处于相同的数量级,您就可以开始了。
更一般地说,这是特征选择过程的一部分,这可以说是解决任何机器学习算法的最重要部分。选择正确的功能,并正确地转换它们,那么您就已经成功了一半。
| 归档时间: |
|
| 查看次数: |
1632 次 |
| 最近记录: |