K-means算法与K-mediods算法 python实现

一、K-mediods 算法步骤:

1、随机选取k个样本作为中心点
2、一层遍历每一个样本,二层遍历每一个中心样本,找出离该样本最近的中心样本
3、遍历中心样本,该中心样本划分出来的该簇样本,遍历该簇样本,找出离所有样本距离最小的样本,代替旧中心
4、直到达到指定训练次数或者样本分类结果不再变化,结束训练
 1 import  numpy as np
 2 from numpy import *
 3 
 4 
 5 with open("xigua.txt") as file:
 6     data_lines = file.readlines()
 7     data_list = [[] for i in data_lines]
 8     for item in range(len(data_lines)):
 9         data_list[item][:] = (float(i) for i in data_lines[item].strip().split(",")[0:3])
10         data_list[item].append(-1)
11  #   print(data_list)
12 
13 
14 def choice_center(data, k):
15     centers = []
16     for i in np.random.choice(len(data), k):
17         centers.append(data[i])
18     print("随机选取的中心点(第一次):\n", centers)
19     return centers
20 
21 
22 def distance(a, b):
23     dis = []
24     for i in range(len(a)):
25         dis.append(pow(a[i] - b[i], 2))
26 #
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值