3.K均值算法

作业:

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

①随机在扑克牌中抽取30张牌,当中取3张聚类中心10,5,2 进行分

 

 

②计算三堆牌的平均值分别为10.5,5.5,2。

 

③以11,6,2为新的聚类中心来分类

④计算平均值,均值不变,分类结束。

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() # 获取鸢尾花数据集
x = iris.data[:,0]  #获取鸢尾花花瓣长度数据   :all
x = x.reshape(-1,1)   #将数据转换为一列数据
# 直接调用sklearn库实现对鸢尾花数据进行聚类分析
km_model = KMeans(n_clusters=3)  # 构建模型 分成三个类
km_model.fit(x)                  # 训练模型     fit(x)指的是x值给km_model进训练
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均值算法中以用来做什么?

可以通过k均值算法。进行机器学习,通过机器学习之后就可以先对样本进行一个分析,分析之后就可以进行对其他的预测。就是可以通过机器学习之后可以对一些事件的发生进行一些预测。

posted @ 2020-04-15 22:57  SeBr7  阅读(253)  评论(0编辑  收藏  举报