12 聚类模型 -- 机器学习基础理论入门

news/2024/5/20 6:23:15 标签: 聚类, 算法, 机器学习

12 聚类模型 – 机器学习基础理论入门

4.1 聚类问题介绍

定义

聚类分析又称群分析,目标时将样本划分为紧密关系的子集或簇

在这里插入图片描述

应用

聚类分析在实际中应用非常广泛,如:市场细分、社交圈分析、天体数据分析等
在这里插入图片描述

聚类要求

聚类分析的目标时将样本划分为紧密关系的子集或簇。一般要求同一类内的相似度尽量大,不同类间的差异度尽量大。

常用聚类算法

(1) KMeans聚类
(2) 层次聚类
(3) 密度聚类
(4) 高斯混合聚类
(5) 谱聚类

4.2 K-Means聚类

Kmeans聚类过程

Kmeans算法时无监督模型,其核心思想是:对于给定的样本集,按照样本点之间的距离大小,将样本集划分为K各簇,并让簇内的点尽量紧凑,而让簇间的点尽量分开。
在这里插入图片描述
K=2时,随机选取两个点作为中心点,计算每个样本点到中心点的距离,按距离远近样本点分成2簇,计算新簇的样本的均值作为新的中心点,然后重复上述过程。

Kmeans聚类关键点

几个关键点:聚类簇数K的选择、K各聚类中心点的初始值选择、距离度量方式、损失计算方式。
(1) 聚类簇数K的选择
K值得选择是一个比较难处理得点,事先并不知道该聚类成几类;传统得kmeans算法采用人工试探或超参数搜索得形式来确定。
(2) K个聚类中心点得初始值选择
K个聚类中心点得初始值选择直接影响迭代次数;传统得kmeans算法是随机选择初始值得方式;改进版待续。
(3) 距离度量方式
一般采用欧式距离,即:
在这里插入图片描述
(4) 损失计算方式
聚类每更新一次,需要计算一次损失情况,聚类问题得损失函数是各个簇中样本向量到对应簇均值向量的均方误差。

在这里插入图片描述
很明显,目标就是最小化这个均方误差。

Kmeans聚类改进版

1)k-means++
随机选择初始聚类中心存在较大偶然性,改进版k-means++算法如下:
在这里插入图片描述
2) mini batch k-means
k-means算法需要计算所有样本点到各聚类中心的距离,若样本量较大时此过程非常耗时;大数据时代,这样的场景越来越多。因此,剔除另一种改进版—mini batch k-means:
在做k-means算法前先对大样本数据进行一次随机采样,采样得到的样本再用k-means进行聚类。一般进行多次mini batch后进行多次k-means聚类,最后选择最优的聚类簇。可能会有一些信息损失。

Kmeans算法优缺点

优点
(1) 原理简单,易实现,收敛速度较快,可解释性较强
(2) 需要调节的参数较少(主要是聚类簇数K),且聚类效果较好。
缺点
(1) 聚类簇数K值得选择不好把握,一般只能通过暴力搜索法来决定;
(2) 只适合簇型数据,对其他类型数据的聚类效果可能一般;
(3) 当数据存在比较严重的类别不平衡时,聚类效果不佳;
(4) 当数据量较大时,计算量较大,采用mini batch的方式虽然可以缓解,但可能会牺牲准确度。

4.3 层次聚类

层次聚类过程

层次聚类(hierarchial clustering)就是一层一层的进行聚类
可以由上向下的类别分割,叫做分裂法;也可以由下向上对小的类别进行聚合,叫做凝聚法;一般用的比较多的是是由下向上的凝聚法。

凝聚法步骤:

(1) 将每个样本点当作一个类簇,原始类簇大小等于样本点的个数;
(2) 计算各簇间的距离,然后合并距离最近的两个簇;
(3) 重复步骤(2)直到达到某种条件或达到设定的聚类数目。
在这里插入图片描述

层次聚类的距离度量

层次聚类的关键是计算簇间的距离后合并相近的簇,所以距离的度量很关键;
层次聚类的距离度量由以下三种:
(1) 最小距离:由两个簇的最近样本决定簇的距离。
(2) 最大距离:由两个簇的最远样本决定。
(3) 平均距离:由两个簇的所有样本共同决定。
采用最小或最大距离时,聚类结果可能受噪声点的影响较大,但计算量较小;采用平均距离抗噪声能力较强,但计算量增大,一般采用平均距离。
在这里插入图片描述

层次聚类的优缺点

优点
(1) 能够展现数据层次结构,易于理解;
(2) 可以基于层次事后再选择类的个数。
缺点
计算量比较大,不适合样本量大的情形

4.4 密度聚类

DBSCAN聚类介绍

密度聚类算法假设聚类结构能够通过样本分布的紧密程度确定;其从样本密度的角度考察样本之间的可连接性,并且基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
DBSCAN是一种著名的密度聚类算法,其基于一组“邻域”(minpts)参数来刻画样本分布的紧密程度;
思想:由密度可达关系导出的最大密度相连的样本集合,即为最终聚类的一个簇。
基本概念:
在这里插入图片描述

DBSCAN聚类举例

在这里插入图片描述

DBSCAN聚类关键点

在这里插入图片描述
簇的个数不用事先设定,可以按照核心对象的逐步减少生成最后的聚类簇。

注意点

在这里插入图片描述

DBSCAN聚类的优缺点

优点
(1) 可以对任意形状的稠密数据集进行聚类(K-Means聚类一般只适用于凸数据集);
(2) 可以在聚类的同时发现异常点,对数据集中的异常点不敏感;
(3) 聚类结果没有偏倚(K-Means聚类初始值对聚类结果有很大影响)。
缺点
在这里插入图片描述

4.5 本章小结

知识点回顾
在这里插入图片描述
学习要求
掌握几种常见聚类模型的原理、聚类过程、核心概念、相互之间的异同点、各自的优缺点、以及各自的适用场景。


http://www.niftyadmin.cn/n/1264003.html

相关文章

14 机器学习模型复杂度度量 -- 机器学习基础理论入门

14 机器学习模型复杂度度量 – 机器学习基础理论入门 6.1 经验风险与结构风险 机器学习三要素 机器学习 模型 策略 算法 模型:所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数;要考虑的是按照什么样的准则…

15 机器学习模型评估指标--机器学习基础理论入门

15 机器学习模型评估指标–机器学习基础理论入门 7.1 回归问题评估指标 绝对误差 绝对误差为预测点与真实点之间距离之差的绝对值的平均值,即: 均方误差 均方误差为预测点与实际点之间距离之差平方和的均值,即 因为绝对误差不是光滑的…

10 回归模型 --机器学习基础理论入门

10 回归模型 --机器学习基础理论入门 1.1 线性回归模型 梯度下降法 最小化损失函数常用方法就是梯度下降算法,如果要收敛到最小值附近,则函数须为凸函数。如果凹凸不平,不易得到整体最小值。在多元微分学中,梯度就是函数的导数方…

leetcode 41 最长不重复子串 python

leetcode 41 最长不重复子串 python 给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。 # # # param arr int整型一维数组 the array # return int整型 # class Solution:def maxLength(self , arr ):# write code heredic{}res…

leetcode 144 正负数交错排列(不占用额外存储空间) python

leetcode144 正负数交错排列&#xff08;不占用额外存储空间&#xff09; python def arr_rank(arr):arrsorted(arr)#升序排序#若均为正数或均为负数&#xff0c;直接输出if arr[0]>0 or arr[-1]<0:return arr#start,end0,len(arr)-1#计算负数的个数for i in range(len(…

leetcode 65.斐波那契数列 python

leetcode 65.斐波那契数列 python 题目描述 大家都知道斐波那契数列&#xff0c;现在要求输入一个整数n&#xff0c;请你输出斐波那契数列的第n项&#xff08;从0开始&#xff0c;第0项为0&#xff0c;第1项是1&#xff09;。 n<39 解法1 #动态规划 def fbnq_arr(n):if n…

leetcode 17 最长回文子串 python

leetcode 17 最长回文子串 python 对于一个字符串&#xff0c;请设计一个高效算法&#xff0c;计算其中最长回文子串的长度。 给定字符串A以及它的长度n&#xff0c;请返回最长回文子串的长度。 class Solution:def getLongestPalindrome(self, A, n):# write code heremaxl…

leetcode 127 最长公共子串:给定两个字符串str1和str2,输出两个字符串的最长公共子串 题目保证str1和str2的最长公共子串存在且唯一。 python

leetcode 127 最长公共子串 python 给定两个字符串str1和str2,输出两个字符串的最长公共子串 题目保证str1和str2的最长公共子串存在且唯一。 class Solution:def LCS(self , str1 , str2 ):# write code heres1,s2,for i in str1:s1s1iif s1 in str2:if len(s1)>len(s2):…