基于多种算法实现鸢尾花聚类
基于多种聚类算法实现鸢尾花聚类
描述
聚类(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种鸢尾花的特征分布(颜色随机),左图是实际情况,右图是聚类结果,可以看到聚类算法比较准确地还原了实际类别。
基于多种算法实现鸢尾花聚类相关推荐
- 机器学习实践:基于支持向量机算法对鸢尾花进行分类
摘要:List item使用scikit-learn机器学习包的支持向量机算法,使用全部特征对鸢尾花进行分类. 本文分享自华为云社区<支持向量机算法之鸢尾花特征分类[机器学习]>,作者:上 ...
- 基于K均值算法的鸢尾花聚类实验(Sklearn实现)
实验代码 ##### 相关库导入部分 ##### from sklearn.datasets import load_iris import pandas as pd from sklearn.pre ...
- 数据集特征提取_基于PCA算法实现鸢尾花数据集的特征提取任务
PCA算法的必要性 多变量大数据集无疑会为研究和应用提供丰富的信息,但是许多变量之间可能存在相关性,从而增加了问题分析的复杂性.如果分别对每个指标进行分析,分析往往是孤立的,不能完全利用数据中的信息, ...
- 【项目实战】Python基于KMeans算法进行文本聚类项目实战
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 随着计算机技术的发展.Web 应用的逐步普及,大量的电子文本已经 ...
- 【数据聚类】基于蝙蝠算法实现数据聚类附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 基于 K-means 算法实现的文本聚类(干货)
k-means算法又称k均值,顾名思义就是通过多次求均值而实现的聚类算法.是一种无监督的机器学习方法,即无需知道所要搜寻的目标,而是直接通过算法来得到数据的共同特征.其具体算法思想如下图所示: 1.首 ...
- 【聚类算法】基于matlab划分法k-means聚类算法【含Matlab源码 1941期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[聚类算法]基于matlab划分法k-means聚类算法[含Matlab源码 1941期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- python聚类分析鸢尾花_K-Means 聚类算法实现鸢尾花数据的聚类
#!/usr/bin/env Python3 # -*- coding: utf-8 -*- # @Software: PyCharm # @virtualenv:workon # @contact: ...
- Python构建基于elkan优化算法的K-Means聚类模型
Python构建基于elkan优化算法的K-Means聚类模型 目录 Python构建基于elkan优化算法的K-Means聚类模型 #elkan优化算法
最新文章
- 线程安全的集合类、CopyOnWrite机制介绍(转)
- Gogland IDE Run/Debug Configurations 配置说明
- 人工智能对医疗和健康产业的冲击和革命——体外克隆
- MySQL IFNull 详解
- ajax主要有哪些方法,ajax的使用方法和原理,ajax包括哪些技术呢
- 俄罗斯议会预计2021年代币发行将激增
- 由底层和逻辑说开去--c++之引用的深入剖析
- 4.2.2 - Logical and/or Operators
- T-SQL笔记8:索引
- matlab中卡尔曼滤波,卡尔曼滤波算法及MATLAB实现
- .then()方法是异步执行
- umoocs外语慕课答案_umoocs答案怎么查,中国高校外语慕课平台(UMOOCs)答案公众号
- toLua:简洁的使用说明
- capslock键英语怎么读_Caps Lock怎么读
- error:Incompatible shapes:[16,3] vs [48,3]
- tableau高级绘图(十三)-tableau绘制K线图
- 登录成功后跳回到原来页面
- SD NAND在点读机产品中的重要应用
- 基于 Amazon SageMaker 构建细粒度情感分析应用【附部署视频】
- Excel数据分隔方法