1.无监督学习
无监督学习就是在没有标签的情况下对数据进行聚类分析或关联性分析。聚类如k均值聚类,关联性分析如购物蓝分析,啤酒和尿布分析
2.k均值聚类
k均值是发现数据集中k个簇的算法,簇的个数是用户给定的。每个簇的质心通过通过簇中所有点的中心描述。其原理是先随机定义k个质心,更新数据的质心,更新簇的中新,直到数据所在的簇不变为止
from numpy import *
#解析文本
def loadData(fileName):
dataSet = []
fr = open(fileName)
for line in fr.readlines():
curLine = line.strip().split('\t')
floLine = map(float, curLine)
dataSet.append(floLine)
return dataSet
#计算距离
def distEclud(vecA, vevB):
return sqrt(sum(power(vecA - vevB, 2)))
#产生随机簇
def randCent(dataSet, k):
n = shape(dataSet)[1]
centroids = mat(zeros((k,n)))
for j in range(n):
minJ = min(dataSet[:,j])
rangJ = float(max(dataSet[:,j]) - minJ)
centroids[:,j] = minJ + rangJ * random.rand(k,1)
return centroids
#k均值算法
def kMeans(dataSet, k, distMeas = distEclu