无监督学习中应用最多的就是聚类,其中k均值算法就是典型的聚类算法,下面是一段从文本中读取30数据,然后进行聚类的过程,包括输出读取的数据集、随机选择的K个初始均值向量、30行数据各自所属的类别以及最后的聚类中心,因为每次是随机选择K个初始均值向量,所以每次运行结果不一样的。
如果各位需要全部引用的话,请标注来源,具体的数据集需要的话,可以找我要。
import numpy as np
import math
# 读取文件
def load_dataset(file_name):
data_list = []
fr=open(file_name,encoding='utf-8-sig')
lines = fr.readlines()
for line in lines:
pas_line = line.strip().split("\t")
flt_line = list(map(eval, pas_line))
data_list.append(flt_line)
return np.array(data_list)
# 路径输入及函数调用后打印
data_set = load_dataset(r"F:\test\1.txt")
print(data_set)
# 计算两个向量之间的欧氏距离
def dist_eclud(vecA, vecB):
vec_square = []
for element in vecA - vecB:
element = element ** 2
vec_square.append(element)
return sum(vec_square) ** 0.5
# 构建k个随机质心
def rand_cent(data_set, k):