首页 分享 机器学习实验4——果汁聚类(K

机器学习实验4——果汁聚类(K

来源:花匠小妙招 时间:2025-10-23 11:04

实验4 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进行训;计算各对象离各类簇中心的欧氏距离,生成距离表;提取每个对象到其类簇中心的距离,并相加;依次存入距离结果;绘制不同看、值对应的总距离值折线图。

In [1]

#1.加载数据集,读取数据,探索数据。(数据集路径:data/data76878/4_beverage.csv) import pandas as pd csv_beverage=pd.read_csv('data/data76878/4_beverage.csv') print(csv_beverage[:5]) #2.样本数据转化(可将pandasframe格式的数据转化为数组形式),并进行可视化(绘制散点图),观察数据的分布情况,从而可以得出k的几种可能取值。 juice=csv_beverage.loc[:,'juice'].values.reshape(-1,1) sweet=csv_beverage.loc[:,'sweet'].values.reshape(-1,1) import matplotlib.pyplot as plt plt.figure() plt.scatter(juice,sweet) plt.show()

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

<Figure size 432x288 with 1 Axes>

In [2]

#3.针对每一种k的取值,进行如下操作: from sklearn.cluster import KMeans from sklearn import metrics #(1)进行K-Means算法模型的配置、训练。 #(2)输出相关聚类结果,并评估聚类效果。 #这里可采用CH指标来对聚类有效性进行评估。在最后用每个k取值时评估的CH值进行对比,可得出k取什么值时,聚类效果更优。 #注:这里缺乏外部类别信息,故采用内部准则评价指标(CH)来评估。 (metrics.calinski_harabaz_score()) for n_cluster in range(2,8): print('n_clusters=',n_cluster)#模型配置 kmeans=KMeans(n_clusters=n_cluster) kmeans.fit(csv_beverage)#模型训练 predict_beverage=kmeans.predict(csv_beverage) #输出聚类结果 centroid=kmeans.cluster_centers_ print('centroid:n',centroid) #CH评估聚类结果 score=metrics.calinski_harabasz_score(csv_beverage,predict_beverage) print('score=',score) print('*********************************')

n_clusters= 2 centroid: [[ 0.20340968 1.43033548] [-0.30035357 -1.44121786]] score= 60.84196357784196 ********************************* n_clusters= 3 centroid: [[-0.30035357 -1.44121786] [ 1.44084375 1.44255625] [-1.11652 1.4173 ]] score= 73.95986749645601 ********************************* n_clusters= 4 centroid: [[ 1.04653846 -1.64170769] [-1.11652 1.4173 ] [ 1.44084375 1.44255625] [-1.46766 -1.26746 ]] score= 188.0667309404243 ********************************* n_clusters= 5 centroid: [[-1.46766 -1.26746 ] [ 1.44084375 1.44255625] [ 1.04653846 -1.64170769] [-1.54777143 1.2553 ] [-0.739175 1.55905 ]] score= 161.09116225622554 ********************************* n_clusters= 6 centroid: [[-1.6057 -1.41931667] [ 1.44084375 1.44255625] [ 1.25578 -1.59305 ] [-1.100825 1.60950833] [-1.17786 0.25892 ] [ 0.163025 -1.68525 ]] score= 156.11781485190346 ********************************* n_clusters= 7 centroid: [[-1.100825 1.60950833] [-1.6057 -1.41931667] [ 1.7232875 1.1631875 ] [ 1.25578 -1.59305 ] [-1.17786 0.25892 ] [ 1.1584 1.721925 ] [ 0.163025 -1.68525 ]] score= 154.38047888582275 *********************************

相关知识

【机器学习】任务七:聚类算法 (K
【机器学习实践】:MATLAB中的K
Python 机器学习 K
鸢尾花三种聚类算法(K
基于机器学习的鸢尾花数据集的三分类算法的实现 C++
【机器学习】k
有了K均值聚类,为什么还需要DBSCAN聚类算法?
MATLAB鸢尾花数据集K
机器学习之KNN算法及模型评估:鸢尾花分类实验
机器学习实践(一):鸢尾花分类

网址: 机器学习实验4——果汁聚类(K https://www.huajiangbk.com/newsview2429998.html

所属分类:花卉
上一篇: 指尖下单 云端发货 电商为天水苹
下一篇: 吃对水果干,也能帮助控血糖!营养

推荐分享