KMeans算法

KMeans是一种基于迭代的分类算法,通过随机初始化质心并不断调整直到质心稳定。文章介绍了算法原理,并指出在数据点稀疏时可能影响分类效果的问题。
摘要由CSDN通过智能技术生成

简介

KMeans算法是一种简单的分类算法,算法思想是先随机选N个点分别生成N个集合,然后把剩余点往集合归类。由于选择的质心并不是确定正确的,每次填充完数据需要更新质心,重新归类直到质心不再改变。。

python实现

import numpy as np
import random
import math
class XYZClusterer(object):
    def __init__(self, cluster_num:int):
        assert cluster_num > 0
        self.cluster_num = cluster_num
        self.X           = np.zeros(0)
        self.Y           = np.zeros(0)
        self.ndot        = 0
        self.un_ind      = np.zeros(0, dtype=np.int)        # unknown point index
        self.clas        = [[] for i in range(cluster_num)] # point index in cluster
        self.clas_ctx    = np.zeros(self.cluster_num)       # point center x
        self.clas_cty    = np.zeros(self.cluster_num)       # point center y

    def fit(self, X:np.ndarray, Y:np.ndarray):
        assert X.shape[0] == Y.shape[0] >= self.cluster_num
        self.X       = X
        self.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值