机器学习(六):通俗易懂无监督学习K-Means聚类算法及代码实践

K-Means是一种无监督学习方法,用于将无标签的数据集进行聚类。其中K指集群的数量,Means表示寻找集群中心点的手段。

一、 无监督学习 K-Means

贴标签是需要花钱的。
所以人们研究处理无标签数据集的方法。(笔者狭隘了)
面对无标签的数据集,我们期望从数据中找出一定的规律。一种最简单也最快速的聚类算法应运而生—K-Means。
它的核心思想很简单:物以类聚。

用直白的话简单解释它的算法执行过程如下:

  1. 随便选择K个中心点(大哥)。
  2. 把距离它足够近的数据(小弟)吸纳为成员,聚成K个集群(组织)。
  3. 各集群(组织)内部重新选择中心点(大哥),选择标准是按照距离取均值作为中心点(大哥)。
  4. 重复2、3步骤直到收敛(组织成员相对稳定)。

这就是黑涩会形成聚类的过程。

二、 K-Means代码实践

2.1 鸢尾花数据集

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 大家不用在意这个域名
df = pd.read_csv('https://blog.caiyongji.com/assets/iris.csv')
sns.scatterplot(x='petal_length',y='petal_width',data=df,hue='species')

我们得到带标签的数据如下:

在这里插入图片描述

2.2 K-Means训练数据

我们移除数据标签,仅使用花瓣长、宽作为数据输入,并使用无监督学习方法K-Means进行训练。

X = df[['petal_length','petal_width']].to_numpy() 

from sklearn.cluster import KMeans
k = 2
kmeans = KMeans(n_clusters=k, random_state=42)
y_pred = kmeans.fit_predict(X)
plt.plot(X[y_pred==1, 0], X[y_pred==1, 1], 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值