c语言数据挖掘的聚类算法研究(附件)
1通过理解并掌握现在应用较为广泛的k-means算法、核聚类算法、谱聚类算法和快速AP聚类算法等,统一利用较为底层、程序执行效率高的C语言来实现上述各种聚类算法。在统一并且执行效率高的运行环境下,各个聚类算法的优点和特性可以更加直观、可信地表现出来。选取合适的数据集,并对其进行归一化处理,若不同维度的数据大小不一,会影响聚类结果。通过对上述四种算法的测试得到的结果进行比较、分析,可以发现k-means运行速度快、核聚类结果更准确、谱聚类适合处理高维的数据、快速AP聚类结果更稳定。四种聚类算法各有其特点和优越性。
目录
引言
1 绪论
1.1 研究背景
在数据量急剧增长的今天,无论在生物学领域、商业、科研机构或者某些企业集团都存储着大量的以不同形式存在的数据。然而,面对如此海量的数据,最重要的工作就是如何充分地分析并处理这些数据,提取对我们有用的信息。为了解决这些问题,科学家们致力于发展数据挖掘技术
数据挖掘技术[1]诞生于20世纪80年代。它包括分类、估计、预测、相关性分组或关联规则、聚类和复杂数据类型挖掘等方面。它利用了一些其他领域的思想,比如统计学的抽样和估计、人工智能和机器学习的搜索算法、最优化、信号处理等。而且一些领域也为数据挖掘技术提供了技术支持。数据库系统提供了可靠的存储和查询;分布式技术和并行计算的技术可以帮助处理海量数据。
聚类分析[2]作为数据挖掘主要的研究课题之一,聚类分析用通俗的话来说,就是根据“物以类聚”的原理,将本来没有类别的样本聚集成不同的组,分析各个数据之间的相互关系等。
聚类算法研究综述
1.2.1 聚类算法研究进展
聚类算法可以作为独立的工具来提取样本中有用的信息,也可以作为数据挖掘算法中其他分析算法的一个预处理步骤。聚类算法可以分为划分法(Partitioning Methods)、层次法(Hierarchical Methods)、基于密度的方法(Densitybased Methods)、基于网格的方法(Gridbased Methods)和基于模型的方法(ModelBased Methods),分类如图1。聚类算法还存在一些不足,科学家们利用各种新方法和新技术对聚类算法不断改进,这使 *好棒文|www.hbsrm.com +Q: ^351916072#
得聚类算法的研究取得了飞速的发展。
图1 聚类算法分类图
随着越来越多的研究人员对聚类算法问题的研究深入,并致力于找到改善解决方法,多种多样的改进算法被提出来,经过验证具有较好的效果且比较常见的聚类算法有:kmeans,核聚类,谱聚类,快速AP聚类等等。
聚类算法针对其缺陷,利用新发展的方法,可以具有一定的改良优化效果。例如,BUHMANN.J.M 提出的谱聚类算法可以更好的处理维数比较大的样本; Girolami 提出的核聚类算法通过扩大数据之间的差别,可以处理数据差别较小的数据等等[4]。
1.2.2 目前存在的问题
聚类算法因为技术发展有限,还存在着一些不足[5]。现实中,绝大部分的样本都含有孤立点、缺失或者错误的数据,但是一些聚类算法对于这些数据过于敏感,使得聚类效果不是很理想;同一个样本当以不同的顺序提交给同一个算法时,有些聚类算法因为对输入顺序过于敏感,聚类结果可能会差别很大;现实应用时聚类可能有各种约束条件,聚类算法既要满足特定的约束,又要有良好的聚类特性,这是一件较难实现的任务。聚类算法研究发展到今日,数量已经有很多了。各个行业在不同的情况下会产生各种各样的数据。在实际应用时,如果采用了不合适的聚类算法对特定的数据进行聚类,会经常产生问题,聚类效果也不理想、速度慢。
因此,当我们要将特定的数据进行聚类时,我们要分析数据的特征、类型,并结合各个聚类算法的特性,选择最为合适的聚类算法进行聚类。
1.2.3 应用前景
在商业上,聚类可以帮市场分析人员从消费者样本中得到不同的消费群体,而且可以概括得到不同消费者的购买习惯或偏好;在模式识别中,聚类算法可以用于语音识别、字符识别等;在机器学习中,聚类算法可以用于图像分割和机器视觉;在图像处理中,聚类可以用于数据压缩和信息检索。此外,聚类分析对生物学、心理学、考古学、地质学以及地理学等研究也都起到了至关重要的作用。
1.3 研究内容与技术路线
1.3.1 研究内容
通过查阅文献,综合考量各个聚类算法,选择四种当前应用最为广泛、最有代表性的聚类算法进行分析:kmeans、核聚类、谱聚类和快速AP聚类。
针对四种聚类算法的不同特性,从UCI数据集中选取合适的数据,并对其进行归一化处理。如果不同维度的数据大小不一,会对聚类的结果产生影响。
通过理解已有的论文上算法的步骤,将四种聚类算法统一在较为底层并且运行效率高的C语言上实现,并将四种算法整合,用一个界面对其进行数据文件和参数的录入。
对kmeans、核聚类、谱聚类和快速AP聚类用不同的数据分别进行测试,将实验数据进行整合,对比不同算法在对不同的数据进行聚类时的运行速度、查准率和F1值等有何不同,并分析各个算法的优势。
得出实验结论。
1.3.2 技术路线
查阅聚类有关的综述,了解聚类研究进展,并从中选择4种最具代表性的聚类算法。
学习kmeans、核聚类、谱聚类和快速ap聚类的有关知识,包括聚类算法的执行过程和要素,所涉及到的相关名词的意思。
在充分理解的基础上,利用已经学习的C语言的知识,将上述四种算法的执行过程用C语言实现。
将四种聚类算法进行整合,用统一界面进行操作,以便于选取不同类型并数据归一化后的数据对聚类算法进行性能测试。
用3种人工数据集和7种UCI数据集对算法进行测试,进而对实验结果进行整理,从程序的运行速度、查准率和F1值等方面进行对比,分析其特点及优越性。
2 基础理论
2.1 聚类算法中的相似度度量方法
目录
引言
1 绪论
1.1 研究背景
在数据量急剧增长的今天,无论在生物学领域、商业、科研机构或者某些企业集团都存储着大量的以不同形式存在的数据。然而,面对如此海量的数据,最重要的工作就是如何充分地分析并处理这些数据,提取对我们有用的信息。为了解决这些问题,科学家们致力于发展数据挖掘技术
数据挖掘技术[1]诞生于20世纪80年代。它包括分类、估计、预测、相关性分组或关联规则、聚类和复杂数据类型挖掘等方面。它利用了一些其他领域的思想,比如统计学的抽样和估计、人工智能和机器学习的搜索算法、最优化、信号处理等。而且一些领域也为数据挖掘技术提供了技术支持。数据库系统提供了可靠的存储和查询;分布式技术和并行计算的技术可以帮助处理海量数据。
聚类分析[2]作为数据挖掘主要的研究课题之一,聚类分析用通俗的话来说,就是根据“物以类聚”的原理,将本来没有类别的样本聚集成不同的组,分析各个数据之间的相互关系等。
聚类算法研究综述
1.2.1 聚类算法研究进展
聚类算法可以作为独立的工具来提取样本中有用的信息,也可以作为数据挖掘算法中其他分析算法的一个预处理步骤。聚类算法可以分为划分法(Partitioning Methods)、层次法(Hierarchical Methods)、基于密度的方法(Densitybased Methods)、基于网格的方法(Gridbased Methods)和基于模型的方法(ModelBased Methods),分类如图1。聚类算法还存在一些不足,科学家们利用各种新方法和新技术对聚类算法不断改进,这使 *好棒文|www.hbsrm.com +Q: ^351916072#
得聚类算法的研究取得了飞速的发展。
图1 聚类算法分类图
随着越来越多的研究人员对聚类算法问题的研究深入,并致力于找到改善解决方法,多种多样的改进算法被提出来,经过验证具有较好的效果且比较常见的聚类算法有:kmeans,核聚类,谱聚类,快速AP聚类等等。
聚类算法针对其缺陷,利用新发展的方法,可以具有一定的改良优化效果。例如,BUHMANN.J.M 提出的谱聚类算法可以更好的处理维数比较大的样本; Girolami 提出的核聚类算法通过扩大数据之间的差别,可以处理数据差别较小的数据等等[4]。
1.2.2 目前存在的问题
聚类算法因为技术发展有限,还存在着一些不足[5]。现实中,绝大部分的样本都含有孤立点、缺失或者错误的数据,但是一些聚类算法对于这些数据过于敏感,使得聚类效果不是很理想;同一个样本当以不同的顺序提交给同一个算法时,有些聚类算法因为对输入顺序过于敏感,聚类结果可能会差别很大;现实应用时聚类可能有各种约束条件,聚类算法既要满足特定的约束,又要有良好的聚类特性,这是一件较难实现的任务。聚类算法研究发展到今日,数量已经有很多了。各个行业在不同的情况下会产生各种各样的数据。在实际应用时,如果采用了不合适的聚类算法对特定的数据进行聚类,会经常产生问题,聚类效果也不理想、速度慢。
因此,当我们要将特定的数据进行聚类时,我们要分析数据的特征、类型,并结合各个聚类算法的特性,选择最为合适的聚类算法进行聚类。
1.2.3 应用前景
在商业上,聚类可以帮市场分析人员从消费者样本中得到不同的消费群体,而且可以概括得到不同消费者的购买习惯或偏好;在模式识别中,聚类算法可以用于语音识别、字符识别等;在机器学习中,聚类算法可以用于图像分割和机器视觉;在图像处理中,聚类可以用于数据压缩和信息检索。此外,聚类分析对生物学、心理学、考古学、地质学以及地理学等研究也都起到了至关重要的作用。
1.3 研究内容与技术路线
1.3.1 研究内容
通过查阅文献,综合考量各个聚类算法,选择四种当前应用最为广泛、最有代表性的聚类算法进行分析:kmeans、核聚类、谱聚类和快速AP聚类。
针对四种聚类算法的不同特性,从UCI数据集中选取合适的数据,并对其进行归一化处理。如果不同维度的数据大小不一,会对聚类的结果产生影响。
通过理解已有的论文上算法的步骤,将四种聚类算法统一在较为底层并且运行效率高的C语言上实现,并将四种算法整合,用一个界面对其进行数据文件和参数的录入。
对kmeans、核聚类、谱聚类和快速AP聚类用不同的数据分别进行测试,将实验数据进行整合,对比不同算法在对不同的数据进行聚类时的运行速度、查准率和F1值等有何不同,并分析各个算法的优势。
得出实验结论。
1.3.2 技术路线
查阅聚类有关的综述,了解聚类研究进展,并从中选择4种最具代表性的聚类算法。
学习kmeans、核聚类、谱聚类和快速ap聚类的有关知识,包括聚类算法的执行过程和要素,所涉及到的相关名词的意思。
在充分理解的基础上,利用已经学习的C语言的知识,将上述四种算法的执行过程用C语言实现。
将四种聚类算法进行整合,用统一界面进行操作,以便于选取不同类型并数据归一化后的数据对聚类算法进行性能测试。
用3种人工数据集和7种UCI数据集对算法进行测试,进而对实验结果进行整理,从程序的运行速度、查准率和F1值等方面进行对比,分析其特点及优越性。
2 基础理论
2.1 聚类算法中的相似度度量方法
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wljs/472.html