作业:
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均值算法。进行机器学习,通过机器学习之后就可以先对样本进行一个分析,分析之后就可以进行对其他的预测。就是可以通过机器学习之后可以对一些事件的发生进行一些预测。