1). 扑克牌手动演练k均值聚类过程:>30张牌,3类
2). *自主编写K-means算法 ,以鸢尾花花瓣长度数据做聚类,并用散点图显示。(加分题)
3). 用sklearn.cluster.KMeans,鸢尾花花瓣长度数据做聚类,并用散点图显示.
import numpy as np from sklearn.datasets import load_iris #导入数据集iris import matplotlib.pyplot as plt from sklearn.cluster import KMeans import seaborn as sns iris = load_iris() X=iris.data[:,2] XX=X.reshape(-1,1) est=KMeans(n_clusters=3) est.fit(XX) y=est.predict(XX) y plt.scatter(XX[:,0],y,c=y,s=100,cmap="plasma")
4). 鸢尾花完整数据做聚类并用散点图显示.
import numpy as np from sklearn.datasets import load_iris #导入数据集iris import matplotlib.pyplot as plt from sklearn.cluster import KMeans import seaborn as sns iris = load_iris() X=iris.data #X=x.reshape(-1,1) est=KMeans(n_clusters=3) est.fit(X) y=est.predict(X) y plt.scatter(X[:,2],X[:,3],c=y,s=100,cmap="magma")
效果图如下:
5).想想k均值算法中以用来做什么?
对人均收入进行分类,对不同的地方进行客流量分类,垃圾分类植物分类主要是用来对数据进行分类,遇到新的东西在原有的基础上可以快速预测它的类别。K-均值聚类是一种常见的重要聚类算法,其原理简单,易于实现,对于结果密集且簇之间区别明显的聚类有较好的效果;但它需要依据先验知识提前设定聚类数和聚类中心初值,对聚类中心初值敏感,容易陷入局部极值。动态K-均值聚类算法在K-均值聚类算法的基础上,引入适应度函数,能有效地避免陷入局部极值,且分割速度快;但它强制分配部分样本给具有最小适应度聚类中心会降低聚类的准确性,且对噪声敏感。