基于多种聚类算法实现鸢尾花聚类

描述

聚类(Clustering)属于无监督学习的一种,聚类算法是根据数据的内在特征,将数据进行分组(即“内聚成类”),本任务我们通过实现鸢尾花聚类案例掌握Scikit-learn中多种经典的聚类算法(K-Means、MeanShift、Birch)的使用。

本任务的主要工作内容:

1、K-均值聚类实践

2、均值漂移聚类实践

3、Birch聚类实践

源码下载

环境

  • 操作系统:Windows 10、Ubuntu18.04

  • 工具软件:Anaconda3 2019、Python3.7

  • 硬件环境:无特殊要求

  • 依赖库列表

    matplotlib    3.3.4
    pandas          1.1.5
    scikit-learn    0.24.2
    

分析

本实验使用鸢尾花(iris)数据集的花瓣长度(petal length)和花瓣宽度(petal width)两个特征,共150行。运用不同模型对这两个特征数据进行聚类,并将聚类结果与实际的类别标签做对比(使用Matplotlib)。

本任务涉及以下几个环节:

a)获取鸢尾花花瓣特征数据

b)分别使用K-Means、MeanShift、Birch等算法进行聚类

d)获得聚类结果标签

e)评估聚类模型成绩

f)使用Matplotlib将聚类结果可视化

实施

1、获取花瓣特征数据(花瓣长度、花瓣宽度)

from sklearn.datasets import load_iris
from sklearn.cluster import KMeans, MeanShift, Birch, DBSCAN
from sklearn.metrics import adjusted_rand_score # 聚类模型评估工具
from IPython.display import display
import matplotlib.pyplot as plt
import pandas as pd# 加载鸢尾花数(Iris)据集
iris = load_iris()
data = iris.data[:,2:] # 取后两列(花瓣长、宽)作为特征数据
target = iris.target # 标签数据
feature_names = iris.feature_names[2:] # 后两列的名字
df = pd.DataFrame(data, columns=feature_names)# 创建数据框
display(df) # 显示数据集

显示结果:

2、使用多种聚类算法,并评估成绩

# 注意:聚类模型的评估使用sklearn.metrics.adjusted_rand_score函数
# 参数1-实际类别标签
# 参数2-聚类结果标签
# 调用聚类算法model = KMeans(3).fit(data) # K-均值聚类# model = MeanShift().fit(data) # 均值漂移聚类
# model = Birch().fit(data) # Birch聚类
c_target = model.labels_ # 聚类结果标签# 使用adjusted_rand_score函数来评估聚类效果
# 参数1-实际类别标签
# 参数2-聚类结果标签
print('accuracy: ', adjusted_rand_score(target, c_target))

结果如下:

accuracy:  0.8856970310281228

3、使用Matplotlib将聚类结果可视化

将聚类结果与样本的实际分类可视化,直观对比聚类效果。

# 定义画板尺寸
fig = plt.figure(figsize=(15, 5))# 画第一幅子图——实际类别标签
ax1 = fig.add_subplot(1, 2, 1)
ax1.set_title('Real ')
ax1.scatter(data[:,0], data[:,1], c=target)# 画第二幅子图——聚类结果
ax2 = fig.add_subplot(1, 2, 2)
ax2.set_title('Clustering ')
ax2.scatter(data[:,0], data[:,1], c=c_target)# 显示图形
plt.show()

显示结果:

注:两幅图中从上到下依次为3种鸢尾花的特征分布(颜色随机),左图是实际情况,右图是聚类结果,可以看到聚类算法比较准确地还原了实际类别。

基于多种算法实现鸢尾花聚类相关推荐

  1. 机器学习实践:基于支持向量机算法对鸢尾花进行分类

    摘要:List item使用scikit-learn机器学习包的支持向量机算法,使用全部特征对鸢尾花进行分类. 本文分享自华为云社区<支持向量机算法之鸢尾花特征分类[机器学习]>,作者:上 ...

  2. 基于K均值算法的鸢尾花聚类实验(Sklearn实现)

    实验代码 ##### 相关库导入部分 ##### from sklearn.datasets import load_iris import pandas as pd from sklearn.pre ...

  3. 数据集特征提取_基于PCA算法实现鸢尾花数据集的特征提取任务

    PCA算法的必要性 多变量大数据集无疑会为研究和应用提供丰富的信息,但是许多变量之间可能存在相关性,从而增加了问题分析的复杂性.如果分别对每个指标进行分析,分析往往是孤立的,不能完全利用数据中的信息, ...

  4. 【项目实战】Python基于KMeans算法进行文本聚类项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 随着计算机技术的发展.Web 应用的逐步普及,大量的电子文本已经 ...

  5. 【数据聚类】基于蝙蝠算法实现数据聚类附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  6. 基于 K-means 算法实现的文本聚类(干货)

    k-means算法又称k均值,顾名思义就是通过多次求均值而实现的聚类算法.是一种无监督的机器学习方法,即无需知道所要搜寻的目标,而是直接通过算法来得到数据的共同特征.其具体算法思想如下图所示: 1.首 ...

  7. 【聚类算法】基于matlab划分法k-means聚类算法【含Matlab源码 1941期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[聚类算法]基于matlab划分法k-means聚类算法[含Matlab源码 1941期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  8. python聚类分析鸢尾花_K-Means 聚类算法实现鸢尾花数据的聚类

    #!/usr/bin/env Python3 # -*- coding: utf-8 -*- # @Software: PyCharm # @virtualenv:workon # @contact: ...

  9. Python构建基于elkan优化算法的K-Means聚类模型

    Python构建基于elkan优化算法的K-Means聚类模型 目录 Python构建基于elkan优化算法的K-Means聚类模型 #elkan优化算法

最新文章

  1. 线程安全的集合类、CopyOnWrite机制介绍(转)
  2. Gogland IDE Run/Debug Configurations 配置说明
  3. 人工智能对医疗和健康产业的冲击和革命——体外克隆
  4. MySQL IFNull 详解
  5. ajax主要有哪些方法,ajax的使用方法和原理,ajax包括哪些技术呢
  6. 俄罗斯议会预计2021年代币发行将激增
  7. 由底层和逻辑说开去--c++之引用的深入剖析
  8. 4.2.2 - Logical and/or Operators
  9. T-SQL笔记8:索引
  10. matlab中卡尔曼滤波,卡尔曼滤波算法及MATLAB实现
  11. .then()方法是异步执行
  12. umoocs外语慕课答案_umoocs答案怎么查,中国高校外语慕课平台(UMOOCs)答案公众号
  13. toLua:简洁的使用说明
  14. capslock键英语怎么读_Caps Lock怎么读
  15. error:Incompatible shapes:[16,3] vs [48,3]
  16. tableau高级绘图(十三)-tableau绘制K线图
  17. 登录成功后跳回到原来页面
  18. SD NAND在点读机产品中的重要应用
  19. 基于 Amazon SageMaker 构建细粒度情感分析应用【附部署视频】
  20. Excel数据分隔方法

热门文章

  1. 【转】搜索功能的成本有多高?
  2. 【精品】Intellij中Emmet插件的使用技巧
  3. 多普达与HTC的关系
  4. relu激活函数对比sigmoid的优势
  5. Vue内置指令的使用
  6. COMP9311 23T2
  7. 优惠券设计:优惠券的发放与使用
  8. 女人出轨的八种主打心态
  9. 阿里百万主机安全管控演进分享
  10. thymeleaf渲染