机器学习-鸢尾花
1). 扑克牌手动演练k均值聚类过程:>30张牌,3类
随机选三个中心
经过聚类后选出三个新中心
再通过聚类后又重新选出三个新中心,已不能再分就是最终结果为6 、17 、 26
2). 用sklearn.cluster.KMeans,鸢尾花花瓣长度数据做聚类,并用散点图显示.
# -*- coding:utf-8 -*- # 文件名称:机器学习-鸢尾花.py
import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import load_iris from sklearn.cluster import KMeans iris = load_iris()#导入数据 sj = iris.data[:, 2]#第三列花瓣长度 x = sj.reshape(-1, 1) km_model = KMeans(n_clusters=3) km_model.fit(x)#训练 y = km_model.predict(x)#预测 plt.scatter(x[:, 0], x[:, 0], c=y, s=50, cmap="rainbow") plt.show()
预测结果如下图
使用鸢尾花花瓣长度数据做聚类散点图如下
3). 鸢尾花完整数据做聚类并用散点图显示.
# -*- coding:utf-8 -*- # 文件名称:机器学习-鸢尾花.py import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import load_iris from sklearn.cluster import KMeans iris = load_iris()#导入数据 x = iris.data km_model = KMeans(n_clusters=3) km_model.fit(x)#训练 y = km_model.predict(x)#预测 y plt.scatter(x[:,2],x[:,3],c=y, s=50 ,cmap="rainbow") plt.show()
预测值
散点图如下:
4).想想k均值算法中以用来做什么?
k均值算法中以用来做像素处理,图像的每个像素颜色即代表训练样本x,通过K均值算法寻找16种颜色代表图像中的所有像素的颜色,即也就是寻找16个聚类中心,最后,将所有的像素颜色替换为16个聚类中心所对应的颜色。