K-Means聚类 西瓜书(课后9.4)

主要参考来自于:https://blog.csdn.net/weixin_41848012/article/details/103310827?utm_source=app

# -*- coding: utf-8 -*-
# @FileName: K-means聚类
# @Software: PyCharm
# @Author  : Li Xu
# @Time    :2020//12//20  15:10

'''
K-Means聚类
西瓜书(课后9.4)
'''

import math
import random

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd


class KMeans():
    '''
    定义一个类的构造器
    '''

    def __init__(self, dataset, K):
        '''
        初始化各个参数
        :param dataset:数据集
        :param K:聚类簇数
        '''
        self.dataset = dataset  # 数据集
        self.K = K  # 聚类簇数
        self.vector = 0  # 初始向量的维数
        self.mean_vector = []  # 均值向量
        self.count = 0  # 循环次数
        self.max_iteration = 500  # 最大迭代次数
        self.C = [[] for i in range(K)]  # 簇
        self.update_flag = 0  # 记录均值向量是否被更新

    def loaddateset(self):
        '''
        加载数据集
        :return:
        '''
        # 初始化数据集的维数
        self.vector = len(self.dataset[0])

    def InitMean_vetor(self):
        '''
        初始化均值向量
        :return:
        '''
        # 随机产生K个均值向量
        means = random.sample(range(0, len(self.dataset)), self
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值