kmeans python_使用python+sklearn实现k均值的假设演示

注意:单击此处 https://urlify.cn/eiEVvm 下载完整的示例代码,或通过Binder在浏览器中运行此示例 此示例旨在说明k均值会产生不直观甚至可能出乎意料的聚类情况。在前三个图中,输入数据不符合k均值某些隐含的假设,因此产生了不理想的聚类结果。在最后一个图中,尽管斑点(blobs)大小不均匀,k均值仍然可以返回直观的聚类。
03531761054d48e4ce95cd6c0e7ccec0.png
sphx_glr_plot_kmeans_assumptions_001
print(__doc__)# 作者: Phil Roth # 许可证: BSD 3 clauseimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.cluster import KMeansfrom sklearn.datasets import make_blobsplt.figure(figsize=(12, 12))n_samples = 1500random_state = 170X, y = make_blobs(n_samples=n_samples, random_state=random_state)# 错误的聚类数y_pred = KMeans(n_clusters=2, random_state=random_state).fit_predict(X)plt.subplot(221)plt.scatter(X[:, 0], X[:, 1], c=y_pred)plt.title("Incorrect Number of Blobs")# 各向异性(Anisotropicly)分布的数据transformation = [[0.60834549, -0.63667341], [-0.40887718, 0.85253229]]X_aniso = np.dot(X, transformation)y_pred = KMeans(n_clusters=3, random_state=random_state).fit_predict(X_aniso)plt.subplot(222)plt.scatter(X_aniso[:, 0], X_aniso[:, 1], c=y_pred)plt.title("Anisotropicly Distributed Blobs")# 不同的方差X_varied, y_varied = make_blobs(n_samples=n_samples,                                cluster_std=[1.0, 2.5, 0.5],                                random_state=random_state)y_pred = KMeans(n_clusters=3, random_state=random_state).fit_predict(X_varied)plt.subplot(223)plt.scatter(X_varied[:, 0], X_varied[:, 1], c=y_pred)plt.title("Unequal Variance")# 大小不均匀的斑点(blobs)X_filtered = np.vstack((X[y == 0][:500], X[y == 1][:100], X[y == 2][:10]))y_pred = KMeans(n_clusters=3,                random_state=random_state).fit_predict(X_filtered)plt.subplot(224)plt.scatter(X_filtered[:, 0], X_filtered[:, 1], c=y_pred)plt.title("Unevenly Sized Blobs")plt.show()
脚本的总运行时间:(0分钟0.685秒) 估计的内存使用量: 8 MB 2ce4c6b8fbccf94512926ad67c200f12.png 下载Python源代码: plot_kmeans_assumptions.py 下载Jupyter notebook源代码: plot_kmeans_assumptions.ipynb 由Sphinx-Gallery生成的画廊

文壹由“伴编辑器”提供技术支持

☆☆☆为方便大家查阅,小编已将scikit-learn学习路线专栏 文章统一整理到公众号底部菜单栏,同步更新中,关注公众号,点击左下方“系列文章”,如图:

cbd8c94a620dfd2f01ccc4e00a5c96e7.png

欢迎大家和我一起沿着scikit-learn文档这条路线,一起巩固机器学习算法基础。(添加微信:mthler备注:sklearn学习,一起进【sklearn机器学习进步群】开启打怪升级的学习之旅。)

27b7415ff4f8e3942fdf1289fbdf424f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值