- 一. 实验目的
- 二. 实验原理
- 三. 实验内容
- 四. 实验步骤:
- 1.1 随机创建100个样本的二维数据作为训练集并画出训练样本的散点图
- 1.2 푘=3 进行聚类并画出聚类结果的散点图
- 2.1 导入iris数据集数据
- 2.2 푘=3 进行聚类并画出聚类结果的散点图
一. 实验目的
1.理解C均值(K-means)聚类算法的基本原理
2.学会用python实现C均值(K-means)算法
二. 实验原理
k-means算法中的k代表聚类个数,means代表聚类内数据对象的均值(均值是对聚类中心的描述)。k-means算法以距离作为数据对象间相似性度量的标准,即数据对象间的距离越小,则它们的相似性越高,则它们越有可能在同一个聚类。数据对象间距离的计算有很多种,k-means算法通常采用欧氏距离来计算数据对象间的距离。
三. 实验内容
- 随机生成100个数,并对这100个数进行k-means聚类(k=3,4)(并用matplot画图)。
- 对鸢尾花数据进行K-means算法聚类(并用matplot画图)。
四. 实验步骤: 1.1 随机创建100个样本的二维数据作为训练集并画出训练样本的散点图
import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_blobs from sklearn.cluster import KMeans from sklearn.datasets import load_iris X,y=make_blobs(n_samples=100,n_features=2,centers=[[-1,-1],[0,0],[1,1],[2,2]],cluster_std=[0.4,0.2,0.2,0.2]) #输入: 푛_푠푎푚푝푙푒푠 是待生成的样本的总数。 푛_푓푒푎푡푢푟푒푠 是每个样本的特征数。 푐푒푛푡푒푟푠 表示各类别中心。 푐푙푢푠푡푒푟_푠푡푑 表示每个类别的方差。 #输出: X:样本特征,其中每行代表一个样本,每列代表一个特征。 y:样本聚类标签。 #使用 푠푘푙푒푎푟푛 的 푚푎푘푒_푏푙표푏푠 方法来生成用于测试聚类算法的效果。 푠푘푙푒푎푟푛 中的 푚푎푘푒_푏푙표푏푠 方法常被用来生成聚类算法的测试数据,直观地说, 푚푎푘푒_푏푙표푏푠 会根据用户指定的特征数量、中心点数量、范围等来生成几类数据,这些数据可用于测试聚类算法的效果。 #使用make_blobs生成训练数据,生成100个样本,每个样本2个特征,共4个聚类,聚类中心分别为[-1,-1],[0,0],[1,1],[2,2],聚类方差分别为0.4,0.2,0.2,0.2 plt.scatter(X[:,0],X[:,1]) plt.show() #画出训练样本的散点图,散点图的横坐标为样本的第一维特征,纵坐标为样本的第二维特征1.2 푘=3 进行聚类并画出聚类结果的散点图
kmeans=KMeans(n_clusters=3) #生成kmeans分类器,聚类数量为3,其余参数使用默认值。 y_pre=kmeans.fit_predict(X) #使用fit_predict方法计算聚类中心并且预测每个样本的聚类索引。 plt.scatter(X[:,0],X[:,1],c=y_pre) #可以通过以下方式将各聚类结果显示为不同的颜色 #푝푙푡.푠푐푎푡푡푒푟(푥,푦,푐=푙푎푏푒푙) #画出训练样本的散点图,散点图的横坐标为样本的第一维特征,纵坐标为样本的第二维特征,将各聚类结果显示为不同的颜色 plt.show()
2.1 导入iris数据集数据
iris = load_iris() #导入iris数据集,iris数据集包含了150个样本,分别属于3类,每个样本包含4个特征 data_train=iris.data #iris样本集的样本特征 label_train=iris.target #iris样本集的样本标签2.2 푘=3 进行聚类并画出聚类结果的散点图
kmeans=KMeans(n_clusters=3) #生成kmeans分类器,聚类数量为3,其余参数使用默认值。 y_pre=kmeans.fit_predict(data_train) #使用fit_predict方法计算聚类中心并且预测每个样本的聚类索引。 plt.scatter(data_train[:,0],data_train[:,-2],c=y_pre) #画出训练样本的散点图,散点图的横坐标为样本的第一维特征,纵坐标为样本的第三维特征,将各聚类结果显示为不同的颜色. plt.show()



