今日分享:啤酒数据集聚类
一:流程
1、利用pandas库读取数据集文件,加载数据,选取目标数据用于训练
2、使用kmeans模型进行聚类训练
3、使用matpotlib库以可视化的方式来展示聚类效果
二:数据集介绍
KMeans聚类理解起来还是比较容易的,在这里使用一个简单的啤酒数据集进行演示说明。该数据集包括20个样本数据,5个数据特征(品牌,热量,含钠量,酒精量,成本),在聚类时只使用后4个数值特征。
三:代码演示
导入相关库
from sklearn.cluster import KMeans
import pandas as pd
聚类代码
# 读取本地文件,由于是制表符文件,利用sep指定分割方式
beer = pd.read_csv('data.txt',sep=' ')
print('数据行列信息:\n',beer.shape,'\n')
#聚类时只使用以下四列特征数据
data = beer[["calories","sodium","alcohol","cost"]]
#模型加载数据,括号中参数指定聚类数量 3类
km = KMeans(n_clusters=3).fit(data)
print('类别标签\n',km.labels_)
#将聚类后的标签作为新的一列特征加入到原始数据集中
data['cluster'] = km.labels_
#查看此时数据集的最后五个样本样式
data.tail()
聚类结果
可视化代码
#导入相关库
import matplotlib.pyplot as plt
import numpy as np
#定义一个颜色数组,便于后面与类别一一对应
colors = np.array(['red','green','blue'])
#散点图,由于原始数据集中有4个特征,但是四维空间无法展示,
#所以这里选取两个特征,即可把相应的数据展示在二维平面中,即是聚类数据分布
plt.scatter(beer['calories'],beer['alcohol'],c=colors[beer['cluster']])
#添加横纵坐标标签
plt.xlabel('Calories')
plt.ylabel('Alcohol')
plt.show()
可视化结果
注:数据集已上传至QQ学习群
公众号 QQ群
扫QQ群二维码进交流学习群
或在后台回复:加群