数据分析方法-聚类算法

文章目录

  • 一、定义
  • 二、聚类、分类区别分类
  • 三、聚类常用算法
    • 1.划分聚类 k-means、k-medoids、k-modes、k-medians、kernel k-means
    • 2.层次聚类 Agglomerative 、divisive、BIRCH、ROCK、Chameleon
    • 3.密度聚类 DBSCAN、OPTICS
    • 5.模型聚类 GMM
    • 6.图聚类 Spectral Clustering(谱聚类)

一、定义

聚类(Clustering)就是一种寻找数据之间内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作簇。处于相同簇中的数据实例彼此相同,处于不同簇中的实例彼此不同。数据之间的相似性是通过定义一个距离或者相似性系数来判别的。

二、聚类、分类区别分类

分类聚类
是一种有监督式的学习过程是一种无监督式的学习过程
其初始和结果都是有标签式标记其初始和结果无标签式标记
其结果是有意义的分类其结果无意义的分类
是示例式学习是观察式学习

三、聚类常用算法

1.划分聚类 k-means、k-medoids、k-modes、k-medians、kernel k-means

基于划分的聚类方法是一种自顶向下的方法,对于给定的 n 个数据对象的数据集 D,将数据对象组织成 k(k≤n) 个分区,其中,每个分区代表一个簇。示意图:
示意图

2.层次聚类 Agglomerative 、divisive、BIRCH、ROCK、Chameleon

基于层次的聚类方法是指对给定的数据进行层次分解,直到满足某种条件为止。该算法根据层次分解的顺序分为自底向上法和自顶向下法,即凝聚式层次聚类算法和分裂式层次聚类算法。
1)自底向上法。
首先,每个数据对象都是一个簇,计算数据对象之间的距离,每次将距离最近的点合并到同一个簇。然后,计算簇与簇之间的距离,将距离最近的簇合并为一个大簇。不停地合并,直到合成了一个簇,或者达到某个终止条件为止。
簇与簇的距离的计算方法有最短距离法、中间距离法、类平均法等,其中,最短距离法是将簇与簇的距离定义为簇与簇之间数据对象的最短距离。自底向上法的代表算法是AGNES(AGglomerativeNESing)算法。
2)自顶向下法。
该方法在一开始所有个体都属于一个簇,然后逐渐细分为更小的簇,直到最终每个数据对象都在不同的簇中,或者达到某个终止条件为止。自顶向下法的代表算法是 DIANA(DivisiveANAlysis)算法。
基于层次的聚类算法的主要优点包括,距离和规则的相似度容易定义,限制少,不需要预先制定簇的个数,可以发现簇的层次关系。基于层次的聚类算法的主要缺点包括,计算复杂度太高,奇异值也能产生很大影响,算法很可能聚类成链状。

3.密度聚类 DBSCAN、OPTICS

基于密度的聚类方法的主要目标是寻找被低密度区域分离的高密度区域。与基于距离的聚类算法不同的是,基于距离的聚类算法的聚类结果是球状的簇,而基于密度的聚类算法可以发现任意形状的簇。
基于密度的聚类方法是从数据对象分布区域的密度着手的。如果给定类中的数据对象在给定的范围区域中,则数据对象的密度超过某一阈值就继续聚类。
这种方法通过连接密度较大的区域,能够形成不同形状的簇,而且可以消除孤立点和噪声对聚类质量的影响,以及发现任意形状的簇。示意图:
1
4.网格聚类 STING
基于网格的聚类方法将空间量化为有限数目的单元,可以形成一个网格结构,所有聚类都在网格上进行。基本思想就是将每个属性的可能值分割成许多相邻的区间,并创建网格单元的集合。每个对象落入一个网格单元,网格单元对应的属性空间包含该对象的值.
基于网格的聚类方法的主要优点是处理速度快,其处理时间独立于数据对象数,而仅依赖于量化空间中的每一维的单元数。这类算法的缺点是只能发现边界是水平或垂直的簇,而不能检测到斜边界。另外,在处理高维数据时,网格单元的数目会随着属性维数的增长而成指数级增长。
示意图:
2

5.模型聚类 GMM

基于模型的聚类方法是试图优化给定的数据和某些数学模型之间的适应性的。该方法给每一个簇假定了一个模型,然后寻找数据对给定模型的最佳拟合。假定的模型可能是代表数据对象在空间分布情况的密度函数或者其他函数。这种方法的基本原理就是假定目标数据集是由一系列潜在的概率分布所决定的。
下图给出了对基于划分的聚类方法和基于模型的聚类方法进行了对比。左侧给出的结果是基于距离的聚类方法,核心原则就是将距离近的点聚在一起。右侧给出的基于概率分布模型的聚类方法,这里采用的概率分布模型是有一定弧度的椭圆。标出了两个实心的点,这两点的距离很近,在基于距离的聚类方法中,它们聚在一个簇中,但基于概率分布模型的聚类方法则将它们分在不同的簇中,这是为了满足特定的概率分布模型。
3

6.图聚类 Spectral Clustering(谱聚类)

基于图聚的聚类方法是把所有的数据看做空间中的点,这些点之间可以用边连接起来。距离较远的两个点之间的边权重值较低,而距离较近的两个点之间的边权重值较高,通过对所有数据点组成的图进行切图,让切图后不同的子图间边权重和尽可能的低,而子图内的边权重和尽可能的高,从而达到聚类的目的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java6 WebService学习

参考了网络上中资料,自己学习实践了一个Java6 WebService. 首先,建立一个WebService: package garfield;import javax.jws.WebService;import javax.xml.ws.Endpoint;WebServicepublic class MyJ6WebService {public String SayHello(String strName) {r…

公司人员离职情况分析及预测(工具:python)

前言 目前社会上呈现出一种公司招不到人,大批失业人员的矛盾现象,且大部分公司的离职率居高不下,很多入职没多久就辞职,所花费的培训招聘等资源都浪费了。为了弄清楚公司员工离职原因,通过kaggle上某一家企业员工离职…

LeetCode MySQL 1241. 每个帖子的评论数

文章目录1. 题目2. 解题1. 题目 表 Submissions 结构如下: ------------------------- | 列名 | 类型 | ------------------------- | sub_id | int | | parent_id | int | ------------------------- 上表没有主键, 所以可能…

新浪微博数据网络舆情分析客户端软件

这是我们北邮某实验室完全自主开发的数据挖掘和分析软件,用于处理海量数据,建立从数据采集,整理,分析,可视化,存储的全部服务。目前程序正在不断开发中。将在后期发布其测试版本。 转载于:https://www.cnbl…

LeetCode MySQL 1141. 查询近30天活跃用户数

文章目录1. 题目2. 解题1. 题目 活动记录表:Activity ------------------------ | Column Name | Type | ------------------------ | user_id | int | | session_id | int | | activity_date | date | | activity_type | enum | ---…

(jquery插件)打造百分比动态色彩条

以前没写过jquery插件,在开发这个时,写一下代码,又看一下jquery插件的定义(如何开发之类的东东),来来去去的。 之所以要写这个插件,主要是为了往后的项目中方便实现这类型的功能,在之…

LeetCode MySQL 1517. Find Users With Valid E-Mails(正则表达式)

文章目录1. 题目2. 解题1. 题目 Table: Users ------------------------ | Column Name | Type | ------------------------ | user_id | int | | name | varchar | | mail | varchar | ------------------------user_id is the primary ke…

数据分析-书籍整理(三)

《淘宝网店大数据营销》一套网店搭建的整体体系,从如何做好网店展开说,有很多实用方法,对运营有很大的帮助,方便数据分析人员理解业务 《京东平台数据化运营》讲解了一些京东的知识,很多更淘宝运营相似,只…

基于消息队列的日志组件

1 简介 1.1 类图 1.2 说明 日志支持的存储方式有:文本,xml,数据库三种。如果采用数据库方式,支持的数据库有sql server、oracle。日志采用读写分离的方式,客户端发送日志到消息队列,然后服务端程序读取消息队列&…

LeetCode MySQL 1495. Friendly Movies Streamed Last Month

文章目录1. 题目2. 解题1. 题目 Table: TVProgram ------------------------ | Column Name | Type | ------------------------ | program_date | date | | content_id | int | | channel | varchar | ------------------------ (program_date, conte…

电商用户行为分析与挖掘(MYSQL数据分析+SPSS构建RFM模型)

前言 毫不夸张的说在中国除了婴幼儿及七八十以上的老年人,都有过网购经历。电商公司就如雨后春笋般迅速发展。了解用户的网购行为,有助于商家定品类,定营销方案等。利用数据分析与挖掘,争取做到比顾客自己还了解TA自己。 文章目录…

LeetCode MySQL 1113. 报告的记录

文章目录1. 题目2. 解题1. 题目 动作表:Actions ------------------------ | Column Name | Type | ------------------------ | user_id | int | | post_id | int | | action_date | date | | action | enum | | extra…

淘宝用户行为分析

前言 现在越来越多的线下转型到了线上经营,线下体验店线上购物将成为日后消费的大趋势。分析用户行为,走好转型之路,掌握先机快人一步。 文章目录前言一、背景Ⅰ 数据来源Ⅱ 数据背景Ⅲ 分析目的二、探索性分析Ⅰ 导入数据Ⅱ 数据处理1、缺失…

LeetCode 第 198 场周赛(434/5778,前7.51%)

文章目录1. 比赛结果2. 题目1. LeetCode 5464. 换酒问题 easy2. LeetCode 5465. 子树中标签相同的节点数 medium3. LeetCode 5466. 最多的不重叠子字符串 medium4. LeetCode 5467. 找到最接近目标值的函数值 hard1. 比赛结果 第二题图的边给的不一定按顺序的,我按有…

LeetCode MySQL 619. 只出现一次的最大数字

文章目录1. 题目2. 解题1. 题目 表 my_numbers 的 num 字段包含很多数字,其中包括很多重复的数字。 你能写一个 SQL 查询语句,找到只出现过一次的数字中,最大的一个数字吗? --- |num| --- | 8 | | 8 | | 3 | | 3 | | 1 | | 4 |…

幸福感数据分析与预测

文章目录分析目的一、数据采集1、 数据来源2、 数据说明二、数据传输三、数据处理1、查看数据2、缺失值处理3、合并数据集4、时间数据处理5、分组及One-hot编码处理四、数据分析1、描述性统计2、探索性分析1 是否与所在地是城市or农村有关2 是否与性别有关3 是否与年龄有关4 是…

LeetCode MySQL 1142. 过去30天的用户活动 II

文章目录1. 题目2. 解题1. 题目 Table: Activity ------------------------ | Column Name | Type | ------------------------ | user_id | int | | session_id | int | | activity_date | date | | activity_type | enum | ------------------…

MYSQL练习题

MYSQL练习题 数据表建立代码及题目解答 提取码:e6lk

LeetCode MySQL 1280. 学生们参加各科测试的次数

文章目录1. 题目2. 解题1. 题目 学生表: Students ------------------------ | Column Name | Type | ------------------------ | student_id | int | | student_name | varchar | ------------------------主键为 student_id(学生ID)&a…

LeetCode MySQL 597. 好友申请 I :总体通过率

文章目录1. 题目2. 解题1. 题目 在 Facebook 或者 Twitter 这样的社交应用中,人们经常会发好友申请也会收到其他人的好友申请。现在给如下两个表: 表: friend_request | sender_id | send_to_id |request_date| |-----------|------------…