半监督k-means算法

import numpy as np
import matplotlib.pyplot as plt
#matplotlib inline

# 解析文件,按空格分割字段,得到一个浮点数字类型的矩阵
def loadDataSet(fileName):  
    dataMat = []              # 初始化一个空列表,文件的最后一个字段是类别标签
    fr = open(fileName)       # 读取文件
    for line in fr.readlines():   # 循环遍历文件所有行
        curLine = line.strip().split(' ')   # 切割每一行的数据
        fltLine = list(map(float, curLine))  # 映射所有的元素为 float(浮点数)类型
        dataMat.append(fltLine)   # 将数据追加到dataMat
    return dataMat       # 返回dataMat

# 计算欧几里得距离
def distEclud(vecA, vecB):
    return sqrt(sum(power(vecA - vecB, 2))) # 求两个向量之间的距离

# 构建聚簇中心,取k个(此例中为4)随机质心
def randCent(dataSet, k):
    n = shape(dataSet)[1]            #获取特征值数量:3列
    centroids = mat(zeros((k,n)))    #初始化质心为0,创建(k,n)个以零填充的矩阵k=4行,3列
    for j in range(n):               #循环遍历特征值
        #下面计算的分别是横坐标、纵坐标与类别标签
        minJ = min(dataSet[:,j])     #计算每一列的最小值
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值