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

9.sklearn-K-means算法

文章目录

  • 环境配置(必看)
  • 头文件引用
    • K-means算法
      • 1.简介
      • 2.API
      • 3.代码工程
      • 4.运行结果
      • 5.模型评估
      • 6.小结
        • 优缺点

环境配置(必看)

Anaconda-创建虚拟环境的手把手教程相关环境配置看此篇文章,本专栏深度学习相关的版本和配置,均按照此篇文章进行安装。

头文件引用

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.metrics import calinski_harabasz_score
import matplotlib.pyplot as plt

K-means算法

1.简介

1)一种典型的无监督学习算法,
2)主要用于将相似的样本自动归到一个类别中
3)计算样本和样本之间的相似性,一般使用欧式距离

2.API

sklearn.cluster.KMeans(n_clusters=8)
参数:
n_clusters:开始的聚类中心数量
整型,缺省值=8,生成的聚类数,即产生的质心(centroids)数。
方法:
estimator.fit(x)
estimator.predict(x)
estimator.fit_predict(x)
计算聚类中心并预测每个样本属于哪个类别,相当于先调用fit(x),然后再调用predict(x)

3.代码工程

# 创建数据集
# X为样本特征,Y为样本簇类别, 共1000个样本,每个样本2个特征,共4个簇,
# 簇中心在[-1,-1], [0,0],[1,1], [2,2], 簇方差分别为[0.4, 0.2, 0.2, 0.2]
# n_features=2 -- 2维(x轴, y轴)2个特征
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.2],
                  random_state=9)


y_pred = KMeans(n_clusters=4, random_state=9).fit_predict(X)

# 分别尝试n_cluses=2\3\4,然后查看聚类效果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.show()


# 用Calinski-Harabasz Index评估的聚类分数
print(calinski_harabasz_score(X, y_pred))

4.运行结果

经过测试,n_clusters=4的时候最佳
calinski_harabasz_score的值越大越好

在这里插入图片描述
在这里插入图片描述

5.模型评估

此部分知识不详细赘述了,可以自行网上搜集资料

1.SSE - 误差平方和
2.“肘”方法 - K值确定
3.SC - 轮廓系数法
4.CH - CH系数

在这里插入图片描述

6.小结

K-means聚类实现流程【掌握】
1.事先确定常数K,常数K意味着最终的聚类类别数;
2.随机选定初始点为质心,并通过计算每一个样本与质心之间的相似度(这里为欧式距离),将样本点归到最相似的类中,接着,重新计算每个类的
质心(即为类中心),重复这样的过程,直到质心不再改变,最终就确定了每个样本所属的类别以及每个类的质心。
注意:
	由于每次都要计算所有的样本与每一个质心之间的相似度,故在大规模的数据集上,K-Means算法的收敛速度比较慢。
优缺点

在这里插入图片描述


http://www.kler.cn/news/321896.html

相关文章:

  • 人员个体检测、PID行人检测、行人检测算法样本
  • c++----继承(初阶)
  • 开源 AI 智能名片 S2B2C 商城小程序与营销工具的快速迭代
  • 其实你不懂老板的心——解释器模式
  • VUE.js笔记
  • 直接在tomcat下面访问jsp
  • 在虚幻引擎中实现Camera Shake 相机抖动/震屏效果
  • TryHackMe 第4天 | Pre Security (三)
  • 系统架构设计师 - 案例特训专题 - 数据库设计篇
  • 智能制造的生产力基础设施
  • Java Redis多限流
  • 使用SOCKS5代理:单窗口单IP的妙用
  • java核心基础
  • 【1分钟学会】实用的Git工作流程
  • s5pv210开发板刷机,分区,SD卡,emmc,nand,fastboot刷机命令,刷uboot,kernel,system,led裸机例子(二)
  • 从耐用到防水:全面综合评估SD卡的性能指标
  • Go语言实现后台管理系统如何根据角色来动态显示栏目
  • PHP基础语法讲解
  • 【力扣 | SQL题 | 每日三题】力扣175, 176, 181
  • MQ高级(二):死信交换机--延迟消息及DelayExchange插件--超时订单案例实现
  • C# DotNetty客户端
  • Chrome开发者工具如何才能看到Vue项目的源码
  • 1. BOOT.BIN 2. 固化 3. 启动 4. SDK 5. 文件
  • UE5: Content browser工具编写
  • 自然语言处理实例
  • 【软件工程】可行性研究
  • 【折腾笔记】雷池WAF社区版自动SSL续签
  • 【WRF运行第三期】服务器上运行WRF模型(官网案例-Hurricane Matthew)
  • 油烟在线监测仪-油烟监测系统-旭华智能
  • 面试经典150题 堆