# -*- coding:utf-8 -*-
# kmeans简单实现
"""
kmeans是经典的无监督聚类方法。步骤可以分为以下几步:
1.确定聚类的数目k
2.随机初始化k个聚类中心
3.根据准则(一般计算欧式距离)将数据分配到对应的聚类中心
4.更新每个类别的聚类中心(均值)
5.重复步骤2-步骤4若干次
"""
import numpy as np
import random
from collections import defaultdict
import matplotlib.pyplot as plt
class KMeans():
def __init__(self, data, k, max_iter=5):
# 初始化变量
self._data = data # 数据
self._k = k # 簇
self._max_iter = max_iter # 最大迭代次数
self._example_num = data.shape[0] # 有多少个数据
self._centroids = None # 设置质心
self._cluster_data_indices = None # 具体的每个簇
def _random_init_centroid(self):
# 随机初始化质心,保证质心在数据点之中
# sample函数,随机选择一个点做初始化质心
random_centroid_indicss = random.sample(
range(3, self._example_num), self._k)
centroids = self._data[random_centroid_indicss]
self._ce
kmeans算法简单实现
最新推荐文章于 2024-07-24 14:05:30 发布