# Spatio-temporal Clustering
## 1 介绍
### 1.1 数据介绍
* data/cluster_time:按时间顺序排列的用户行为轨迹
* data/cluster_unix_time:按时间顺序(时间已经转换为时间戳)排列的用户行为轨迹
* data/cluster_unix_time:按时间顺序(时间约束隐含,没有时间字段)排列的用户行为轨迹
* data/cluster_unix_time_indoor:按时间顺序(时间已经转换为时间戳)排列的室内用户行为轨迹,存在楼层ID(存在时间连续,楼层不同的簇集,即1楼与4楼形成两个簇)
### 1.2 聚类算法
* MYDBSCAN:基于密度的聚类DBSCAN(Density-Based Spatial Clustering of Applications with Noise)算法的底层实现
* MYAP:基于划分的聚类AP(Affinity Propagation Clustering Algorithm )算法的底层实现--近邻传播聚类算法
* Adaptive-DBSCAN:自适应的基于密度的空间聚类(Adaptive Density-Based Spatial Clustering of Applications with Noise)算法的底层实现
* MYOPTICS:基于密度的聚类OPTICS(Ordering points to identify the clustering structure)算法的底层实现
* MYKMeans:基于划分的聚类KMeans算法的底层实现
* MYCFSFDP:基于划分和密度的聚类CFSFDP(Clustering by fast search and find of density peaks)算法的底层实现
### 1.3 时空聚类算法
* ST-DBSCAN:基于DBSCAN改造的时空聚类算法
* Indoor-STDBSCAN:基于DBSCAN改造的室内时空聚类算法,添加了时间约束、楼层约束,以及簇集的合并延时间轴前进不会后退
* ST-OPTICS:基于OPTICS改造的时空聚类算法
* ST-CFSFDP:基于CFSFDP改造的时空聚类算法
* ST-AGNES_DIS:基于凝聚层次聚类(AGNES)改造的时空聚类算法(用距离做阈值,自动生成聚类个数)
* ST-AGNES_SUM:基于凝聚层次聚类(AGNES)改造的时空聚类算法(使用聚类个数做阈值)
* Indoor-STAGNES_DIS:基于凝聚层次聚类(AGNES)改造的室内时空聚类算法(用距离做阈值,自动生成聚类个数)-引入了时间窗口与楼层阈值
* Indoor-STAGNES_NUM:基于凝聚层次聚类(AGNES)改造的室内时空聚类算法(使用聚类个数做阈值)-引入了时间窗口与楼层阈值
* WKM:WKM(Warped K-Means)基于K-Means改造的时空聚类算法(使用聚类个数做阈值)
## 2 算法原理
### 2.1在本实例中,如果想将代码直接运行需注意以下几点:
* Python版本3.X(本人使用的是Python 3.6)
* numpy版本 1.13.3(其他版本未实验)
* scipy版本 0.19.1(其他版本未实验)
* matplotlib版本 2.1.0(其他版本未实验)
### 2.2 空间聚类算法及时空聚类算法学习教程
#### (1)[Python之向量(Vector)距离矩阵计算](https://blog.csdn.net/LoveCarpenter/article/details/85048291)
#### (2)[聚类算法之K-means算法](https://blog.csdn.net/LoveCarpenter/article/details/85048822)
#### (3)[聚类算法之DBSCAN算法](https://blog.csdn.net/LoveCarpenter/article/details/85048944)
#### (4)[聚类算法之OPTICS算法](https://blog.csdn.net/LoveCarpenter/article/details/85049135)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
聚类 主要思想: 聚类算法要把M个数据点按照分布分成K类(很多算法的K是人为提前设定的)。我们希望通过聚类算法得到 K个中心点,以及每个数据点属于哪个中心点的划分。 中心点可以通过迭代算法来找到,满足条件:所有的数据点到聚类中心的距离【L2距离】之和是最小的。 中心点确定后,每个数据点属于离它最近的中心点。 如何寻找中心点? 采用 EM算法 迭代确定中心点。流程分两步: ① 更新中心点:初始化的时候以随机取点作为起始点;迭代过程中,取同一类的所有数据点的重心(或质心)作为新中心点② 分配数据点:把所有的数据点分配到离它最近的中心点。 重复上面的两个步骤,一直到中心点不再改变为止。 优点: 简单易用 缺点: 1:中心点是所有同一类数据点的质心,所以聚类中心点可能不属于数据集的样本点。 2:计算距离时我们用的是L2距离的平方。对离群点很敏感,噪声(Noisy Data)和离群点(Outlier)会把中心点拉偏,甚至改变分割线的位置。 3:对初始化敏感,初始化点是随机点
资源推荐
资源详情
资源评论
收起资源包目录
使用numpy实现的聚类算法(包括时空聚类算法).zip (21个子文件)
新建文本文档.txt 1KB
Spatio-temporal-Clustering-master
ST_DBSCAN.py 3KB
MYKMeans.py 3KB
WKM.py 5KB
MYDBSCAN.py 3KB
data
cluster_unix_time_indoor.csv 11KB
cluster_unix_time.csv 12KB
cluster_time.csv 12KB
cluster.csv 7KB
ST_AGNES_DIS.py 8KB
Indoor_STAGNES_NUM.py 8KB
Indoor_STDBSCAN.py 5KB
MYCFSFDP.py 7KB
ST_AGNES_NUM.py 7KB
Indoor_STAGNES_DIS.py 8KB
MYAP.py 6KB
MYOPTICS.py 5KB
ST_OPTICS.py 5KB
ST_CFSFDP.py 8KB
README.md 3KB
Adaptive_DBSCAN.py 3KB
共 21 条
- 1
资源评论
野生的狒狒
- 粉丝: 2646
- 资源: 2167
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功