- 实验目的
• 1、理解无监督学习中聚类算法的原理;
• 2、完成程序,实现基于K-means的国内消费水平聚类分析,聚类成4类的效果。
- 实验内容与要求
【K-means聚类算法】
- means算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。其处理过程如下:
- 随机选择k个点作为初始的聚类中心;
- 对于剩下的点,根据其与聚类中心的距离,将其归入最近的簇
- 对每个簇,计算所有点的均值作为新的聚类中心
- 重复2/3直到聚类中心不再发生改变
【数据介绍】
现有1999年全国31个省份城镇居民家庭平均每人全年消费性支出的八个主要变量数据,这八个变量分别是:食品、衣着、家庭设备用品及服务、医疗保健、交通和通讯、娱乐教育文化服务、居住以及杂项商品和服务。利用已有数据,对31个省份进行聚类。
1.选择聚类数量K:首先,需要确定聚类的数量K,即将数据集划分为K个簇。
2.初始化聚类中心:随机选择K个数据点作为初始的聚类中心,可以从数据集中随机选择,或者使用其他初始化方法。
3.分配样本到最近的聚类中心:对于每个数据点,计算其与每个聚类中心之间的距离,并将其分配到距离最近的聚类中心所属的簇。
4.更新聚类中心:对于每个簇,计算该簇内所有样本点的均值,将均值作为新的聚类中心。
5.重复步骤3和步骤4,直到满足终止条件:重复执行步骤3和步骤4,直到满足某个终止条件,例如聚类中心不再发生显著变化或达到最大迭代次数。
6.输出聚类结果:最终得到K个簇,每个数据点都被分配到一个簇中,形成聚类结果。
【实验目的】
通过聚类,了解1999年国内各个省份的消费水平情况。技术路线 :sklearn.cluster.Kmeans
【实验要求】
- 理解无监督学习中聚类算法的原理;
- 完成程序,实现基于K-means的国内消费水平聚类分析,聚类成4类的效果。
- 实验程序与结果
#1.建立工程,导入sklearn相关包
import numpy as np #调用K-means算法进行聚类
from sklearn.cluster import KMeans # K-means聚类算法
import matplotlib.pyplot as plt #用于数据可视化的库
import matplotlib #用于设置字体
import os
os.environ['LOKY_MAX_CPU_COUNT'] = '4' # 将4替换为实际的逻辑核心数
#2. 加载数据,创建K-means算法实例,并进行训练,获得标签
def loadData(filePath):
#从指定文件路径加载数据
fr = open(filePath,'r+'