机器学习sklearn----初识KMeans

KMeans是一种无监督学习的分类算法,用于将数据分为K个簇,使得簇内差异小,簇间差异大。本文介绍了KMeans的基本概念,如质心和簇内误差,以及其工作过程。通过一个使用sklearn生成的示例数据集,展示了如何使用KMeans进行分类,并探讨了KMeans的常用属性,如labels_和inertia_。此外,还讨论了KMeans的predict方法在处理大量数据时如何提高效率。
摘要由CSDN通过智能技术生成

概述

KMeans是一种无监督学习的方法。他是一种分类算法。用于探索原始数据,将原始数据中相同属性的样本归为一类。这篇文章只讲KMeans的简单使用,关于评估结果好坏的内容,看我下一篇文章。

KMeans中几个概念

  • 簇: 即分组,KMeans将数据分为K个簇,簇间差异大,簇内差异小
  • 质心: 簇中所有数据的均值就是该簇的质心。例如二维平面中一个簇的点的质心为该簇中所有点很纵坐标坐标的均值
  • 簇内误差: 样本点到他所在的质心的距离之和,用来衡量簇的差异

KMeans工作过程

  1. 随机抽取K个样本点,作为初始质心
  2. 将每个样本划分到离他最近的质心所在簇
  3. 将每个样本分好簇后,计算每个簇的新的质心
  4. 重复2,3过程,知道新的质心不在产生变化

KMeans使用示例

导入相关模块

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
import warnings

%matplotlib inline

# 忽略警告
warnings.filterwarnings("ignore")

生成原始数据

这里使用sklearn中make_blobs方法来产生原始数据,关于该方法的使用,看我的另一篇文章。这里用这个方法生成的数据会返回标签(即每个样本所属的分类),方便验证KMeans的结果。

# 产生用于KMeans聚类的数据
# 在实际的生活中,我们并不会知道数据的分簇情况,这是需要我们
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值