3.K均值算法作业

1). 扑克牌手动演练k均值聚类过程:>30张牌,3类

第一次,随机选取三个聚类中心K,7,6,随后随机抽取30张进行分类

算平均值,三堆牌平均值分别约为12,7,4,然后重新将牌再次分类,按照距离最小分类

 

 再算平均值,三堆牌平均值分别约为12,7,3,然后重新将牌再次分类

 

 最后算得平均值不变,分类结束

2). *自主编写K-means算法 ,以鸢尾花花瓣长度数据做聚类,并用散点图显示。(加分题)

3). 用sklearn.cluster.KMeans,鸢尾花花瓣长度数据做聚类,并用散点图显示.

from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
iris = load_iris() # 获取鸢尾花数据集
iris.keys()
x = iris.data[:,0]  #获取鸢尾花花瓣长度数据
x = x.reshape(-1,1)   #将数据转换为一列数据
# 直接调用sklearn库实现对鸢尾花数据进行聚类分析
km_model = KMeans(n_clusters=3)  # 构建模型 分成三个类
km_model.fit(x)                  # 训练模型
y = km_model.predict(x)          # 预测模型
print("聚类中心:", km_model.cluster_centers_ )
print("预测结果:", y)
# 画图
plt.scatter(x[:, 0], x[:, 0], c=y, s=50, cmap='rainbow')
plt.show()

结果如下图

4). 鸢尾花完整数据做聚类并用散点图显示.

from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
iris = load_iris() # 获取鸢尾花数据集
x = iris.data       # 鸢尾花完整数据
# 直接调用sklearn库的KMeans实现对鸢尾花数据进行聚类分析
km_model = KMeans(n_clusters=3)  # 构建模型
km_model.fit(x)  # 训练模型
y = km_model.predict(x)  # 预测模型中每个样本的聚类索引
print("聚类中心:", km_model.cluster_centers_ )
print("预测结果:", y)
# 画图
plt.scatter(x[:, 2], x[:, 3], c=y, s=50, cmap='rainbow')  #x,y,c
plt.show()

结果如图所示

 

 

5).想想k均值算法中以用来做什么?

猜你喜欢

转载自www.cnblogs.com/chock/p/12701925.html