|
|
@ -1,3 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 必备数学基础
|
|
|
|
# 必备数学基础
|
|
|
|
|
|
|
|
|
|
|
|
### 高等数学基础
|
|
|
|
### 高等数学基础
|
|
|
@ -1307,3 +1309,51 @@ https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/可视化网站
|
|
|
|
- B,C: 边界点
|
|
|
|
- B,C: 边界点
|
|
|
|
- N: 离群点
|
|
|
|
- N: 离群点
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### DBSCAN工作流程
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 参数D:输入数据集
|
|
|
|
|
|
|
|
- 参数∈:指定半径
|
|
|
|
|
|
|
|
- MinPts:密度阈值
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. 标记所有对象为 unvisited;
|
|
|
|
|
|
|
|
2. Do;
|
|
|
|
|
|
|
|
3. 随机选择一个 unvisited 对象 p;
|
|
|
|
|
|
|
|
4. 标记 p 为visited;
|
|
|
|
|
|
|
|
5. If p 的∈-领域至少有 MinPts 个对象;
|
|
|
|
|
|
|
|
6. 创建一个新簇C,并把 p 添加到C;
|
|
|
|
|
|
|
|
7. 令 N 为 p 的∈-领域中的对象集合;
|
|
|
|
|
|
|
|
8. For N中每个点p
|
|
|
|
|
|
|
|
9. If p 是 unvisited;
|
|
|
|
|
|
|
|
10. 标记 p 为 visited;
|
|
|
|
|
|
|
|
11. If p 的∈-领域至少有 MinPts 个对象,把这些对象添加到N;
|
|
|
|
|
|
|
|
12. 如果p还不是任何簇的成员,把p添加到C;
|
|
|
|
|
|
|
|
13. End for;
|
|
|
|
|
|
|
|
14. 输出C;
|
|
|
|
|
|
|
|
15. Else 标记 p 为噪声;
|
|
|
|
|
|
|
|
16. Until 没有标记为 unvisited 的对象;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
参数选择:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 半径∈,可以根据K距离开设定:找突变点
|
|
|
|
|
|
|
|
- k距离:给定数据集P={p(i);i=0,1,...n},计算点P(i)到集合D的子集S中所有点之间的距离,距离按照从小到大的顺序排序,d(k)就被称为k-距离。
|
|
|
|
|
|
|
|
- MinPts:k-距离中k的值,一般取得小一些,多次尝试
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
优势:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 不需要指定簇个数
|
|
|
|
|
|
|
|
- 可以发现任意形状得簇
|
|
|
|
|
|
|
|
- 擅长找到离群点(检测任务)
|
|
|
|
|
|
|
|
- 两个参数就够了
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
劣势:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 高维数据有些困难(可以降维)
|
|
|
|
|
|
|
|
- 参数难以选择(参数对结果得的影响非常大)
|
|
|
|
|
|
|
|
- Sklearn中效率慢(数据消减策略)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
如下两图:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|