K-Means、DBSCAN、GMM聚类原理及使用

机器学习入门(九):非监督学习:5种聚类算法+2种评估模型 聚类算法(Clustering Algorithms)常用于进行非监督学习(unsupervised learning),即它处理的是没有事先标记分类的数据。一共介绍五种常见聚类算法: K-means Hierarchical GMM DBSCAN(基于密度的聚类算法) 基于网格Grid的聚类算法 距离公式 在了解聚类算法如何实现之前,需要先了解几种常见的距离计算公式,因为聚类算法会通过距离判断两... 阅读详情

一.聚类概述及基本使用

目的:对于样本空间中的不同样本希望在经过聚类后得到分类的效果

例:一个坐标轴中有多个点,每个点都有对应的坐标,样本空间表示为[[x1,y1],[x2,y2],[x3,y3]]一个二维向量

过程:样本空间 -->f()函数中(可以指定分成几类) -->聚类结果

import matplotlib.pyplot as plt
from sklearn import datasets
#产生样本点 :5000样本点,内外圆环间的比例,噪声系数
x,y = datasets.make_circles(n_samples=5000,factor=0.5,noise=0.05)
#其中 x是生成的样本点,y是样本点的标注如array([0, 1, 1, ..., 0, 1, 0])

plt.figure(figsize=(5,5))
plt.scatter(x[:,0],x[:,1],marker='o',c=y)  #c=y:根据y来设置颜色

#K-means聚类
from sklearn.cluster import KMeans
y_pred = KMeans(n_clusters=2,random_state=2021).fit_predict(x)
plt.figure(figsize=(5,5))
plt.scatter(x[:,0],x[:,1],c=y_pred)
plt.title("K-means")

#DBSCAN聚类
from sklearn.cluster import DBSCAN
y_pred =DBSCAN(eps=0.1,min_samples=10).fit_predict(x) #eps半径,min_samples邻居10个点
plt.figure(figsize=(5,5))
plt.scatter(x[:,0],x[:,1],c=y_pred)
plt.title("DBSGAN")

二.算法理解及解释

1.K-Means算法(划分聚类)

聚类算法理论篇(K-means,DBSCAN原理)_visualizing k-means clustering-优快云博客

可以参考这个博客

理解:简单来说这个算法先是根据我们输入的经验类别K来随便放置K个点,对这K个点分区然后计算3(K)个区中的3(K)个中心点,中心点的位置就是一个聚类区中所有向量的均值,而中心点作为新一轮的点位重新分区再计算新的中心点,直到点位不再发生改变,在数学公式上就对于所有点位分区的后各个区的点到中心点欧式距离之和的值最小。

优点:原理简单,实现容易,可解释性强,对于凸数据集聚类效果好

缺点:需要指定K类,这需要观察和经验,对非凸数据集效果差,容易受到噪声,边缘点,孤立点影响

2.DBSCAN算法(密度聚类)

Question:

1.如何判断高密度的对象点?

2.如何判断离群/噪声点?

3.如何发现簇,如何分类?

簇的定义:数据空间中被低密度区域(噪声)分隔开的稠密对象区域,发现并划分任意形状含有噪声的样本空间中的高密度区域为簇。(密度相连点的最大集合)

label =DBSCAN(eps=10,min_samples=10).fit_predict(train_array)

各类聚类算法整理 本篇将介绍整理各种聚类算法,包括k-means,GMM(Guassian Mixture Models, 高斯混合),EM(Expectation Maximization,期望最大法),Spectral Clustering(谱聚类),Mean Shift(均值偏移)和DBSCAN(Density-Based Spatial Clustering of Applications with Noise) 阅读详情

相关推荐

使用这个算法我可以实现英雄联盟里英雄的走位|Java 开发实战

A算法,A(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。 基本概念 首先在大学我们遇到最多的算法Dijkstra、Floyd、广度搜索、深度搜索。关于这些算法我们以后再慢慢的研究,今天的重点在A算法上。A算法是一种启发式算法。与上述几种算法不同的是A*算法在考虑起始节点的同时还会考虑到目标节点的代价。 在A*算法中我们给每个节点都定义一些属性。最基本的就是下文提到的三基数-这里的三基数是我自己定义.

Java进阶营 312

STM32H745xI双核芯片SMPS/LDO配置误区:从复位失败到精准排查的实战复盘

本文详细分析了STM32H745xI双核芯片在SMPS/LDO配置中的常见误区,特别是复位失败问题的排查过程。通过对比参考板与故障板的波形数据,揭示了电感选型不当导致的电源稳定性问题,并提供了硬件设计检查清单和调试技巧,帮助开发者避免类似陷阱。

weixin_42531588的博客 265

Megatron单机多卡Qwen2.5:pre-train+sft

英伟达:https://github.com/NVIDIA/Megatron-LM/releases/tag/core_r0.8.0阿里:https://github.com/alibaba/Pai-Megatron-Patch/releases/tag/v0.10.2。

weixin_46873015的博客 2180

【SABRE 3D, SABRE 3DxT,LAM设备】2025年9月10日

前文:SABRE 3D系列机台简介本章节详细阐述了在维护期间锁定电气、机械、热力学及重力组件以及化学管线输入的锁定操作流程,旨在降低人员受伤风险。p42~p55。

weixin_46735260的博客 1617

RDM协议控制端实战:从数据包构造到高效设备发现算法

本文深入探讨了RDM协议控制端的核心开发流程,涵盖从数据包构造、发送到响应解析的全过程。重点解析了如何利用二分搜寻算法高效实现网络设备发现,并分享了组包、解包中的关键代码实现与常见调试技巧,为舞台灯光与智能硬件领域的嵌入式开发提供实战指导。

week9的博客 459

双脉冲测试中IGBT驱动电阻和驱动电容的研究

  在LTspice中没有双脉冲波形发生器,要做一个双脉冲的波形只能用电压源来进行特殊设置,不是很方便,为此我写了一个双脉冲波形发生器,有需要的可以下载。双脉冲波形发生器。   如下,该元器件可以自定义延迟时间Td,第一个脉冲宽度T1,第二个脉冲宽度T3,两个脉冲间隔T2,脉冲循环个数Ncycle以及高低电平Vhigh,Vlow。       IGBT开通时Rg的影响: 如果增大Rg: ①开通延...

gaoyong_wang的博客 8356

[网络安全提高篇] 一二〇.恶意软件动态分析经典沙箱Cape批量提取动态API特征

这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文详细介绍动态分析沙箱Cape的安装过程,其是一个开源的自动恶意软件分析系统,通过自动运行和分析恶意软件,全面分析和提取恶意软件的关键特征。然而,当样本数量增加时,单个样本分析会降低效率。这篇文章将讲解如何实现Cape沙箱的批量分析,通过调用Python脚本文件来实施批量处理,并将分析结果存储在指定位置,最后补充submit.py的参数及Python调用方式。基础性文章,希望对您有帮助!

杨秀璋的专栏 4124

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 人脸属性编辑-课程笔记
回眸- instan
博客等级 码龄6年 25粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值