【原创】聚类思想的分析

  聚类算法在数据挖掘中经常使用,思想简单直接。

  在系统中,自己也实现过几个聚类算法,做针对性的优化也并无它难度。

  由于其方式的简单,开始也未对它有过深入思考。

  但是,如果你想让数据自己说话,还是离不开聚类。

  因此调研了很多聚类算法,做一些总结。

--------------------------------------------------------------------------------------------------------

聚类算法大体分四类

1.层次聚类(顶下和底上及改良)

2.划分聚类(Kmeans及改良)

3.密度聚类(DBSCAN、SNN及改良)

4.模糊聚类(FCM及改良)

当然它们并不是天然分割的,之间互有交叉。当然具体怎么分也是仁者见仁的事情。这种分类方式是根据 聚类核心依据 划分的。

按我自己看来,它们之间的关系如下:

由于聚类是非监督的,因此是非意识的。可是,我们仍然希望通过尽可能的先验来提高聚类的效果。

也就是说,聚类算法仍然希望给它指明一个方向,这个方向在我们通常的做法就是告诉它:实际上这个数据集有几类(包括噪音点也自成一类)。

所以,这也就是我想表达的为什么把划分聚类和模糊聚类归为先验聚类

但实际情况经常是,那么大的数据集,鬼知道几类。

对,没人知道。但我们想让数据自己告诉我们。

可没有先验,数据凭什么告诉我们?

这里我举两个例子:

1) 图片

将一张图的颜色压缩为0/1黑白两色后如下。

就单单让你看这张图,你会划分几类?

你可能说1 类 、 2类 、3类都有可能。

是呢,你都不知道,那数据自己怎么知道?

2) 文本文本聚类是很普遍的一件事了。就假设现在是简单的词袋模型。

下面是文本文档向量的示意图(可以想象成N维)。

在数据库里其实你看到的也就是这么一堆向量值,那这次你又怎么分?

可能这个文档集的构造是:

1.我喜欢苹果手机。

2.我喜欢三星手机。

文档集是100篇关于手机的评价,其中50篇主语用 苹果,另外50篇主语用 三星。

所以,如果用户想知道两种手机的情况,那是两类。如果用户想知道手机的情况,那就是一类。

那么数据自己如何分呢?

数据也不知道。

因此针对不同的应用场景,需要人为的加入先验来提高聚类效果。

Kmeans和FCM都有一个固定的先验K,导致先验聚类存在一个优化目标,因此即使Kmeans有诸多问题,但是其聚类效果仍然不错。

优化目标:

这也就是为什么 Kmeans每次迭代更新中心点为类内均值的原因。

写了这么多,并不是说先验聚类优于自发聚类,自发聚类其实也有一定程度的先验(各类阈值,纯先验)。

重要的是面对不同的问题,需要使用针对性的方法。重要的东西说一遍也可以。

不具备普遍性是由于聚类算法自身的限制而导致的。

似乎有一直在夸先验聚类的嫌疑,下面举个例子说明自发聚类的应用场景。

图像压缩

RGB(255,255,255)的三元组,但是空间不足那么多,把8bit*3 压缩为 4bit*3(简单的话做hash映射)。

压缩前:

压缩后:

最后,聚类的非监督决定了其不具普适性。因此根据场景灵活运用各种聚类算法,非常重要。

之后还会写一篇各类聚类算法的优缺点比较~

未经博主允许,不能转载任何文章。

时间: 2024-10-19 14:20:03

【原创】聚类思想的分析的相关文章

(原创)android PowerManager分析(非常详细)

概述 一直以来,电源管理是电子产品设计中非常重要的环节,也是任何电子设备中最为重要的系统模块之一,优秀的电源管理方案,能够提供持久的续航能力,良好的用户体验,更能提升电子产品的竞争力. 移动设备的电量主要由两种元件消耗:CPU和显示屏,因此设法降低这两种元件的耗电量就是电源管理的关键,为移动设备设计的CPU大多有两种工作频率,为了省电,大部分时间内cpu都工作在降低频率下,只有进行密集计算时,如视频解码才会切换到高频状态,而显示屏省电的方法是尽量减少亮屏时间,但是显示屏的开关和应用有很大的关系,

[原创]MinHook测试与分析(x64下 E9,EB,CALL指令测试,且逆推测试微软热补丁)

依稀记得第一次接触Hook的概念是在周伟民先生的书中-><<多任务下的数据结构与算法>>,当时觉得Hook很奇妙,有机会要学习到,正好近段日子找来了MiniHook,就一起分享一下. 本篇文章是在x64下测试与分析jmp+offset类型的Hook,并且逆推测出热补丁的简单用法,MinHook它的中心就是覆盖重写并且可以复原.知道大概的思路后后让我们先来具体的实现MinHook再去做测试. 首先是堆的申请(申请PAGE_SIZE大小自动生长的堆),以下是实现与卸载 1 NTS

[原创]借助AWR报告分析解决oracleCPU过高的问题

简介:在oracle数据库中,有两个非常实用的自带监控工具EM(Enterprise Manager)和AWR(Automatic Workload Repository).其中,通过AWR报告可以生成易于阅读的监控报告,可协助进行性能问题的诊断和分析.本期将介绍一些AWR报告的基本使用和在性能问题诊断中的应用. 什么是AWR:      从oracle 10g开始,使用名为GATHER_STATS_JOB的计划任务来收集AWR的统计数据,AWR报告中收集了许多不同的统计数据,包括等待事件.各种

K-Means 聚类算法原理分析与代码实现

前言 在前面的文章中,涉及到的机器学习算法均为监督学习算法. 所谓监督学习,就是有训练过程的学习.再确切点,就是有 "分类标签集" 的学习. 现在开始,将进入到非监督学习领域.从经典的聚类问题展开讨论.所谓聚类,就是事先并不知道具体分类方案的分类 (允许知道分类个数). 本文将介绍一个最为经典的聚类算法 - K-Means 聚类算法以及它的两种实现. 现实中的聚类分析问题 - 总统大选 假设 M 国又开始全民选举总统了,目前 Mr.OBM 的投票率为48%(投票数占所有选民人数的百分比

JAVA面向对象思想理解分析

1.面向对象是面向过程而言.两者都是一种思想.面向过程:强调的是功能行为.(强调过程.动作)面向对象:将功能封装进对象,强调了具备了功能的对象.(强调对象.事物)面向对象是基于面向过程的.将复杂的事情变简单了.面向过程-->面向对象:执行者-->指挥者将过程.功能封装进对象里面.面向对象三大特征:封装.继承.多态.(找对象,建立对象,使用对象,维护对象的关系.)老者境界:(万物皆对象!!!)例:公司招聘程序员:为了提高效率,公司老板从面向过程到面向对象(执行者-->指挥者)例:去饭店吃饭

[原创]MLCC全球性缺货分析

2017首季开始全球片式多层陶瓷电容器(MLCC)供应火爆,目前部分厂商交期已延长4周以上,供需缺口达15%.再加之苹果iPhone 8第二季已提前启动备货期,其需求数量极为庞大,至少上亿只,而各大MLCC厂商似乎没有新增产能的计划,日厂也只扩车用的产能,苹果的备货期将加剧导致供需缺口扩大,将是不争的事实. MLCC全球第一阵营的日系大厂为全力支援苹果新一代产品,进一步压缩非苹果系的MLCC产能供应已是现实情况,目前全球MLCC已进入实质的缺货阶段.下面由深圳怡海能达聊聊全球各大MLCC厂家目前

学术_聚类种类分析(1)(转载)

原文作者:http://blog.chinaunix.net/uid-10289334-id-3758310.html (本文转自网上,具体出处忘了是哪里的,好像是上海一位女士在网上的博文,此处转载,用以备查,请原作者见谅) 聚类算法总结:---------------------------------------------------------聚类算法的种类: 基于划分聚类算法(partition clustering) k-means: 是一种典型的划分聚类算法,它用一个聚类的中心来代

【转载】聚类算法小结

聚类算法总结:---------------------------------------------------------聚类算法的种类: 基于划分聚类算法(partition clustering) k-means: 是一种典型的划分聚类算法,它用一个聚类的中心来代表一个簇,即在迭代过程中选择的聚点不一定是聚类中的一个点,该算法只能处理数值型数据 k-modes: K-Means算法的扩展,采用简单匹配方法来度量分类型数据的相似度 k-prototypes: 结合了K-Means和K-M

【转】常见面试之机器学习算法思想简单梳理

转:http://www.chinakdd.com/article-oyU85v018dQL0Iu.html 前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大. 纵观IT行业的招聘岗位,机器学习之类的岗位还是挺少的,国内