05_无监督学习--聚类模型--K 均值

这篇博客介绍了无监督学习中的K均值聚类模型。首先,文章通过引入必要的依赖库来开始,接着载入并预处理数据。然后详细阐述了算法的实现过程,并给出了相应的输出结果。最后,进行了测试,通过图表展示了算法的应用效果。
摘要由CSDN通过智能技术生成

无监督学习–聚类模型–K 均值

0.引入依赖

import numpy as np
import matplotlib.pyplot as plt

# 这里直接 sklearn 里的数据集
from sklearn.datasets.samples_generator import make_blobs

1.数据的加载和预处理

x, y = make_blobs(n_samples=100, centers=6, random_state=1234, cluster_std=0.6)
# x # array([[-0.02708305,  5.0215929 ], ..., [-4.7583093 ,  5.85803377]])
# x.shape # (100, 2)
# y.shape # (100,)

plt.figure(figsize=(9, 9))
plt.scatter(x[:,0], x[:,1], c=y)
plt.show()

作图如下:
[外链图片转存失败(img-sa8Pil3S-1569159801291)(https://s2.ax1x.com/2019/05/18/ELjEL9.png)]

2.算法实现

# 引入 scipy 库中的距离函数,默认实现是欧式距离
from scipy.spatial.distance import cdist

class K_Means(object):
    # 初始化,参数 n_clusters(K)、max_iter(迭代次数)、centroids(初始质心)
    def __init__(self, n_clusters=6, max_iter=300, centroids=[]):
        self.n_clusters = n_clusters
        self.max_iter = max_iter
        self.centroids = np.array(centroids, dtype=np.float)
        
    # 定义训练模型方法,实现 K-means 聚类过程
    def fit(self, data):
        # 假如没有指定初始质心,就随机选取 data 中的点作为质心
        if (self.centroids.shape == 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值