聚类算法 -- K 均值

K 均值算法是聚类分析的一种机器学习算法,通过相似度或者数据之间的距离进行分类,将样本划分成 N 个分类。相似度的算法使用闵可夫斯基距离,公式如下:
在这里插入图片描述

  • p=1 时为曼哈顿距离

d(x, y) = ∑i=1n∣xi−yi∣\sum_{i=1}^n |x_i - y_i|i=1nxiyi

  • p=2 时为欧氏距离

d(x, y) = ∑i=1n∣xi−yi∣\sum_{i=1}^n |x_i - y_i|i=1nxiyi

聚类算法主要可以通过距离、密度等算法进行分类,本文主要实现按距离进行分类的 KMean 算法。

  1. 首先初始化质心
  2. 将样本分配到距离最近的质心,并创建 k 个聚类
  3. 根据每个聚类,从新计算质心并分配样本,直到质心的变化不大

Sklearn 实现K Mean

import numpy as np
from sklearn.cluster import KMeans

X = np.array([[0,2],[0,0],[1,0],[5,0],[5,2]])

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
print(kmeans.labels_)
# 预测分类
kmeans.predict([[0, 0], [12, 3]])
# 或者中心点 质心
kmeans.cluster_centers_

在这里插入图片描述

总结

K 均值算法很好理解,通过算法找到最优中心点,从而将样本进行分类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值