python机器学习基础kmeans

KMeans是常见的非监督学习算法,用于将数据集划分成多个簇。算法通过迭代更新质心来实现,直到质心稳定或达到预设迭代次数。它通过计算数据点与质心的距离,将每个点分配到最近的簇。本文主要探讨Python中如何应用KMeans进行聚类分析。
摘要由CSDN通过智能技术生成

Kmeans:最简单的聚类算法之一。kmeans算法是一种基于样本间相似性度量的间接聚类方法,属于非监督学习方法。此算法以k为参数,把n 个对象分为k个簇,以使簇内具有较高的相似度,而且簇间的相似度较低。相似度的计算根据一个簇中对象的平均值(被看作簇的重心)来进行。此算法首先随机选择k个对象,每个对象代表一个聚类的质心。对于其余的每一个对象,根据该对象与各聚类质心之间的距离,把它分配到与之最相似的聚类中。然后,计算每个聚类的新质心。重复上述过程,直到准则函数收敛。

import random
import matplotlib.pyplot as plt
import numpy

class KMeans():

    def __init__(self,k):
        self.__k = k     #K表示分类数
        self.__data = [] # 存放原始数据
        self.__pointCenter = [] #存放中心点,第一次的中心点随机在__data中抽取
        self.__result = [ ]
        for i in range(k):
            self.__result.append([])  #[[],[],[],[],[]]

    def fit(self,data,threshold,times = 50000):
        '''
        :param data:  原始数据
        :param threshold: 退出条件
        :param times: 次数
        :return:
        '''
        self.__data = data
        self.randomCenter()
        centerDistance = self.calPo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值