CN106649456A - 基于多智能体进化的聚类和离群点检测方法 - Google Patents
基于多智能体进化的聚类和离群点检测方法 Download PDFInfo
- Publication number
- CN106649456A CN106649456A CN201610846226.2A CN201610846226A CN106649456A CN 106649456 A CN106649456 A CN 106649456A CN 201610846226 A CN201610846226 A CN 201610846226A CN 106649456 A CN106649456 A CN 106649456A
- Authority
- CN
- China
- Prior art keywords
- intelligent body
- cluster
- data
- outlier
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2216/00—Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
- G06F2216/03—Data mining
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于多智能体进化的聚类和离群点检测方法,本发明主要解决现有传统的基于聚类的离群点检测算法在不同密度的数据集上,对高效率数据聚类的离群点检测的问题。其实现步骤是:1、初始化;2、对每个智能体执行K‑means聚类算法;3、计算智能体的能量;4、执行邻域竞争算子;5、执行邻域交叉算子;6、执行变异算子;7、执行K‑means聚类算法;8、执行自学习算子;9、更新全局最优智能体;10、离群点检测;11、得到判定结果;12、输出离群点数据;13、输出带类别的数据点。本发明在不同的密度数据,有效地提高了聚类效率,离群点检测精度,减少计算时间,可应用于不同密度的数据集。
Description
技术领域
本发明属于计算机数据处理技术领域,更进一步涉及数据聚类和离群点检测技术领域中一种基于多智能体进化的聚类和离群点检测方法。本发明采用多智能体进化和局部离群点检测的技术,有利于提高聚类划分和离群点检测精度。本发明可用于自然数据的聚类和离群点检测。
背景技术
离群点检测和聚类分析是数据挖掘和知识发现的一个重要研究领域。在实际应用中,离群点检测被广泛地应用到各个领域,如欺骗***检测、侵入检测、网络和视频监控、天气预报。离群点的本质是由不同于一般的机制原理生成的现象,也被叫为异常点、孤立点。离群点检测在实际用中往往比一般数据检测更有价值,例如在机器故障检测,医疗诊断,欺诈检测,通常出现异常现象的数据点较少,正常运行的数据点较多。目前,离群点挖掘作为数据挖掘的一个热门研究方向,已经引起了很多学者的关注。
钱光超,贾瑞玉,张然和李龙澍在其发表的论文“基于遗传聚类算法的离群点检测”(工程优化与应用1002-833(2008)11-0155-03)中提出了一种基于遗传聚类的离群点检测算法。该方法的核心是结合了遗传算法全局搜索的优点和K-均值方法具有局部收敛速度快的特点。具体的做法是首先聚类所有数据点,然后评估每个对象属于簇的程度,如果删除一个对象导致该目标的显著改进,则可将该对象划为离群点。该方法存在的不足之处是:遗传算法容易陷入局部最优的情况,使得最终的划分解并不是最优解,稳定性不高。
张强,王春霞,赵健,武龙举和李静永在其发表的论文“基于聚类和局部信息的离群点检测算法”(吉林大学学报章编号:1671-5489(2012)06-1214-04)中提出了一种基于聚类和局部信息的两阶段离群点检测算法。该方法通过定义新的局部离群因子作为判断数据对象是否为离群点的衡量标准。具体的做法是:先采用k-means聚类算法对数据集进行聚类的到k个簇;然后对每个簇进行分析,找出离群点。每个离群点的确定方法是先通过计算簇中各关节点的局部离群因子,并记录每个簇中离群因子值最大的一个,再从簇中删除,然后重新计算直到离群点的个数达到指定个数离群点为止。该方法采用k-means聚类算法对数据集进行聚类,虽然k-means算法比较简单,但是,该方法仍然存在的不足之处是,划分数据效率不高,收敛速度慢;一旦某个数据点被认为是离群点就不能在下一代执行,导致该算法准确率降低。
Lian Duan,Lida Xu,Ying Liu和Jun Lee在其发表的论文“Cluster-basedoutlier detection”(Springer Science&Business Media,pp.151-168,2009)中提出了一种基于聚类的离群点检测算法。该方法采用LDBSCAN算法进行聚类和LOF算法检测离群点。具体的做法是:先采用LDBSCAN算法进行聚类,然后进行计算每个对象的基于聚类利群因子,一个被认为是一个离群点仅当它偏离它的最近的邻域点。该方法存在的不足之处是,在算法中,参数需要有经验的研究者设置,计算量比较高(N×N),使得算法执行时间长,效率不高。
发明内容
本发明的目的在于克服上述已有技术的不足,提出一种基于多智能体进化的聚类和离群点检测方法,以提高离群点检测的精度,减少计算时间,同时改善数据聚类的效率。
实现本发明目的的具体思路是:利用多智能体进化算法和K-means聚类算法对输入数据集进行聚类。从多智能体网格中找到最优的智能体,根据最优智能体中所分配的类,再利用局部离群程度计算方法计算数据点的离群程度值。
实现本发明目的的具体步骤如下:
(1)初始化:
(1a)从待检测数据集中随机选择满足智能体的聚类个数,对网格中的每个智能体进行实数编码,每个智能体代表一条染色体,每个聚类中心的位置代表一个基因,完成网格的初始化;
(1b)将待检测数据集中的所有点设定为非离群点;
(1c)将离群点数据集设定为空集;
(1d)将初次迭代次数设定为0,最大迭代次数设定为100;
(2)对每个智能体执行K-means聚类算法:
(2a)从待检测数据集中任选一个点作为待计算点;
(2b)利用欧式距离公式,计算待计算点到每一个聚类中心的距离;
(2c)将每一个待检测数据集中的点,分配到与聚类中心距离最近的类;
(2d)判断是否选完待检测数据集中所有的点,若是,执行步骤(3),否则,则执行步骤(2a);
(3)计算智能体的能量:
(3a)按照适应度计算公式,计算每个智能体的适应度值,将每个智能体的适应度值作为该智能体的能量;
(3b)将网格上搜索到能量最大的智能体,作为全局最优智能体;
(4)执行邻域竞争算子:
(4a)利用智能体更新方法,对网格中的每个智能体进行更新,获得新的智能体;
(4b)将新的智能体的能量和周围能量最大的智能体的能量进行比较,用二者中能量大的智能体代替原来的智能体;
(5)执行邻域交叉算子:
对网格中的每个智能体执行邻域交叉算子,获得邻域交叉后的智能体;
(6)执行变异算子:
对网格中的每个智能体执行变异算子,获得变异后的智能体;
(7)执行K-means聚类算法:
(7a)从邻域交叉后的智能体和变异后的智能体任选一个智能体,作为待聚类的智能体;
(7b)利用欧式距离公式,计算每一个非离群点到待聚类的智能体中每一个聚类中心的距离;
(7c)将每一个非离群点分配到该点与待聚类的智能体的聚类中心距离最近的类;
(7d)利用适应度计算公式,计算待聚类的智能体的能量;
(7e)判断是否选完所有邻域交叉后的智能体和变异后的智能体,若是,执行步骤(8),否则,执行步骤(7a);
(8)执行自学习算子:
(8a)从当前网格中找出能量最大的智能体,作为当前最优智能体;
(8b)将自学习算子的初次迭代次数设定为0;
(8c)利用智能体更新方法,对当前最优智能体进行更新,得到临时最优智能体;
(8d)利用欧式距离公式,计算每一个非离群点到临时最优智能体中每一个聚类中心的距离;
(8e)将每一个非离群点分配到该点与临时最优智能体的聚类中心距离最近的类;
(8f)利用适应度计算公式,计算临时最优智能体的能量;
(8g)将临时最优的智能体赋予当前最优智能体;
(8h)判断当前自学习算子的迭代次数是否大于10,若是,则执行步骤(8k),否则,执行步骤(8j);
(8j)将自学习算子的迭代次数加1,执行步骤(8c);
(8k)输出当前最优智能体;
(9)更新全局最优智能体:
(9a)将当前最优智能体和全局最优智能体能量大的智能体赋予临时全局最优智能体;
(9b)将临时全局最优的智能体赋予全局最优的智能体,作为下一代的全局最优智能体;
(9d)将所有待检测的数据点设定为非离群点;
(9e)清空离群点数据集;
(9f)利用欧式距离公式,计算每一个非离群点到全局最优智能体中聚类中心的距离;
(9g)根据全局最优智能体中聚类的中心位置,将每一个非离群点分配到与全局最优智能体中聚类中心距离最近的类;
(10)检测离群点:
(10a)采用局部离群程度计算方法,计算全局最优智能体中的聚类中的每一个点的局部离群程度值;
(10b)将全局最优智能体中的聚类中的每一个带类别和局部离群程度值的点存入到临时待排序数据集中;
(10c)将临时待排序数据集中的点的局部离群程度值,按从大到小的顺序进行排序;
(10d)根据待检测数据集中的离群点的个数,将临时待排序数据集中的排在最前的相应的离群点的个数标注为离群点,并存入离群点数据集中;
(11)判断当前的迭代次数是否大于最大迭代次数,若是,则执行步骤(12),否则执行步骤(4);
(12)输出离群点数据集中的离群点数据;
(13)将临时数据集中未标注离群点的点按照类别输出。
本发明与现有方法相比具有如下优点。
第1,由于本发明引入了自学习算子和邻域竞争算子,两个算子是多智能体进化算法的主要操作,具有快速搜索的特性,克服了现有技术应用于聚类时,遗传聚类算法搜索速度慢,容易陷入局部最优的问题,使得本发明提高了数据聚类的效率。
第2,由于本发明引入了局部离群程度计算方法,在局部待检测点的类内计算离群点的局部离群程度值,作为离群点的衡量标准。该方法使用权值和邻域点的密度计算待检测离群点的局部离群程度值,从而克服了现有技术只计算邻域点的密度,并在整个待检测数据集中进行搜索待检测点的邻域密度,计算时间长,对数据不均匀有影响的问题,使得本发明能在不同的密度的数据集中具有高精度的离群点检测,减少计算时间,降低离群点检测的成本。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图1,对本发明实现的步骤作进一步的详细描述。
步骤1,初始化。
从待检测数据集中随机选择满足智能体的聚类个数,对网格中的每个智能体进行实数编码,每个智能体代表一条染色体,每个聚类中心的位置代表一个基因,完成网格的初始化。
所述的智能体代表一个待输出的解,每一个待输出的解包含所标注为离群点的数据点和带类别的数据点。
将待检测数据集中的所有点设定为非离群点。
将离群点数据集设定为空集。
将初次迭代次数设定为0,最大迭代次数设定为100。
步骤2,对每个智能体执行K-means聚类算法。
(2a)从待检测数据集中任选一个点作为待计算点。
(2b)利用欧式距离公式,计算待计算点到每一个聚类中心的距离。
(2c)将每一个待检测数据集中的点,分配到与聚类中心距离最近的类。
(2d)判断是否选完待检测数据集中所有的点,若是,执行步骤3,否则,则执行步骤(2a)。
步骤3,计算智能体的能量:
按照适应度计算公式,计算每个智能体的适应度值,将每个智能体的适应度值作为该智能体的能量。
所述的适应度计算公式如下:
其中,F表示智能体的适应度值,K表示聚类个数,N表示输入数据个数,p表示输入待检测数据点,Ci表示第i个聚类,mi表示第i个聚类中心位置,i∈[1,K],Dis(·)表示欧式距离操作。
将网格上搜索到能量最大的智能体,作为全局最优智能体;
步骤4,执行邻域竞争算子。
(4a)利用智能体更新方法,对网格中的每个智能体进行更新,获得新的智能体。
所述的智能体更新方法的具体步骤如下:
第1步,将邻域竞争概率设定为0.2。
第2步,判断邻域竞争的概率是否大于从0到1的随机生成数,若是,则执行第3步,否则,执行第4步。
第3步,按照下式,更新智能体中聚类中心位置:
L.P[k]←L.P[k]+rand(-1,1)×|LN.P[k]-L.P[k]|
其中,P表示智能体L中聚类中心的位置,k表示智能体L中的第k个聚类,k∈[1,K],K表示聚类个数,←表示将右边的每一个维数的值赋予左边每一维数的值的操作,rand(-1,1)表示从-1到1的随机生成数,LN表示智能体L的邻域最大能量的智能体,|·|表示绝对值操作。
第4步,输出邻域竞争后的智能体。
(4b)将新的智能体的能量和周围能量最大的智能体的能量进行比较,用二者中能量大的智能体代替原来的智能体。
步骤5,执行邻域交叉算子。
对网格中的每个智能体执行邻域交叉算子,获得邻域交叉后的智能体。
所述的网格中的每个智能体执行邻域交叉算子的具体步骤如下:
第1步,将邻域交叉概率设定为0.9。
第2步,判断邻域交叉的概率是否大于从0到1的随机生成数,若是,则执行第3步,否则,执行第4步。
第3步,按照下式,更新智能体中聚类中心位置:
L.P[k]←Min(L.P[k],LN.P[k])+rand(0,1)×|LN.P[k]-L.P[k]|
其中,P表示智能体L的聚类中心的位置,k表示智能体L中的第k个聚类,k∈[1,K],K表示聚类个数,←表示将右边的每一个维数的值赋予左边每一维数的值的操作,Min(·)表示最小值操作,rand(0,1)表示从0到1的随机生成数,LN表示L的邻域最大能量的智能体,|·|表示绝对值操作。
步骤6,执行变异算子。
对网格中的每个智能体执行变异算子,获得变异后的智能体。
所述的对网格中的每个智能体执行变异算子的具体步骤如下:
第1步,将变异概率设定为0.1。
第2步,判断变异的概率是否大于从0到1的随机生成数,若是,则执行第3步,否则,执行第4步。
第3步,按照下式,更新智能体中聚类中心位置:
L.P[k]←L.P[k]+G(0,1.0/t)
其中,P表示智能体L聚类中心的位置,k表示智能体L中的第k个聚类,k∈[1,K],K表示聚类个数,←表示将右边的每一个维数的值赋予左边每一维数的值的操作,G(·)表示高斯函数操作,t是当前的迭代次数,t∈[0,T],T表示最大迭代次数。
第4步,输出变异后的智能体。
步骤7,执行K-means聚类算法。
(7a)从邻域交叉后的智能体和变异后的智能体任选一个智能体,作为待聚类的智能体。
(7b)利用欧式距离公式,计算每一个非离群点到待聚类的智能体中每一个聚类中心的距离。
(7c)将每一个非离群点分配到该点与待聚类的智能体的聚类中心距离最近的类。
(7d)利用适应度计算公式,计算待聚类的智能体的能量。
所述的适应度计算公式如下:
其中,F表示智能体的适应度值,K表示聚类个数,N表示输入数据个数,p表示输入待检测数据点,Ci表示第i个聚类,mi表示第i个聚类中心位置,i∈[1,K],Dis(·)表示欧式距离操作。
(7e)判断是否选完所有邻域交叉后的智能体和变异后的智能体,若是,执行步骤8,否则,执行步骤(7a)。
步骤8,执行自学习算子。
(8a)从当前网格中找出能量最大的智能体,作为当前最优智能体。
(8b)将自学习算子的初次迭代次数设定为0。
(8c)利用智能体更新方法,对当前最优智能体进行更新,得到临时最优智能体。
所述的更新智能体方法的具体步骤如下:
第1步,按照下式,更新当前最优智能体中聚类中心位置:
L.P[k]←L.P[k]+rand(-1,1)×|LN.P[k]-L.P[k]|
其中,P表示当前最优智能体L中聚类中心的位置,k表示当前最优智能体L中的第k个聚类,k∈[1,K],K表示聚类个数,←表示将右边的每一个维数的值赋予左边每一维数的值的操作,rand(-1,1)表示从-1到1的随机生成数,LN表示当前最优智能体L的邻域最大能量的智能体,|·|表示绝对值操作。
第2步,按照下式,更新智能体中聚类中心位置:
L.P[k]←L.P[k]+G(0,1.0/t)
其中,P表示当前最优智能体L中聚类中心的位置,k表示当前最优智能体L中的第k个聚类,k∈[1,K],K表示聚类个数,←表示将右边的每一个维数的值赋予左边每一维数的值的操作,G(·)表示高斯函数操作,t是当前的迭代次数,t∈[0,T],T表示最大迭代次数。
第3步,输出临时最优智能体。
(8d)利用欧式距离公式,计算每一个非离群点到临时最优智能体中每一个聚类中心的距离。
(8e)将每一个非离群点分配到该点与临时最优智能体的聚类中心距离最近的类。
(8f)利用适应度计算公式,计算临时最优智能体的能量。
所述的适应度计算公式如下:
其中,F表示智能体的适应度值,K表示聚类个数,N表示输入数据个数,p表示输入待检测数据点,Ci表示第i个聚类,mi表示第i个聚类中心位置,i∈[1,K],Dis(·)表示欧式距离操作。
(8g)将临时最优的智能体赋予当前最优智能体。
(8h)判断当前自学习算子的迭代次数是否大于10,若是,则执行步骤(8k),否则,执行步骤(8j)。
(8j)将自学习算子的迭代次数加1,执行步骤(8c)。
(8k)输出当前最优智能体。
步骤9,更新全局最优智能体。
(9a)将当前最优智能体和全局最优智能体能量大的智能体赋予临时全局最优智能体。
(9b)将临时全局最优的智能体赋予全局最优的智能体,作为下一代的全局最优智能体。
(9d)将所有待检测的数据点设定为非离群点。
(9e)清空离群点数据集。
(9f)利用欧式距离公式,计算每一个非离群点到全局最优智能体中聚类中心的距离。
(9g)根据全局最优智能体中聚类的中心位置,将每一个非离群点分配到与全局最优智能体中聚类中心距离最近的类。
步骤10,检测离群点。
(10a)采用局部离群程度计算方法,计算全局最优智能体中的聚类中的每一个点的局部离群程度值。
所述的局部离群程度计算方法的具体步骤如下:
第1步,从待计算的全局最优智能体中的聚类中任选一个点。
第2步,设定一个空的临时数据集。
第3步,搜索所选的点所在类内的所有数据点,并将所搜索的所有数据点存入临时数据集中。
第4步,在临时数据集中搜索出与所选点邻近的10个数据点,组成一个邻近数据集。
第5步,在邻近数据集中,将离所选点最远的距离设定为k距离。
第6步,在临时数据集中,将离所选点的距离小于k距离的所有点设定为所选点的最邻近集。
第7步,从最邻近集中任选一个点,作为待计算权重点。
第8步,按照下式,计算待计算权重点的权重值:
其中,Wq(p)表示待计算点p对最邻近集中的点q的权重值,Dis(·)表示欧式距离操作,Disk(p)表示最邻近集数据个数为k的待计算点p的k距离;
第9步,判断是否所有最邻近集中的点都选完,若是,则执行第10步,否则,执行第7步。
第10步,按照下式,计算所选点的局部密度值:
其中,LDk(p)表示最邻近集的数据个数为k的所选点p的局部密度值,Nk(p)表示最邻近集的数据个数为k的所选点p的k最邻近集,|·|表示数据集的总数,Dis(·)表示欧式距离操作。
第11步,判断所有待计算的全局最优智能体中的聚类中的点是否都选完,若是,则执行第12步,否则,执行第1步。
第12步,从待计算的全局最优智能体中的聚类中的点任选一个点。
第13步,按照下式,计算所选点的最邻***均密度值:
其中,NAk(p)表示最邻近集的数据个数为k的所选点p的最邻***均密度值,Nk(p)表示最邻近集的数据个数为k的所选点p的最邻近集,|·|表示数据集的总数,LDk(q)表示最邻近集中的点q的局部密度值,Wq(p)表示所选点p对最邻近集中的点q的权重值。
第14步,按照下式,计算所选点的局部离群程度:
其中,INODk(p)表示最邻近集的数据个数为k的所选点p的局部离群点程度值,NAk(p)表示所选点p的最邻近的平均密度,LDk(p)表示所选点p的局部密度。
第15步,判断所选的数据个数是否大于待检测数据集的个数,若是,则执行第16步,否则,执行第12步。
第16步,获得所有全局最优智能体中的聚类中带局部离群程度值的点。
(10b)将全局最优智能体中的聚类中的每一个带类别和局部离群程度值的点存入到临时待排序数据集中。
(10c)将临时待排序数据集中的点的局部离群程度值,按从大到小的顺序进行排序。
(10d)根据待检测数据集中的离群点的个数,将临时待排序数据集中的排在最前的相应的离群点的个数标注为离群点,并存入离群点数据集中。
步骤11,判断当前的迭代次数是否大于最大迭代次数,若是,则执行步骤12,否则执行步骤4。
步骤12,输出离群点数据集中的离群点数据。
步骤13,将临时数据集中未标注离群点的点按照类别输出。
本发明的效果可以通过以下仿真实验做进一步的说明。
1.仿真条件:
本发明的仿真实验是在CPU为Core(TM)i3-4160 3.6GHZ、内存8G、WINDOWS10***上使用Visual Studio 2015平台进行的。
2.仿真内容:
本发明的聚类仿真实验是对3个实际生活中的数据集和1个合成数据集,仿真实验中的数据集如下表1所示:
表1.实验所选用待进行聚类仿真的数据集一览表
数据集 | 数据个数 | 数据维数个数 | 聚类个数 |
Seed | 210 | 7 | 3 |
Breast Cancer | 683 | 9 | 2 |
Wine | 178 | 13 | 3 |
人工数据 | 788 | 2 | 7 |
表1中Seed数据集是针对210个数据,7个维数,3个聚类的数据集,Breast Cancer是针对683个数据,9个维数,2个聚类的数据集,Wine数据集是针对178数据,13个维数,3个聚类的数据集,人工数据集是针对788个数据,2个维数,7个聚类的数据集。Seed是植物种子数据集,Wine是酒数据集,Breast Cancer是乳癌数据集。Seed,Wine,Breast Cancer都是机器学习数据集。
本发明的离群点检测仿真实验是对3个实际生活中的数据集和1个合成数据集,仿真实验中的数据集如下表2所示。
表2中Iris数据集是针对120个数据,4个维数,20个离群点的数据集,BreastCancer数据集是针对557个数据,30个维数,200个离群点的数据集,Wine数据集是对139个数据,13个维数,20个离群点的数据集,人工数据集是针对700个数据,2个维数,50个离群点的数据集。Iris是鸢尾属植物数据集,Breast Cancer是乳癌数据集,Wine是酒数据集。Iris,Breast Cancer,Wine都是机器学习数据集。
表2.实验所选用待进行仿真离群点检测的数据集一览表
数据集 | 数据个数 | 数据维数个数 | 离群点个数 |
Iris | 120 | 4 | 20 |
Breast Cancer | 557 | 30 | 200 |
Wine | 139 | 13 | 20 |
人工数据 | 700 | 2 | 50 |
2.仿真结果分析:
本发明的仿真实验采用基于多智能体进化的聚类和离群点检测方法针对3个实际生活中和一个合成数据集进行仿真。考虑到算法的随机性,求解问题集中的每个问题时,重复运行10次,其测试结果如表3所示,每个问题运行一次时的聚类质量用纯度和算法运行时间评估。纯度的计算方式如下:
其中,第r个聚类的纯净度nr表示聚类r中的数据个数,n表示输入的数据个数。
为了说明本发明的算法的聚类质量,下面将本发明针对三个实际生活中和一个合成数据集进行实验仿真,并与已有的遗传聚类算法和粒子群聚类算法进行比较,比较的结果如表3所示。
从表3中的数据可以看出,本发明的算法的聚类效率优于遗传聚类和粒子群聚类算法。对于Seed数据集,本发明所划分数据的纯净度达到最优,而粒子群聚类算法虽然执行时间比本发明的算法要快,但是划分数据的纯净度低于本发明的算法。对于其他数据集,本发明所划分数据的纯净度和其他聚类算法差别不大,但是数据划分所用的时间低于遗传聚类和粒子群聚类。
表3.三种聚类实验仿真方法的结果对比一览表
本发明的算法对离群点检测在实验中用两组数据集来评价检测离群点的精度。实际生活中的数据集和人工数据集,并且对本发明的算法的性能和4个典型的离群点检测方法进行实验仿真对比,如表4所示:
表4.五种离群点检测实验仿真的结果对比表
表4中,IGA表示基于遗传的离群点检测方法,LDOF表示局部离群度量方法,LOF表示局部离群因子检测方法,LIC表示基于系数的局部离群点检测方法。
从表4中的数据可以看出,本发明的算法检测离群点的精度优于其他离群点检测方法。对于局部离群度量方法,局部离群因子检测方法和基于系数的局部离群点检测方法在试验中执行时间小于本发明的算法,但是检测离群点的精度明显低于本发明的算法。
Claims (8)
1.一种基于多智能体进化的聚类和离群点检测方法,包括如下步骤:
(1)初始化:
(1a)从待检测数据集中随机选择满足智能体的聚类个数,对网格中的每个智能体进行实数编码,每个智能体代表一条染色体,每个聚类中心的位置代表一个基因,完成网格的初始化;
(1b)将待检测数据集中的所有点设定为非离群点;
(1c)将离群点数据集设定为空集;
(1d)将初次迭代次数设定为0,最大迭代次数设定为100;
(2)对每个智能体执行K-means聚类算法:
(2a)从待检测数据集中任选一个点作为待计算点;
(2b)利用欧式距离公式,计算待计算点到每一个聚类中心的距离;
(2c)将每一个待检测数据集中的点,分配到与聚类中心距离最近的类;
(2d)判断是否选完待检测数据集中所有的点,若是,执行步骤(3),否则,则执行步骤(2a);
(3)计算智能体的能量:
(3a)按照适应度计算公式,计算每个智能体的适应度值,将每个智能体的适应度值作为该智能体的能量:
(3b)将网格上搜索到能量最大的智能体,作为全局最优智能体;
(4)执行邻域竞争算子:
(4a)利用智能体更新方法,对网格中的每个智能体进行更新,获得新的智能体;
(4b)将新的智能体的能量和周围能量最大的智能体的能量进行比较,用二者中能量大的智能体代替原来的智能体;
(5)执行邻域交叉算子:
对网格中的每个智能体执行邻域交叉算子,获得邻域交叉后的智能体;
(6)执行变异算子:
对网格中的每个智能体执行变异算子,获得变异后的智能体;
(7)执行K-means聚类算法:
(7a)从邻域交叉后的智能体和变异后的智能体任选一个智能体,作为待聚类的智能体;
(7b)利用欧式距离公式,计算每一个非离群点到待聚类的智能体中每一个聚类中心的距离;
(7c)将每一个非离群点分配到该点与待聚类的智能体的聚类中心距离最近的类;
(7d)利用适应度计算公式,计算待聚类的智能体的能量;
(7e)判断是否选完所有邻域交叉后的智能体和变异后的智能体,若是,执行步骤(8),否则,执行步骤(7a);
(8)执行自学习算子:
(8a)从当前网格中找出能量最大的智能体,作为当前最优智能体;
(8b)将自学习算子的初次迭代次数设定为0;
(8c)利用智能体更新方法,对当前最优智能体进行更新,得到临时最优智能体;
(8d)利用欧式距离公式,计算每一个非离群点到临时最优智能体中每一个聚类中心的距离;
(8e)将每一个非离群点分配到该点与临时最优智能体的聚类中心距离最近的类;
(8f)利用适应度计算公式,计算临时最优智能体的能量;
(8g)将临时最优的智能体赋予当前最优智能体;
(8h)判断当前自学习算子的迭代次数是否大于10,若是,则执行步骤(8k),否则,执行步骤(8j);
(8j)将自学习算子的迭代次数加1,执行步骤(8c);
(8k)输出当前最优智能体;
(9)更新全局最优智能体:
(9a)将当前最优智能体和全局最优智能体能量大的智能体赋予临时全局最优智能体;
(9b)将临时全局最优的智能体赋予全局最优的智能体,作为下一代的全局最优智能体;
(9d)将所有待检测的数据点设定为非离群点;
(9e)清空离群点数据集;
(9f)利用欧式距离公式,计算每一个非离群点到全局最优智能体中聚类中心的距离;
(9g)根据全局最优智能体中聚类的中心位置,将每一个非离群点分配到与全局最优智能体中聚类中心距离最近的类;
(10)检测离群点:
(10a)采用局部离群程度计算方法,计算全局最优智能体中的聚类中的每一个点的局部离群程度值;
(10b)将全局最优智能体中的聚类中的每一个带类别和局部离群程度值的点存入到临时待排序数据集中;
(10c)将临时待排序数据集中的点的局部离群程度值,按从大到小的顺序进行排序;
(10d)根据待检测数据集中的离群点的个数,将临时待排序数据集中的排在最前的相应的离群点的个数标注为离群点,并存入离群点数据集中;
(11)判断当前的迭代次数是否大于最大迭代次数,若是,则执行步骤(12),否则执行步骤(4);
(12)输出离群点数据集中的离群点数据;
(13)将临时数据集中未标注离群点的点按照类别输出。
2.根据权利要求1所述的基于多智能体进化的聚类和离群点检测方法,其特征在于:步骤(1a)中所述的智能体代表一个待输出的解,每一个待输出的解包含所标注为离群点的数据点和带类别的数据点。
3.根据权利要求1所述的基于多智能体进化的聚类和离群点检测方法,其特征在于:步骤(3a)、步骤(7d),步骤(8f)中所述的适应度计算公式如下:
其中,F表示智能体的适应度值,K表示聚类个数,N表示输入数据个数,p表示输入待检测数据点,Ci表示第i个聚类,mi表示第i个聚类中心位置,i∈[1,K],Dis(·)表示欧式距离操作。
4.根据权利要求1所述的基于多智能体进化的聚类和离群点检测方法,其特征在于:步骤(4a)中所述的智能体更新方法的具体步骤如下:
第1步,将邻域竞争概率设定为0.2;
第2步,判断邻域竞争的概率是否大于从0到1的随机生成数,若是,则执行第3步,否则,执行第4步;
第3步,按照下式,更新智能体中聚类中心位置:
L.P[k]←L.P[k]+rand(-1,1)×|LN.P[k]-L.P[k]|
其中,P表示智能体L中聚类中心的位置,k表示智能体L中的第k个聚类,k∈[1,K],K表示聚类个数,←表示将右边的每一个维数的值赋予左边每一维数的值的操作,rand(-1,1)表示从-1到1的随机生成数,LN表示智能体L的邻域最大能量的智能体,|·|表示绝对值操作;
第4步,输出邻域竞争后的智能体。
5.根据权利要求1所述的基于多智能体进化的聚类和离群点检测方法,其特征在于:步骤(5)中所述的网格中的每个智能体执行邻域交叉算子的具体步骤如下:
第1步,将邻域交叉概率设定为0.9;
第2步,判断邻域交叉的概率是否大于从0到1的随机生成数,若是,则执行第3步,否则,执行第4步;
第3步,按照下式,更新智能体中聚类中心位置:
L.P[k]←Min(L.P[k],LN.P[k])+rand(0,1)×|LN.P[k]-L.P[k]|
其中,P表示智能体L的聚类中心的位置,k表示智能体L中的第k个聚类,k∈[1,K],K表示聚类个数,←表示将右边的每一个维数的值赋予左边每一维数的值的操作,Min(·)表示最小值操作,rand(0,1)表示从0到1的随机生成数,LN表示L的邻域最大能量的智能体,|·|表示绝对值操作;
第4步,输出邻域交叉后的智能体。
6.根据权利要求1所述的基于多智能体进化的聚类和离群点检测方法,其特征在于:步骤(6)中所述的对网格中的每个智能体执行变异算子的具体步骤如下:
第1步,将变异概率设定为0.1;
第2步,判断变异的概率是否大于从0到1的随机生成数,若是,则执行第3步,否则,执行第4步;
第3步,按照下式,更新智能体中聚类中心位置:
L.P[k]←L.P[k]+G(0,1.0/t)
其中,P表示智能体L聚类中心的位置,k表示智能体L中的第k个聚类,k∈[1,K],K表示聚类个数,←表示将右边的每一个维数的值赋予左边每一维数的值的操作,G(·)表示高斯函数操作,t是当前的迭代次数,t∈[0,T],T表示最大迭代次数;
第4步,输出变异后的智能体。
7.根据权利要求1所述的基于多智能体进化的聚类和离群点检测方法,其特征在于:步骤(8c)中所述的更新智能体方法的具体步骤如下:
第1步,按照下式,更新当前最优智能体中聚类中心位置:
L.P[k]←L.P[k]+rand(-1,1)×|LN.P[k]-L.P[k]|
其中,P表示当前最优智能体L中聚类中心的位置,k表示当前最优智能体L中的第k个聚类,k∈[1,K],K表示聚类个数,←表示将右边的每一个维数的值赋予左边每一维数的值的操作,rand(-1,1)表示从-1到1的随机生成数,LN表示当前最优智能体L的邻域最大能量的智能体,|·|表示绝对值操作;
第2步,按照下式,更新智能体中聚类中心位置:
L.P[k]←L.P[k]+G(0,1.0/t)
其中,P表示当前最优智能体L中聚类中心的位置,k表示当前最优智能体L中的第k个聚类,k∈[1,K],K表示聚类个数,←表示将右边的每一个维数的值赋予左边每一维数的值的操作,G(·)表示高斯函数操作,t是当前的迭代次数,t∈[0,T],T表示最大迭代次数;
第3步,输出临时最优智能体。
8.根据权利要求1所述的基于多智能体进化的聚类和离群点检测方法,其特征在于:步骤(10a)中所述的局部离群程度计算方法的具体步骤如下:
第1步,从待计算的全局最优智能体中的聚类中任选一个点;
第2步,设定一个空的临时数据集;
第3步,搜索所选的点所在类内的所有数据点,并将所搜索的所有数据点存入临时数据集中;
第4步,在临时数据集中搜索出与所选点邻近的10个数据点,组成一个邻近数据集;
第5步,在邻近数据集中,将离所选点最远的距离设定为k距离;
第6步,在临时数据集中,将离所选点的距离小于k距离的所有点设定为所选点的最邻近集;
第7步,从最邻近集中任选一个点,作为待计算权重点;
第8步,按照下式,计算待计算权重点的权重值:
其中,Wq(p)表示待计算点p对最邻近集中的点q的权重值,Dis(·)表示欧式距离操作,Disk(p)表示最邻近集数据个数为k的待计算点p的k距离;
第9步,判断是否所有最邻近集中的点都选完,若是,则执行第10步,否则,执行第7步;
第10步,按照下式,计算所选点的局部密度值:
其中,LDk(p)表示最邻近集的数据个数为k的所选点p的局部密度值,Nk(p)表示最邻近集的数据个数为k的所选点p的k最邻近集,|·|表示数据集的总数,Dis(·)表示欧式距离操作;
第11步,判断所有待计算的全局最优智能体中的聚类中的点是否都选完,若是,则执行第12步,否则,执行第1步;
第12步,从待计算的全局最优智能体中的聚类中的点任选一个点;
第13步,按照下式,计算所选点的最邻***均密度值:
其中,NAk(p)表示最邻近集的数据个数为k的所选点p的最邻***均密度值,Nk(p)表示最邻近集的数据个数为k的所选点p的最邻近集,|·|表示数据集的总数,LDk(q)表示最邻近集中的点q的局部密度值,Wq(p)表示所选点p对最邻近集中的点q的权重值;
第14步,按照下式,计算所选点的局部离群程度:
其中,INODk(p)表示最邻近集的数据个数为k的所选点p的局部离群点程度值,NAk(p)表示所选点p的最邻近的平均密度,LDk(p)表示所选点p的局部密度;
第15步,判断所选的数据个数是否大于待检测数据集的个数,若是,则执行第16步,否则,执行第12步;
第16步,获得所有全局最优智能体中的聚类中带局部离群程度值的点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610846226.2A CN106649456A (zh) | 2016-09-23 | 2016-09-23 | 基于多智能体进化的聚类和离群点检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610846226.2A CN106649456A (zh) | 2016-09-23 | 2016-09-23 | 基于多智能体进化的聚类和离群点检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106649456A true CN106649456A (zh) | 2017-05-10 |
Family
ID=58854547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610846226.2A Pending CN106649456A (zh) | 2016-09-23 | 2016-09-23 | 基于多智能体进化的聚类和离群点检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106649456A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562778A (zh) * | 2017-07-21 | 2018-01-09 | 哈尔滨工程大学 | 一种基于偏离特征的离群点挖掘方法 |
CN108921298A (zh) * | 2018-06-12 | 2018-11-30 | 中国科学技术大学 | 强化学习多智能体沟通与决策方法 |
CN108932301A (zh) * | 2018-06-11 | 2018-12-04 | 天津科技大学 | 数据填充方法及装置 |
CN109801175A (zh) * | 2019-01-21 | 2019-05-24 | 北京邮电大学 | 一种医保诈骗行为检测方法和装置 |
CN111523576A (zh) * | 2020-04-13 | 2020-08-11 | 河海大学常州校区 | 一种适用于电子质量检测的密度峰值聚类离群点检测方法 |
CN114169216A (zh) * | 2021-10-22 | 2022-03-11 | 北京理工大学 | 一种基于自适应分区的多智能体异构目标协同覆盖方法 |
CN114707608A (zh) * | 2021-04-14 | 2022-07-05 | 内蒙古卫数数据科技有限公司 | 医疗质控数据处理方法、装置、设备、介质及程序产品 |
US11442978B2 (en) | 2018-03-01 | 2022-09-13 | King Fahd University Of Petroleum And Minerals | Heuristic for the data clustering problem |
CN115508511A (zh) * | 2022-09-19 | 2022-12-23 | 中节能天融科技有限公司 | 基于网格化设备全参数特征分析的传感器自适应校准方法 |
CN117217501A (zh) * | 2023-11-09 | 2023-12-12 | 山东多科科技有限公司 | 一种数字化生产计划与调度方法 |
-
2016
- 2016-09-23 CN CN201610846226.2A patent/CN106649456A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562778B (zh) * | 2017-07-21 | 2021-09-28 | 哈尔滨工程大学 | 一种基于偏离特征的离群点挖掘方法 |
CN107562778A (zh) * | 2017-07-21 | 2018-01-09 | 哈尔滨工程大学 | 一种基于偏离特征的离群点挖掘方法 |
US11442978B2 (en) | 2018-03-01 | 2022-09-13 | King Fahd University Of Petroleum And Minerals | Heuristic for the data clustering problem |
CN108932301B (zh) * | 2018-06-11 | 2021-04-27 | 天津科技大学 | 数据填充方法及装置 |
CN108932301A (zh) * | 2018-06-11 | 2018-12-04 | 天津科技大学 | 数据填充方法及装置 |
CN108921298A (zh) * | 2018-06-12 | 2018-11-30 | 中国科学技术大学 | 强化学习多智能体沟通与决策方法 |
CN109801175A (zh) * | 2019-01-21 | 2019-05-24 | 北京邮电大学 | 一种医保诈骗行为检测方法和装置 |
CN111523576A (zh) * | 2020-04-13 | 2020-08-11 | 河海大学常州校区 | 一种适用于电子质量检测的密度峰值聚类离群点检测方法 |
CN114707608A (zh) * | 2021-04-14 | 2022-07-05 | 内蒙古卫数数据科技有限公司 | 医疗质控数据处理方法、装置、设备、介质及程序产品 |
CN114707608B (zh) * | 2021-04-14 | 2023-08-01 | 内蒙古卫数数据科技有限公司 | 医疗质控数据处理方法、装置、设备、介质及程序产品 |
CN114169216A (zh) * | 2021-10-22 | 2022-03-11 | 北京理工大学 | 一种基于自适应分区的多智能体异构目标协同覆盖方法 |
CN115508511A (zh) * | 2022-09-19 | 2022-12-23 | 中节能天融科技有限公司 | 基于网格化设备全参数特征分析的传感器自适应校准方法 |
CN117217501A (zh) * | 2023-11-09 | 2023-12-12 | 山东多科科技有限公司 | 一种数字化生产计划与调度方法 |
CN117217501B (zh) * | 2023-11-09 | 2024-02-20 | 山东多科科技有限公司 | 一种数字化生产计划与调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106649456A (zh) | 基于多智能体进化的聚类和离群点检测方法 | |
CN106529569B (zh) | 基于深度学习的三维模型三角面特征学习分类方法及装置 | |
US20230136352A1 (en) | Method and system for predicting a day-ahead wind power of wind farms | |
CN105320961A (zh) | 基于卷积神经网络和支持向量机的手写数字识别方法 | |
CN108960140A (zh) | 基于多区域特征提取和融合的行人再识别方法 | |
CN104732545B (zh) | 结合稀疏近邻传播和快速谱聚类的纹理图像分割方法 | |
CN110473592A (zh) | 基于图卷积网络的有监督的多视角人类协同致死基因预测方法 | |
CN106604229A (zh) | 一种基于流形学习与改进支持向量机的室内定位方法 | |
CN102520341A (zh) | 一种基于Bayes-KFCM算法的模拟电路故障诊断方法 | |
CN105388402A (zh) | 基于参数优化svm算法的交联电缆局部放电模式识别方法 | |
CN105760888A (zh) | 一种基于属性聚类的邻域粗糙集集成学习方法 | |
CN109507535A (zh) | 变电站接地网运行阶段及运行寿命预测方法及装置 | |
CN103258210A (zh) | 一种基于字典学习的高清图像分类方法 | |
CN104200272A (zh) | 一种基于改进遗传算法的复杂网络社区挖掘方法 | |
CN111612051A (zh) | 一种基于图卷积神经网络的弱监督目标检测方法 | |
CN104008420A (zh) | 一种基于自动编码机的分布式离群点检测方法及*** | |
CN109784488A (zh) | 一种适用于嵌入式平台的二值化卷积神经网络的构建方法 | |
CN104809476A (zh) | 一种基于分解的多目标进化模糊规则分类方法 | |
CN111292124A (zh) | 一种基于优化组合神经网络的需水预测方法 | |
CN113822419A (zh) | 一种基于结构信息的自监督图表示学习运行方法 | |
CN114897085A (zh) | 一种基于封闭子图链路预测的聚类方法及计算机设备 | |
CN112711985B (zh) | 基于改进solo网络的果实识别方法、装置及机器人 | |
Pramoedyo et al. | Comparison of Random Forest and Naïve Bayes Methods for Classifying and Forecasting Soil Texture in the Area Around Das Kalikonto, East Java | |
CN106056167A (zh) | 一种基于高斯核混合人工蜂群算法的归一化可能性模糊熵聚类方法 | |
CN103020864B (zh) | 玉米良种选育方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170510 |
|
WD01 | Invention patent application deemed withdrawn after publication |