python kmean 多维_Python机器学习:Kmeans聚类

本文介绍了KMeans聚类算法,这是一种无监督学习的简单聚类方法。通过Scikit-Learn库展示了如何使用KMeans进行多维数据聚类,并通过一个二维数据集的实例说明了算法的工作原理。KMeans算法基于期望最大化(E-M)方法,可能不会达到全局最优解,且需要预先设定簇的数量。文章还讨论了算法的局限性,如线性聚类边界的限制,并提到了SpectralClustering作为解决非线性边界的解决方案。
摘要由CSDN通过智能技术生成

聚类算法直接从数据的内在性质中学习最优的划分结果或者确定离散标签类型。

虽然在 Scikit-Learn 或其他地方有许多聚类算法,但最简单、最容易理解的聚类算法可能还得算是 k-means 聚类算法了,在sklearn.cluster.KMeans中实现。首先还是先输入标准程序包:%matplotlib inline

import matplotlib.pyplot as plt

import seaborn as sns; sns.set()  # for plot styling

import numpy as np

01/ k-means简介

k-means 算法在不带标签的多维数据集中寻找确定数量的簇。最优的聚类结果需要符合以下两个假设。“簇中心点”(cluster center)是属于该簇的所有数据点坐标的算术平均值。

一个簇的每个点到该簇中心点的距离,比到其他簇中心点的距离短。

这两个假设是 k-means 模型的基础,后面会具体介绍如何用该算法解决问题。先通过一个简单的数据集,看看 k-means 算法的处理结果。首先,生成一个二维数据集,该数据集包含 4 个明显的簇。由于要演示无监督算法,因此去除可视化图中的标签:

from sklearn.datasets.samples_generator import make_blobs

X, y_true = make_blobs(n_samples=300, centers=4,

cluster_std=0.60, random_state=0)

plt.scatter(X[:, 0], X[:, 1], s=50);

061d76c15a296d67ef5d907772b23bd5.png

通过肉眼观察,可以很轻松地挑选出 4 个簇。而 k-means 算法可以自

动完成 4 个簇的识别工作,并且在 Scikit-Learn 中使用通用的评估器API:from sklearn.cluster import KMeans

kmeans = KMeans(n_clusters=4)

kmeans.fit(X)

y_kmeans = kmeans.predict(X)

下面用带彩色标签的数据来展示聚类结果。同时,画出簇中心点,这些簇中心点是由 k-means 评估器确定的:plt.scatter(X[:, 0], X[:, 1], c&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值