使用python简单实现Kmeans

# -*- coding: utf-8 -*-
# @Author: xiaodong
# @Date  : 2021/4/6

import math
import random
import logging

from typing import List


logger = logging.getLogger("kmeans")


class KMeans:
    def __init__(self, dataset: List[float], k: int, iteration: int = 10):
        """
        实现简单 K-means
        :param dataset: 数据集
        :param k: 分簇的个数
        :param iteration: 最大迭代次数
        """
        self.k = k
        self.n = len(dataset)
        self.dim = len(dataset[0])
        self.dataset = dataset
        self.iteration = iteration

        self.center = self._center()

        self.last_centers = None
        self.no_change = 0  # 用来记录迭代中簇心未发生变化的连续个数,用于提前终止

    def distance(self, p1: List[float], p2: List[float]) -> float:
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值