1. 聚类
对于聚类,关键一步是要告诉计算机怎样计算两个数据点的相似性,不同的算法需要的相似性是不一样的。
1.1. DBSCAN
1.1.1. DBSCAN原理
DBSCAN核心原理就是密度聚类的原理:寻找出稠密的地方,把它们当做一个簇,也就是密度相连的区域,我们把它当成一个簇。 “DBSCAN如何发现簇?”初始,给定数据集D中的所有对象都被为‘unvisited’。DBSCAN随机选择一个未访问的对象p,标记p为‘visited’,并检查p的e-领域是否至少包含MinPts个对象,如果不是,则p被标记为噪声点,否则为p创建一个新的簇C,并且把p的e-领域中的所有对象都放到候选集合N中。DBSCAN迭代地把N中不属于其它簇的对象添加到C中。在此过程中,对于N中标记为‘unvisited’的对象p‘,DBSCAN把它标记为’visited‘并且检查它的e-领域。如果p’的e-领域至少有MinPts个对象,则p‘的e-领域中的对象都被添加到N中。DBSCAN继续添加对象到C,知道C不能再扩展。
1.1.2 粗糙伪代码
radius=半径 points_num=邻近点数 p=随机质心点 c={} """ 以下注意:每次计算一次簇就要把数据剔除掉,用剩下的进行密度聚类 """ for 数据 in 数据集: num= 计算每个数据是否属于质心半径内数据数量 if num<points_num: 非质心 else: 计算簇内所有包含的数据