使用不同的聚类准则,产生的聚类结果不同
聚类算法: 一种典型的无监督学习算法,主要用于将相似的样本自动归到一个类别中。
在聚类算法中根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计算方法,会得到不同的聚类结果,常用的相似度计算方法有欧式距离法。
聚类算法是无监督的学习算法,而分类算法属于监督的学习算法。
sklearn.cluster.KMeans(n_clusters=8)
参数:
方法:
随机创建不同二维数据集作为训练集,并结合k-means算法将其聚类,你可以尝试分别聚类不同数量的簇,并观察聚类效果:
聚类参数n_cluster传值不同,得到的聚类结果不同
导入响应的库:
import matplotlib.pyplot as plt # 旧版:from sklearn.datasets.sample_generator import make_blobs from sklearn.datasets import make_blobs from sklearn.cluster import KMeans from sklearn.metrics import calinski_harabasz_score
# 创建数据 X, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1, -1], [0, 0], [1, 1], [2, 2]], cluster_std=[0.4, 0.2, 0.2, 0.2], random_state=9)
plt.scatter(X[:, 0], X[:, 1], marker="o") plt.show()
# kmeans训练,且可视化 聚类=2 y_pre = KMeans(n_clusters=2, random_state=9).fit_predict(X) # 可视化展示 plt.scatter(X[:, 0], X[:, 1], c=y_pre) plt.show() # 用ch_scole查看最后效果 print(calinski_harabasz_score(X, y_pre))
3116.1706763322227
# kmeans训练,且可视化 聚类=3 y_pre = KMeans(n_clusters=3, random_state=9).fit_predict(X) # 可视化展示 plt.scatter(X[:, 0], X[:, 1], c=y_pre) plt.show() # 用ch_scole查看最后效果 print(calinski_harabasz_score(X, y_pre))
2931.625030199556
# kmeans训练,且可视化 聚类=4 y_pre = KMeans(n_clusters=4, random_state=9).fit_predict(X) # 可视化展示 plt.scatter(X[:, 0], X[:, 1], c=y_pre) plt.show() # 用ch_scole查看最后效果 print(calinski_harabasz_score(X, y_pre))
5924.050613480169
关于在计算的过程中,如何选择合适的算法进行计算,可以参考scikit learn官方给的指导意见:
上一篇:机器学习: 集成学习
下一篇:机器学习: 朴素贝叶斯