机器学习实验之不同含量果汁饮料的聚类(K-Means)
文章目录
- K-Means 实操项目:不同含量果汁饮料的聚类
- **【实验内容】**
- **【实验要求】**
- 加载数据集,读取数据,探索数据
- 样本数据转化(可将pandasframe格式的数据转化为数组形式),并进行可视化(绘制散点图),观察数据的分布情况,从而可以得出k的几种可能取值
- 关注公众号 **布沃布图** ,后台回复 **机器学习实验** 获取源码
K-Means 实操项目:不同含量果汁饮料的聚类
【实验内容】
某企业通过采集企业自身流水线生产的一种果汁饮料含量的数据集,来实现K-Means算法。通过聚类以判断该果汁饮料在一定标准含量偏差下的生产质量状况,对该饮料进行类别判定。
【数据集】
该数据集共有样本59个,变量2个,包括juice(该饮料的果汁含量偏差)、sweet(该饮料的糖分含量偏差),单位均为mg/ml。
所有特征变量都为与标准含量相比的偏差,该数据集没有目标类别标签变量。
【实验要求】
1.加载数据集,读取数据,探索数据。(数据集路径:data/data76878/4_beverage.csv)
2.样本数据转化(可将pandasframe格式的数据转化为数组形式),并进行可视化(绘制散点图),观察数据的分布情况,从而可以得出k的几种可能取值。
3.针对每一种k的取值,进行如下操作:
(1)进行K-Means算法模型的配置、训练。
(2)输出相关聚类结果,并评估聚类效果。
这里可采用CH指标来对聚类有效性进行评估。在最后用每个k取值时评估的CH值进行对比,可得出k取什么值时,聚类效果更优。注:这里缺乏外部类别信息,故采用内部准则评价指标(CH)来评估。 (metrics.calinski_harabaz_score())
(3)输出各类簇标签值、各类簇中心,从而判断每类的果汁含量与糖分含量情况。
(4)聚类结果及其各类簇中心点的可视化(散点图),从而观察各类簇分布情况。(不同的类表明不同果汁饮料的果汁、糖分含量的偏差情况。)
4.【扩展】(选做):设置k一定的取值范围,进行聚类并评价不同的聚类结果。
参考思路:设置k的取值范围;对不同取值k进行训;计算各对象离各类簇中心的欧氏距离,生成距离表;提取每个对象到其类簇中心的距离,并相加;依次存入距离结果;绘制不同看、值对应的总距离值折线图。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.cluster import KMeans
from sklearn import metrics
加载数据集,读取数据,探索数据
data = pd.read_csv("./datasets/4_beverage.csv")
print(data)
print(data.shape)
juice sweet
0 2.1041 0.8901
1 -1.0617 -0.4111
2 0.3521 -1.7488
3 -0.1962 2.5952
4 1.4158 1.0928
5 -0.3951 -1.3293
6 1.4717 -1.6269
7 1.1289 1.9430
8 -1.3395 1.4619
9 -1.7840 0.7658
10 0.2253 -1.6511
11 -1.7436 -0.8622
12 1.3344 0.7974
13 -1.5782 1.5956
14 1.5828 -1.9999
15 -1.3934 -1.5497
16 1.2468 -1.5924
17 -1.2568 -2.1163
18 0.9322 1.5899
19 -1.5856 1.6365
20 1.4471 -1.9076
21 -1.2813 -1.1420
22 1.7455 1.4376
23 -1.2829 -1.0061
24 1.6665 1.9916
25 -0.8084 1.7866
26 1.1403 -1.2797
27 -1.3256 -1.5516
28 1.1607 1.5775
29 -0.8429 1.4698
30 0.4698 -2.0118
31 -1.8372 -1.1305
32 1.0231 1.3676
33 -1.5947 1.4925
34 2.1863 1.4717
35 -1.2897 -0.2397
36 0.9445 -1.9819
37 -0.3994 0.7870
38 1.4183 1.6716
39 -1.9189 -1.6785
40 1.0484 1.6938
41 -1.3545 0.3926
42 1.6835 0.9819
43 -1.0607 1.3211
44 1.1648 -1.5882
45 -1.6424 -1.7862
46 1.5457 1.2446
47 -1.5979 1.4422
48 1.1682 -1.9737
49 -0.8932 1.2771
50 1.0951 -0.9530
51 -1.7017 -1.3891
52 0.8891 1.9404
53 -0.8442 1.1151
54 1.2965 -1.0272
55 -2.0036 -1.6035
56 -1.8810 -1.2161
57 1.7710 1.3894
58 -0.8684 2.1205
(59, 2)
样本数据转化(可将pandasframe格式的数据转化为数组形式),并进行可视化(绘制散点图),观察数据的分布情况,从而可以得出k的几种可能取值
npdata = np.array(data) # 转化成numpy数组
x = data.iloc[:, 0 : 1]
y = data.iloc[:, 1 : 2]
plt.scatter(x, y) # 绘制散点图
plt.show()
for n_clusters in range(3,10):# 进行K-Means算法模型的配置、训练kmeans = KMeans(n_clusters) # 构建聚类器kmeans.fit(npdata)# 输出相关聚类结果,并评估聚类效果y_predict=kmeans.predict(npdata)score=metrics.calinski_harabasz_score(npdata,y_predict)print('{1} 准确率:{0:f}'.format(score,n_clusters)) #显示准确率# 输出各类簇标签值、各类簇中心,从而判断每类的果汁含量与糖分含量情况markers = ['*', 'v', '+', '^', 's', 'x', 'o','1','2','3','4'] # 标记样式列表colors = ['r', 'g', 'm', 'c', 'y', 'b', 'orange','black','skyblue'] # 标记颜色列表labels = kmeans.labels_ # 获取聚类标签# 聚类结果及其各类簇中心点的可视化(散点图),从而观察各类簇分布情况plt.figure(figsize=(9, 6))plt.title('{0}: Juice sweetness'.format(n_clusters),fontsize=30)plt.xlabel('sweet',fontsize=15)plt.ylabel('Juice',fontsize=15)for i in range(n_clusters):members = labels == i # members是一个布尔型数组plt.scatter(npdata[members, 1], # 城市经度数组npdata[members, 0], # 城市纬度数组marker = markers[i], # 标记样式c = colors[i] # 标记颜色) # 绘制散点图
3 准确率:73.959867
4 准确率:188.066731
5 准确率:166.399894
6 准确率:156.117815
7 准确率:149.989669
8 准确率:157.312805
9 准确率:160.865889
关注公众号 布沃布图 ,后台回复 机器学习实验 获取源码
机器学习实验之不同含量果汁饮料的聚类(K-Means)相关推荐
- python机器学习可视化工具Yellowbrick绘图获取最佳聚类K值实战示例
python机器学习可视化工具Yellowbrick绘图获取最佳聚类K值实战示例 目录 机器学习可视化工具Yellowbrick绘图获取最佳聚类K值实战示例
- K-Means不同含量果汁饮料的聚类(聚类算法)
文章目录 实验内容 实验要求 实验代码 实验内容 某企业通过采集企业自身流水线生产的一种果汁饮料含量的数据集,来实现K-Means算法.通过聚类以判断该果汁饮料在一定标准含量偏差下的生产质量状况,对该 ...
- 【白话机器学习】算法理论+实战之EM聚类
1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Ad ...
- SLS机器学习介绍(02):时序聚类建模
文章系列链接 SLS机器学习介绍(01):时序统计建模 SLS机器学习介绍(02):时序聚类建模 SLS机器学习介绍(03):时序异常检测建模 SLS机器学习介绍(04):规则模式挖掘 前言 第一篇文 ...
- 机器学习入门笔记(七):聚类
文章目录 一.聚类的基本概念 1.1 相似度或距离 1.2 类或簇 1.3 类与类之间的距离 二.层次聚类 2.1 基本概念 2.1 算法描述 2.3 例题 三.K均值聚类 3.1 模型 3.2 策略 ...
- 【机器学习实验】scikit-learn的主要模块和基本使用
[机器学习实验]scikit-learn的主要模块和基本使用 引言 对于一些开始搞机器学习算法有害怕下手的小朋友,该如何快速入门,这让人挺挣扎的. 在从事数据科学的人中,最常用的工具就是R和Pytho ...
- 【机器学习实验】用Python进行机器学习实验
概要 本文是用Python编程语言来进行机器学习小实验的第一篇.主要内容如下: 读入数据并清洗数据 探索理解输入数据的特点 分析如何为学习算法呈现数据 选择正确的模型和学习算法 评估程序表现的准确性 ...
- 无监督机器学习中,最常见4类聚类算法总结 | 技术头条
点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」,购票请扫码咨询 ↑↑↑ 编译 | 安然.狄思云 来源 | 读芯术(ID:AI_Discovery) 在机器学习过程中,很多数据都具有特 ...
- 机器学习特征工程之连续变量离散化:聚类法进行分箱
机器学习特征工程之连续变量离散化:聚类法进行分箱 离散化,就是把无限空间中有限的个体映射到有限的空间中: 根据用户的听音乐的数据来预测哪些歌曲更受欢迎. 假设大部分人听歌都很平均,会不停的听新的歌曲, ...
最新文章
- 淘宝获取单笔订单信息服务端调用API及流程
- python的基本知识点
- python基础教程【目录】
- mysql死锁解决办法
- android 文件mimetype_【Android】NFC课件
- jsonpickle数据序列化
- 厦大计算机学硕分数,【图片】一战厦大计算机上岸,经验帖。慢更【考研吧】_百度贴吧...
- matlab中的[~,m]=size(coord)是什么意思
- 7. 从数据库获取数据- 从零开始学Laravel
- TypeScript学习(五):数组的定义方式及常见数组操作方法使用
- 6.12使用tensorflow来搭建一个Transformer
- vlc的应用之四:vlc的Mozilla Plugin
- 京东风格的移动端Vue组件库NutUI2.0来啦
- NISP第一讲信息安全和网络空间安全
- 【小福利】包邮送40本畅销书籍
- EMD 经验模态分解
- install sql server 2016 Error code 0x84B20001
- 【操作系统】进程间的通信——管道
- MySQL 数据表主键设计,选择自增 id 还是 UUID 还是雪花 id?
- 有哪些手游的账号卖了值钱?