http://blog.sina.com.cn/s/blog_6f0c85fb0100xhz1.html
原文链接在这里:http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/index.html
有个哥们已经翻译了一部分,部分内容在他的基础了修改,原文在这里http://hi.baidu.com/keefo/blog/item/718ab41f46c6d6f4e1fe0b32.html
什么是聚类?
聚类被认为是最重要的无监督学习问题。所以,正如其他一切这类问题一样,处理过程首先要在无标记数据中寻找相应一种结构.
聚类一个粗略的定义可以“用某种方式把相似的物体分组的过程”。 因此簇内对象相似度大,簇间对象相似度小。如下图所示一个简单聚类过程:
![聚类算法教程(1):聚类简介与算法资源 - xiongyp86 - 北极熊的博客 聚类算法教程(1):聚类简介与算法资源 - xiongyp86 - 北极熊的博客](http://img.bimg.126.net/photo/bJupSV6s2PhekNJiGPcS4A==/5777836846941295221.jpg)
例如: 在上图情况下我们可以很容易找出4个簇,并把他们的数据分开;根据相似测度的距离,如果两个或多个对象间距离较为近那么他们属于一个簇(在上图情况中距离准则为“几何距离”). 这就是所谓的基于距离的聚类。另一种是概念聚类:一个概念所定义的两个或两个以上物体都属于同一簇。换言之,对象的聚簇依据,是根据它们所符合的定义来计算相似度的,而不是按照简单的计算测量。
聚类目标
聚类的目标是要使未标记数据按数据内在固有属性分组为标记数据。但如何确定一个聚类是否是有效的呢?实践证明并没有绝对的“最好”的标准,聚类结果的好坏只取决与希望的聚类目标。 因此,使用聚类的用户必须供给它这个标准,这样做才可能使得聚类的结果更加满足他们的需求。比如,我们希望找到具有某种共同特性的集合,寻找"natural clusters”,并描述它们的未知特性("natural" 数据类型) , 用以找到有用的或者最合适的数据集合("useful" 数据类) ,或在找到一些利群数据。
聚类算法的可能应用领域
聚类算法可以应用于许多领域,例如:
商业营销:通过大量的顾客消费行为模式、顾客背景、购物记录的数据,寻找潜在客户群体团;
生物学:根据植物和动物的各自特点对他们进行分类;
图书馆:图书订货;
保险: 找出汽车保险客户群中高索赔的平均成本;查找诈骗行为;
城市规划: 根据房子的类型,价值和地理位置,分组房屋;
地震研究: 聚类观测地震的震中位置,以确定危险区;
万维网:文件分类; 聚类分析博客数据以发现各组类似的访问模式.
主要要求
即聚类算法应满足如下要求:
* 可测量性;
* 处理不同类型的属性;
* 聚类任意形状的簇;
* 对专业领域知识的需求低,以确定输入参数;
* 有能力处理噪声数据和离群点数据;
* 数据输入顺序的低敏感性;
* 高维处理能力;
* 可解释性和可用性.
问题
聚类涉及的一些问题, 其中包括:
* 现有聚类技术并不能满足当前所有的要求;
* 由于算法时间复杂度的缘故,处理高纬度和海量数据项的问题;
* 聚类算法的效率取决于“距离”的定义(基于距离的聚类);
* 如果一个明显的距离并不存在,我们必须为其做相应的“定义”,而在多维空间中距离的定义是很困难的;
* 结果的聚类算法,可以有不同的解释。
聚类算法
聚类算法分类:
* 排除聚类
* 重叠聚类
* 层次聚类
* 概率聚类
对于第一种情况,排除聚类。一个数据属于且仅属于一个簇。如下图所示的一个简单例子:在二维空间中的点被一条直线所分开。
与第一种聚类相反,重叠聚类。它使用模糊簇集,同一个点可能同时数据两个或多个不同的簇,并赋予不同的成员标记。
层次聚类算法的思想是合并最相似的两个簇。初始条件可以把每个数据看作一个单独的簇,在数词迭代计算后就可以得到希望的聚类簇集。
最后一种聚类算法使用Bayes全概率方法进行聚类计算。
在本教程中,我们介绍四个最常用的聚类算法:
* K-means
* 模糊C-means
* 层次聚类
* 高斯模糊聚类
他们中每个都属于上文所列的一种聚类类型。因此, K-means的是一个排除聚类算法,模糊C-means是一个重叠聚类算法, 层次聚类显而易见,高斯模糊是一个概率聚类算法。我们将下一部分讨论每一个聚类算法。
距离度量
距离度量是聚类算法的一个重要组成部分,它对数据点之间进行距离测度。如果数据成分具有相同的物理单位,则使用欧几里德距离就可以简单的计算出数据相似度。然而,即使在这种情况下欧几里德距离有时也会长生误导. 下图说明这个问题:
图像中使用宽度和高度的测量对象,尽管两种测量均采取相同的物理单位,但是实际上一个明智的决定是,两者都必须以相对尺度。如上图所示,不同的尺度,可导 致不同聚类效果。注意,这不仅是一个图形的问题。问题从利用数学公式计算单一数据特征向量,上升为把特殊距离计算用于聚类算法中:这导致不同的公式得到不 同的聚类结果。正因如此,对于不同的聚类应用,适当的先验知识必须作为制定距离测度公对的准则。
Minkowski 度量
对于高维数据,流行的计算方法是使用Minkowski度量:
其中d是数据的维度。在p=2时这个特殊情况下就可以使用欧几里德距离公式计算,在Manhattan度量P值为1。不过,目前没有通用理论指导多维距离计算的公式。
在多数情况下,数据的特征向量无法直接比较。这些特征不连续变量,如长度,但名次分类除外,如从周日到周一。在这些多次提到的例子中,不同领域的先验知识必须恰当的使用。
参考文献
- Tariq Rashid: “Clustering”
http://www.cs.bris.ac.uk/home/tr1690/documentation/fuzzy_clustering_initial_report/node11.html - Osmar R. Za?ane: “Principles of Knowledge Discovery in Databases - Chapter 8: Data Clustering”
http://www.cs.ualberta.ca/~zaiane/courses/cmput690/slides/Chapter8/index.html - Pier Luca Lanzi: “Ingegneria della Conoscenza e Sistemi Esperti – Lezione 2: Apprendimento non supervisionato”
http://www.elet.polimi.it/upload/lanzi/corsi/icse/2002/Lezione%202%20-%20Apprendimento%20non%20supervisionato.pdf
链接资源
Andrew Moore: “K-means and Hierarchical Clustering - Tutorial Slides”
http://www-2.cs.cmu.edu/~awm/tutorials/kmeans.html
Brian T. Luke: “K-Means Clustering”
http://fconyx.ncifcrf.gov/~lukeb/kmeans.html
Tariq Rashid: “Clustering”
http://www.cs.bris.ac.uk/home/tr1690/documentation/fuzzy_clustering_initial_report/node11.html
Hans-Joachim Mucha and Hizir Sofyan: “Cluster Analysis”
http://www.quantlet.com/mdstat/scripts/xag/html/xaghtmlframe142.html
Frigui Hichem: “Similarity Measures and Criterion Functions for clustering”
http://prlab.ee.memphis.edu/frigui/ELEC7901/UNSUP2/SimObj.html
Osmar R. Za?ane: “Principles of Knowledge Discovery in Databases - Chapter 8: Data Clustering”
http://www.cs.ualberta.ca/~zaiane/courses/cmput690/slides/Chapter8/index.html
Pier Luca Lanzi: “Ingegneria della Conoscenza e Sistemi Esperti – Lezione 2: Apprendimento non supervisionato”
http://www.elet.polimi.it/upload/lanzi/corsi/icse/2002/Lezione%202%20-%20Apprendimento%20non%20supervisionato.pdf
Stephen P. Borgatti: “How to explain hierarchical clustering”
http://www.analytictech.com/networks/hiclus.htm
Maria Irene Miranda: “Clustering methods and algorithms”
http://www.cse.iitb.ac.in/dbms/Data/Courses/CS632/1999/clustering/dbms.html
Jia Li: “Data Mining - Clustering by Mixture Models”
http://www.stat.psu.edu/~jiali/course/stat597e/notes/mix.pdf