发明名称 一种面向大数据的分布式密度聚类方法
摘要 一种面向大数据的分布式密度聚类方法,包括如下步骤:步骤一:虚拟化环境、搭建Hadoop平台;步骤二:数据预处理与加载:从数据库中将原始数据表抽取,利用sqoop–query命令截取需要的字段,将预处理后的数据直接抽取到Hdfs中;步骤三:计算距离矩阵;步骤四:计算截止距离与点密度;步骤五:计算点与较高密度点的最小距离;步骤六:临界密度点临界距离以及聚类中心;步骤七:点进行聚类,得到最终的聚类结果;步骤八:剔除离群点。本发明在处理大数据集时快速有效,并具备输入参数对聚类结果的鲁棒性较好的效果。
申请公布号 CN104615638A 申请公布日期 2015.05.13
申请号 CN201410687507.9 申请日期 2014.11.25
申请人 浙江银江研究院有限公司 发明人 王兴武;李建元;赵贝贝
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 杭州斯可睿专利事务所有限公司 33241 代理人 王利强
主权项 一种面向大数据的分布式密度聚类方法,其特征在于:所述聚类方法包括如下步骤:步骤一:虚拟化环境、搭建Hadoop平台;步骤二:数据预处理与加载从数据库中将原始数据表抽取,利用sqoop‑query命令截取需要的字段,将预处理后的数据直接抽取到Hdfs中;步骤三:计算距离矩阵<img file="FDA0000615941670000011.GIF" wi="1444" he="212" />A<sub>i</sub>={d<sub>i1</sub> … d<sub>in</sub>}=a<sub>i</sub>·{a<sub>1</sub> … a<sub>n</sub>}={|a<sub>i</sub>·a<sub>1</sub>| … |a<sub>i</sub>·a<sub>n</sub>|}  (2)其中,a<sub>i</sub>代表点的坐标(1≤i≤N),N为点集合的总数,A<sub>i</sub>为距离矩阵的第i行距离向量,R为地球半径,,a<sub>i</sub>、a<sub>j</sub>为球面上的两点、球面坐标为a<sub>i</sub>(x<sub>1</sub>,y<sub>1</sub>),B(x<sub>2</sub>,y<sub>2</sub>),x<sub>1</sub>、x<sub>2</sub>∈[‑π,π],y<sub>1</sub>、y<sub>2</sub>∈[‑π/2,π/2];在计算距离矩阵的第i行时,向量A<sub>i</sub>中所有的|a<sub>i</sub>·a<sub>j</sub>|(1≤j≤N)都会用到相同起始点a<sub>i</sub>和整个数据集的所有点{a<sub>j</sub>|1≤j≤N};|a<sub>i</sub>·a<sub>j</sub>|=R·arccos[cosy<sub>1</sub>cosy<sub>2</sub>cos(x<sub>1</sub>‑x<sub>2</sub>)+siny<sub>1</sub>siny<sub>2</sub>]  (3)步骤四:计算截止距离与点密度4.1)计算截止距离截至距离d<sub>c</sub>为距离集合降序排列的20%的位置处的距离即:d<sub>c</sub>=D([N*0.2]);其中,D为计算所得的距离{d<sub>ij</sub>|1≤i,j≤N}的降序排列集合,N为点的总数,[]为取整函数;4.2)计算点密度ρ点密度ρ<sub>i</sub>为点i与其他所有点的距离小于截止距离d<sub>c</sub>的个数;在Map过程中将同一行的元素集中在相同Key中,将每个小于d<sub>ij</sub>的元素化成常数‘1’加入到key值为i的value里;Reduce过程中对key值i对应的Values里的元素进行累加就得到各点的密度ρ<sub>i</sub>;步骤五:计算点与较高密度点的最小距离δ<sub>i</sub>δ<sub>i</sub>为i与其高局部密度点的最小距离,计算δ<sub>i</sub>的公式如下:δi=min{d<sub>ij</sub>|ρ<sub>i</sub><ρ<sub>j</sub>},最大Max(ρ<sub>i</sub>)点所对应的δ=Max(d<sub>ij</sub>),包括如下步骤:5.1)对ρ<sub>i</sub>进行降序排序,得到对应i的排序后的集合{i}<sub>decrby</sub>p<sub>i</sub>;5.2)利用i对应的{j|ρ<sub>i</sub><ρ<sub>j</sub>},得到i点的δi计算所需要的d的角标集合{ij|ρ<sub>i</sub><ρ<sub>j</sub>};5.3)计算角标集合中对应d<sub>ij</sub>的最小值,由{ij|ρ<sub>i</sub><ρ<sub>j</sub>},距离集合{d<sub>ij</sub>1≤i,j≤N}得到计算δi所需要的{d<sub>ij</sub>|ρ<sub>i</sub><ρ<sub>j</sub>};并且记录当δi=min{d<sub>ij</sub>|ρi<ρj}成立时所对应的j值;其中,d<sub>ij</sub>为点i与点j的距离,ρ<sub>i</sub>代表点i与其他所有点的距离小于d<sub>c</sub>的个数,ρ<sub>j</sub>代表点j与其他所有点的距离小于d<sub>c</sub>的个数,N为点的总个数;步骤六:临界密度点临界距离以及聚类中心6.1)临界密度点ρ<sub>0</sub>、临界距离δ<sub>0</sub>临界密度点ρ<sub>0</sub>为{ρ<sub>i</sub>}是密度从大到小后的排列的第C个点,临界距离δ<sub>0</sub>是集合{δ<sub>i</sub>}从大到小后的排列的第C个点,我们对{ρ<sub>i</sub>}从小到达的排序,然后取点{ρ<sub>i</sub>|i=C}的点作为ρ<sub>0</sub>,对{δ<sub>i</sub>},我们进行从小到达的排序,然后取点{δ<sub>i</sub>|i=C}的点作为δ<sub>0</sub>;其中,ρ<sub>i</sub>代表点i与其他所有点的距离小于d<sub>c</sub>的个数,δ<sub>i</sub>为i与其高局部密度点的最小距离,C为固定常数;6.2)判定i是否为聚类中心分别判断i与之对应的ρ<sub>i</sub>>ρ<sub>0</sub>,δ<sub>i</sub>>δ<sub>0</sub>是否成立,若都成立则点i为聚类中心;判断所有的点后得到聚类中心集合M={i|ρ<sub>i</sub>>ρ<sub>0</sub>,δ<sub>i</sub>>δ<sub>0</sub>};步骤七:点进行聚类顺序取{(i,j)}的点,判断i是否为聚类中心,如果属于则判断下个点,如果不属于判断(i,j)的j是否属于聚类中心,如果属于则i为j类,如果不属于判断i=j点对应的j是否属于聚类中心,循环后会得到最终的聚类结果,其中i为点编号,j为当δ<sub>i</sub>=min{d<sub>ij</sub>|ρ<sub>i</sub><ρ<sub>j</sub>}成立时所对应的值,{(i,j)}代表(i,j)按照ρ<sub>i</sub>从大到小排列。
地址 310012 浙江省杭州市西湖区益乐路223号1幢1层101室