[机器学习]聚类算法

常见聚类算法总结 目录 一.关于聚类 什么是聚类: 什么不是聚类: 聚类的种类: 数据间的相似度度量: 簇间相似度度量: 评估不同聚类方案的优劣: 聚类方法的分类: 聚类算法之外的处理方法: 二.划分式聚类方法 k-means: 三.基于密度的聚类: DBSCAN 算法: 四.层次聚类: 凝聚式聚类: 分裂式聚类: 治愈算法(CURE(Clustering Using Representative)): 稀疏化邻近图: 变色龙算法: 五.基. 阅读详情

1 聚类算法简介

# 导包
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.metrics import calinski_harabasz_score
# 构建数据
x,y=make_blobs(n_samples=1000,n_features=2,centers=[[-1,-1],[0,0],[1,1],[2,2]],cluster_std=[0.4,0.2,0.2,0.3],random_state=22)

plt.scatter(x[:,0],x[:,1])
plt.show()

# 聚类
model=KMeans(n_clusters=3,random_state=22)
model.fit(x)
y_pred=model.predict(x)
# 可视化
plt.scatter(x[:,0],x[:,1],c=y_pred)
plt.show()
# 评估
print(calinski_harabasz_score(x,y_pred))

2 KMeans实现流程

3 模型评估方法

3.1 SSE聚类评估指标

 

import os
os.environ['OMP_NUM_THREADS'] = '1'
# 导包
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.metrics import calinski_harabasz_score
# 构建数据
x,y=make_blobs(n_samples=1000,n_features=2,centers=[[-1,-1],[0,0],[1,1],[2,2]],cluster_std=[0.4,0.2,0.2,0.3],random_state=22)

sse=[]
# 计算不同K值下的SSE,来获取K值
for k in range(1,51):
    km=KMeans(n_clusters=k,max_iter=100,random_state=22)
    km.fit(x)
    sse.append(km.inertia_)

plt.plot(range(1,51),sse)
plt.grid()
plt.show()

3.2 SC聚类评估指标

# 计算SC系数
import os
os.environ['OMP_NUM_THREADS'] = '1'
# 导包
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.metrics import calinski_harabasz_score,silhouette_score
# 构建数据
x,y=make_blobs(n_samples=1000,n_features=2,centers=[[-1,-1],[0,0],[1,1],[2,2]],cluster_std=[0.4,0.2,0.2,0.3],random_state=22)

sc=[]
# 计算不同K值下的SC
for k in range(2,51):
    km=KMeans(n_clusters=k,max_iter=100,random_state=22)
    y_pred=km.fit_predict(x)
    sc_=silhouette_score(x,y_pred)
    sc.append(sc_)

plt.plot(range(2,51),sc)
plt.grid()
plt.show()

3.3 CH聚类评估指标

# 计算CH系数
import os
os.environ['OMP_NUM_THREADS'] = '1'
# 导包
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.metrics import calinski_harabasz_score,silhouette_score
# 构建数据
x,y=make_blobs(n_samples=1000,n_features=2,centers=[[-1,-1],[0,0],[1,1],[2,2]],cluster_std=[0.4,0.2,0.2,0.3],random_state=22)

ch=[]
# 计算不同K值下的CH
for k in range(2,51):
    km=KMeans(n_clusters=k,max_iter=100,random_state=22)
    y_pred=km.fit_predict(x)
    ch_=calinski_harabasz_score(x,y_pred)
    ch.append(ch_)

plt.plot(range(2,51),ch)
plt.grid()
plt.show()

4 顾客数据聚类分析

 

import pandas as pd
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score,calinski_harabasz_score
import matplotlib.pyplot as plt
# 读数据
data_df=pd.read_csv('data/customers.csv')
# 计算K值
x=data_df.iloc[:,[3,4]]
sse=[]
sc=[]
for i in range(2,20):
    km=KMeans(n_clusters=i,max_iter=100,random_state=22)
    y_pred=km.fit_predict(x)
    sse.append(km.inertia_)
    sc.append(silhouette_score(x,y_pred))

plt.plot(range(2,20),sse)
plt.grid()
plt.show()

plt.plot(range(2,20),sc)
plt.grid()
plt.show()

import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

data_df=pd.read_csv('data/customers.csv')
x=data_df.iloc[:,[3,4]]
# 模型训练
km=KMeans(n_clusters=5)
y_kmeans=km.fit_predict(x)
# 可视化
plt.scatter(x.values[y_kmeans==0,0],x.values[y_kmeans==0,1])
plt.scatter(x.values[y_kmeans==1,0],x.values[y_kmeans==1,1])
plt.scatter(x.values[y_kmeans==2,0],x.values[y_kmeans==2,1])
plt.scatter(x.values[y_kmeans==3,0],x.values[y_kmeans==3,1])
plt.scatter(x.values[y_kmeans==4,0],x.values[y_kmeans==4,1])
plt.scatter(km.cluster_centers_[:,0],km.cluster_centers_[:,1])
plt.show()

import seaborn as sns
# 设置图形风格
sns.set(style='whitegrid')
# 绘制聚类结果
plt.figure(figsize=(8,6))
plt.scatter(x.values[:,0],x.values[:,1],c=y_kmeans,s=50,cmap='viridis')
# 绘制聚类中心
plt.scatter(km.cluster_centers_[:,0],km.cluster_centers_[:,1],c='red',s=200,alpha=0.75,marker='X',label='Centers')

plt.title('KMeans Clustering Visualization')
plt.xlabel('Age')
plt.ylabel('Spending Score(1-100)')
plt.legend()
plt.show()

Spark ML - 聚类算法 http://ihoge.cn/2018/ML2.html Spark ML - 聚类算法 1.KMeans快速聚类 首先到UR需要的包: import org.apache.spark.ml.clustering.{KMeans,KMeansModel} import org.apache.spark.ml.linalg.Vectors 开启RDD的隐式转换: imp... 阅读详情

相关推荐

【机器学习聚类算法实战-4】机器学习聚类算法之k-均值聚类、分层聚类算法、凝聚聚类和谱聚类实例分析

在机器学习中,聚类算法是一类重要的无监督学习方法,用于将数据集中的样本分成具有相似特征的组或簇。本篇博客将深入探讨四种常用的聚类算法:k-均值聚类、分层聚类算法、凝聚聚类和谱聚类。

一伦明悦的博客 1445

机器学习----聚类算法

1、聚类算法介绍 1.1 聚类算法在现实中的应用 用户画像,广告推荐,搜索引擎的流量推荐,恶意流量识别 基于位置信息的商业推送,新闻聚类,筛选排序 图像分割,降维,识别;离群点检测;信用卡异常消费;发掘相同功能的基因片段 1.2 聚类算法的概念 聚类算法: 一种典型的无监督学习算法,主要用于将相似的样本自动归到一个类别中。 在聚类算法中根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计算方法,会得到不同的聚类结果,常用的相似度计算方法有欧式距离法。 1

LI_dreamit的博客 8483

Python 机器学习 聚类算法

聚类算法是机器学习中一种重要的无监督学习算法,它的目的是将一组数据分成几个簇,使得同一个簇内的数据点之间相似度高,而不同簇内的数据点相似度低。聚类算法广泛应用于数据挖掘、图像分割、市场细分等领域。选择合适的聚类算法通常取决于数据的特性和分析目标。

weixin_42098295的博客 2220

python中的os.environ线程控制

虽然接触过一些机器学习和深度学习的算法,知道海量的参数训练需要使用强大的算力来进行学习,也尝试训练过一些模型,但对这些比较底层的库了解的很少。这些代码设置了一些环境变量,用于控制并行计算库的线程数,以此来提高计算效率。

hinson0710的博客 2230

机器学习(ML)(五)——回归和聚类算法

机器学习

weixin_46569877的博客 666

机器学习 - 聚类算法

聚类是一种无监督学习方法,用于将数据集划分成若干个组(簇),使得同一簇内的数据点之间的相似度尽可能高,而不同簇之间的相似度尽可能低。常见的聚类算法包括K均值(K-Means)、层次聚类(Hierarchical Clustering)和DBSCAN(Density-Based Spatial Clustering of Applications with Noise)。

weixin_47552266的博客 2657

学习代码20231106

通过将其设置为 “1”,你告诉库只使用一个线程来执行并行计算,从而限制了并行性,可能会减慢计算速度,但有时也可以用于解决某些并行计算中的问题。2.[“OMP_NUM_THREADS”]: 这是一个字典索引,用于访问环境变量中名为 “OMPNUMTHREADS” 的项。它的作用是设置名为 “OMPNUMTHREADS” 的环境变量的值为 “1”。需要注意的是,设置环境变量可能会影响整个运行环境中的其他应用程序和代码,因此在设置环境变量时要小心谨慎,确保不会不必要地影响其他部分的功能。

再来一下! 1055

机器学习之聚类算法

机器学习之聚类算法 一、什么是聚类? 物以聚类,人以群分。每个事物找到和自己相似的作为一类就是聚类,从小学到大学的学校生活中,每个人肯定都有自己的小团伙,自发的形成,,,其实这也算是聚类的实例。聚类在新闻分类、用户分组、商品分类等等很多情景都有广泛的应用。 聚类:无需样本标注,无监督聚类,研究数据自身的特点,比如数据向量(人{聪明人,笨人,一般人}) 分类:需要样本标注,数据类别(猴子,人

LongHai_Zheng的博客 1万+

常见的六大聚类算法

(1)首先确定半径r和minPoints. 从一个没有被访问过的任意数据点开始,以这个点为中心,r为半径的圆内包含的点的数量是否大于或等于minPoints,如果大于或等于minPoints则改点被标记为central point,反之则会被标记为noise point。(2)每一次滑动到新的区域,计算滑动窗口内的均值来作为中心点,滑动窗口内的点的数量为窗口内的密度。(3)基于这些概率我们计算高斯分布参数使得数据点的概率最大化,可以使用数据点概率的加权来计算这些新的参数,权重就是数据点属于该簇的概率。

m0_57656758的博客 4922

用workbuddy自定义Skill:手把手搭建AI炒股分析助手

AI Agent正成为个人投资研究的重要工具,而Skill作为行为规范,能让AI输出保持稳定与专业。在AI Agent应用中,很多人分不清Skill与Agent的区别:Agent负责目标拆解与执行,Skill则固化分析流程与输出模板。借助本地工作台workbuddy,用户可自定义Skill,实现从市场环境检查到财务排雷的五段式分析。通过调低温度参数、设定数据验证规则,该方案能有效避免大模型凭空编造数据,帮助个人投资者快速完成基本面体检、资金面观察与风险清单生成。本文基于一套可直接套用的配置与一个月实测,展示

weixin_29038537的博客 547

世界坐标系/相机坐标系/图像坐标系 转换

目录一、各坐标系简要介绍二、坐标系转换2.1 世界坐标系转为相机坐标系2.2 相机坐标系转为物理图像坐标系2.3 物理图像坐标系转为图像坐标系2.4 总结2.5 为什么要使用齐次坐标参考文献 一、各坐标系简要介绍 首先介绍数字图像处理领域中的图像坐标系,如上图左图所示,坐标系O_0为图像坐标系,其原点是在图像的左上角,每一个像素通过其所在位置的列数和行数索引 (u,v) 来表示。 另外需要建立图像坐标与物理单位的关系,而后才能将目标的真实世界坐标转换为图像坐标。即建立以物理单位表示的物理图像坐标系(有些文

流觞时光 1万+

【机器学习】机器学习之聚类算法

​本次实验是一场聚类算法的深度探索之旅,涵盖了K-means、K-medoids、DBSCAN和凝聚聚类等引人注目的算法。K-means通过巧妙的迭代将样本点划分到K个簇,并通过聚类中心的不断更新优化结果。尽管简单高效,但对初始聚类中心选择敏感,K-means++通过独特方式改善了这一问题,显著提升了聚类效果。

朝花夕拾 2万+

Carsim2019与Simulink (Matlab2018b)联合仿真成功(超详细)

Carsim与Simulink联合仿真成功

强强的博客 3万+

[ML]机器学习_聚类算法

聚类是一种机器学习和数据挖掘技术,它是将数据集中的数据对象分成不同的组或类的过程。它的目的是识别出数据集中相似的数据对象,并将它们分组。聚类算法通常基于两个基本假设:相似性和连续性。相似性假设认为属于同一组的数据对象应该具有相似的属性值。连续性假设认为属于同一组的数据对象应该彼此接近。聚类算法可以用于各种不同的领域,例如数据挖掘、生物学、图像处理和市场营销。聚类的结果可以用于确定数据集中的模式和结构,以及发现数据集中的异常值和离群点。

iazzz的博客 761

java 对接工行聚富通H5聚合支付接口

java 对接工行聚富通H5聚合支付接口

lgl的博客 860

人工智能入门系列之一: 鸢尾花(Iris)多分类的神经网络详解及代码实现

这是最好的时代,我们一起来打造属于自动驾驶汽车上路、无人机飞天、智能机器人管工厂的AI未来 人工智能领域分化为两个阵营:其一是规则式(rule-based)方法,在人工智能早期占主峰;其二是神经网络(neural network)方法,后起之秀。随着硬件水平的提高,算力的指数式增长;人工智能的重心已经从规则式的专家时代转移到神经网络的数据时代。 “神经网络”不选择把人脑熟稔的逻辑规则传授给计算机...

NLP家的码奴小荷的博客 2万+

spark ml聚类算法

K-means与高斯混合函数聚类的简单介绍与spark代码使用

qq_38142901的博客 1692

紫光同创FPGA中ADF网表文件的黑匣子封装与PDS环境实战指南

本文详细介绍了在紫光同创FPGA开发环境中使用ADF网表文件进行黑匣子封装的实战指南。通过PDS环境配置、加密ADF生成、黑匣子集成及验证调试等步骤,帮助开发者实现核心IP保护,同时保持设计性能。特别适用于需要模块级代码保护的企业级FPGA开发场景。

weixin_33725239的博客 342

【ML】分类与聚类算法

它的工作假设是一个特征的存在不依赖于其他特征的存在。聚类是无监督学习算法的一个例子,与回归和分类相反,它们都是监督学习算法的例子。在理想情况下,属于某个集群的数据点必须具有相似的特征,而属于其他集群的数据点必须尽可能彼此不同。基于密度的聚类,如 DBSCAN,使用这种策略,但它考虑了更多的因素。K-means 聚类 : 它首先建立一组固定的 k 段,然后使用距离度量来计算将每个数据项与各个段的聚类中心分开的距离。分类方法用于将标签分配给作为将可用数据分类为预定数量的类别的结果而生成的每个类别。

sikh_0529的博客 553

rk3576 点亮 LCD(mipi)

瑞芯微 RK3576 是一款面向中高端 AIoT 市场的 SoC,其 MIPI DSI (Display Serial Interface) 接口在性能和灵活性上相比前代(如 RK3399/RK3568)有显著提升,特别是在物理层协议的支持上更加现代化。相比RK3399 RK3568的mipi 接口少了 8lane,但是RK3576 MIPI DSI 增加更低功耗的 C-PHY。

weixin_35723192的博客 364

Claude Code 从入门到精通,通过实战项目穿插 Agent Skills、MCP、Hooks、子代理、插件等十五个知识点

本文介绍了Claude Code的高级使用技巧,通过一个个人简历网站实战项目,详细讲解了15个核心知识点。主要内容包括:三种权限模式(默认/编辑/计划)的使用与切换;历史会话管理(/resume、/rename、/clear命令);会话回滚功能(/rewind);以及危险参数--dangerously-skip-permissions的注意事项。文章还演示了如何通过计划模式拆分代码文件,并强调了在复杂任务中仔细检查规划步骤的重要性。这些技巧能帮助开发者更高效地使用Claude Code完成项目开发。

1793

机器学习—聚类算法

它是一种无监督学习方法,用于对未标记的数据进行分类。聚类的目标是将数据集中的对象分成多个组(簇),使得同一个簇内的对象彼此相似,而不同簇的对象彼此相异。

miyajatelin的博客 1176

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ml5.js入门四(介绍)+kmeansk均值聚类算法

一 ,ml5.js是什么 ml5.js 它是基于Tensorflow.js的一个非常简便易用的接口,目的是让更广泛的受众更容易使用机器学习。(结合官网食用) 其他知识点索引点这里 描述 KMeans 聚类算法。 所谓聚类算法是指将一堆没有标签的数据自动划分成几类的方法,属于无监督学习方法,这个方法要保证同一类的数据有相似的特征,如下图所示: 官方实例 const data = [{ x: 0, y: 0 }, { x: 0, y: 1 }, { x: 1, y: 0 }, { x: 1, y: 1 }];

redrun博客 1039

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

老版QQ原生表情gif动态

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

机器学习——聚类算法-KMeans聚类

KMeans聚类是一种常用的无监督学习算法,通过迭代计算样本的簇心和样本的簇分配,将样本划分为不同的簇。本文介绍了KMeans算法的原理、流程、聚类质量评价方法、优缺点以及KMeans++算法,并通过Python实现了一个简单的KMeans聚类算法示例。KMeans聚类算法可以应用于许多领域,如数据分析、模式识别和图像分割等。

weixin_39753819的博客 1610

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

机器学习之聚类Kmeans算法

主要介绍KMeans聚类算法,包括使用到的三种评估方法以及一个客户数据的案例

qq_57095929的博客 2334
上一篇: [机器学习]决策树
下一篇: [深度学习]Pytorch框架
Letmooning
博客等级 码龄2年 503粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值