Kmeans的Python实现

K-MEANS的python实现


K均值是一种很常见的无监督机器学习方法了,在PYTHON中也有很多包可以调用,我们主要是用他来锻炼一下PYTHON的语法,在这里我们的默认输入是多维数组ndarray

代码如下所示


#KNN

#一行是一个样本

import pandas as pd

import numpy as np

import random

#计算聚簇中心

def reCent(inpudata):
	mu=np.mean(inpudata, axis=0) # axis=0,计算每一列的均值
	return mu


#计算距离
def distance(x,y):
	distance=np.dot(x,y.T)
	return distance



def knn(inputdata,k):

	#随机选择聚簇中心
    cxin=[]
    y=[]
    n=random.sample(range(len(inputdata)), k)
    for i in n:
        cxin.append(inputdata[i])
    cxin=np.array(cxin)
    #计算距离
    n=0
    for x in inputdata:
        d=[distance(x,j) for j in cxin]
        y.append(d.index(min(d)))  
        n+=1
        for jb in range(n):
            if y[jb]==y[-1]:
                test=np.array([inputdata[jb],cxin[y[-1]]])    #更换
        cxin[y[-1]]=reCent(test)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值