聚类总结(一)K-means、层次、DBSCAN、均值漂移、K-Means 、KNN https://blog.csdn.net/u010986753/article/details/97821890
聚类(二)原 聚类总结(二)聚类性能评估、肘部法则、轮廓系数 https://blog.csdn.net/u010986753/article/details/97885955
聚类(三)k-means++、k-means参数、Mini Batch K-Means https://blog.csdn.net/u010986753/article/details/97916856
聚类(四)KMeans基本框架\KMeans++实现\K-Means使用 load_iris https://blog.csdn.net/u010986753/article/details/97922554
一、K-Means使用 load_iris
代码
# coding = utf-8
# 2019/7/31 Luckyxxt:有趣的事,Python永远不会缺席!
# https://www.cnblogs.com/huangyc/p/10229064.html
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #3D的库
from sklearn.cluster import KMeans
from sklearn import datasets
np.random.seed(5) #设置随机数种子
iris = datasets.load_iris()
X = iris.data
y = iris.target
estimators = [('k_means_iris_8', KMeans(n_clusters=8)),#k=8的kmeans
('k_means_iris_3', KMeans(n_clusters=3)), #k=3的kmeans
('k_means_iris_bad_init', KMeans(n_clusters=3, n_init=1,init='random')) #k=3,随机初始化的kmeans
]
fignum = 1
titles = ['8 clusters', '3 clusters', '3 clusters, bad initialization']
for name, est in estimators:
fig = plt.figure(fignum, figsize=(4, 3))
ax = Axes3D(fig, rect=[0, 0, .95, 1], elev=48, azim=134)
est.fit(X) #fit建立模型
labels = est.labels_ #获得模型聚类后的label
ax.scatter(X[:, 3], X[:, 0], X[:, 2],
c=labels.astype(np.float), edgecolor='k') #绘制X中的第3,0,2个维度的特征
ax.w_xaxis.set_ticklabels([])
ax.w_yaxis.set_ticklabels([])
ax.w_zaxis.set_ticklabels([])
ax.set_xlabel('Petal width') #设置坐标轴名
ax.set_ylabel('Sepal length')
ax.set_zlabel('Petal length')
ax.set_title(titles[fignum - 1]) #设置图的名字
ax.dist = 12
fignum = fignum +