数据挖掘实验:k_means、k_medoids聚类算法的实现(Python)

目录

前言

一、k-means算法

二、k-medoids算法

三、实验结果展示

总结


前言

本文是基于划分的聚类算法研究与实现,实现了k均值及k中心点聚类算法,并在数据集上完成测试。用户输入k的值,可对数据集中的数据进行聚类。

一、k-means算法

k-means算法使用簇的均值点作为簇的形心。

首先在数据集中随机选择k个点作为k个簇的初始均值,对于数据集中的每个点,根据欧式距离将其分配至距离最近的簇。然后k均值算法开始迭代,对于每个簇,使用该簇内的点计算均值作为新的簇中心,再重新分配所有的点。迭代继续,直到分配稳定,所有的簇中心不在发生变化。

具体实现代码如下:

import random
import math
import numpy

def dataSet():#处理数据集
    dataset=[]
    fr=open("聚类实验数据/data.txt")
    for line in fr.readlines():
        currLineListFloat = []
        line = line.split(" ")
        line=line[0:-1]
        for i in line:  # 逐行将字符串数据转化为浮点数
            currLineListFloat.append(float(i))
        dataset.append(currLineListFloat)#数组矩阵
    return dataset

def distance(x,y):#计算距离
    error=[]
    a=0
    for i in range(0,len(x)):
        error.append(abs(x[i]-y[i]))
    for i in range(0,len(error)):
        a=a&#

你可能感兴趣的:(课程实验,数据挖掘,聚类算法,python)