当前位置: 首页 > news >正文

[机器学习]聚类算法

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值下的SSE,来获取K值
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聚类评估指标

http://www.lryc.cn/news/436756.html

相关文章:

  • JVM面试真题总结(七)
  • 深入理解CASAtomic原子操作类详解
  • C51单片机-单按键输入识别,键盘消抖
  • 基于CNN卷积神经网络迁移学习的图像识别实现
  • 【iOS】push和present的区别
  • 在Linux服务器上添加用户并设置自动登录
  • 网站被爬,数据泄露,如何应对不断强化的安全危机?
  • 为什么HTTPS会引入SSL/TLS协议
  • Spring AOP,通知使用,spring事务管理,spring_web搭建
  • PHP无缝对接预订无忧场馆预订系统小程序源码
  • Unet改进30:添加CAA(2024最新改进方法)|上下文锚定注意模块来捕获远程上下文信息。
  • OpenAI震撼发布最强模型o1!强化学习突破LLM推理极限
  • 速通GPT-2:Language Models are Unsupervised Multitask Learners全文解读
  • Python 最小公倍数计算器:从基础到应用
  • 网络学习-eNSP配置路由器
  • 在 React 中,如何使用 Context API 来实现跨组件的通信?
  • 【基础算法总结】位运算
  • 组件通信——provide 和 inject 实现爷孙组件通信
  • 【ShuQiHere】探索人工智能核心:机器学习的奥秘
  • LeeCode打卡第二十四天
  • 什么是科技与艺术相结合的异形创意圆形(饼/盘)LED显示屏
  • AI大模型知识点大梳理_ai大模型知识学习,零基础入门到精通,收藏这一篇就够了
  • NVG040W语音芯片:为制氧机带来个性化语音提示和报警功能
  • OpenCV结构分析与形状描述符(12)椭圆拟合函数fitEllipseAMS()的使用
  • 安卓显示驱动
  • java重点学习-集合(List)
  • 【PCB测试】最常见的PCB测试方法
  • AtCoder Beginner Contest 370 ABCD题详细题解(C++,Python)
  • 斯坦福研究人员探讨大型语言模型在社交网络生成中的应用及其在政治同质性上的偏见
  • 一招教你找到Facebook广告的最佳发帖时间