Kmeans聚类:将相似对象归入同一类,将不相似对象归到不同类。
Kmeans的基本流程:
Kmeans的优点:容易首先
缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。
实现:
# --*--coding:utf-8 --*--
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
def distance(vec1,vec2):
return np.sqrt(np.sum(np.square(vec1-vec2)))
def kmeans(data,k):
'''
:param data: dataframe:需要聚类的数组
:param k: 聚类目标数
:return:
'''
# 初始化质心
K=np.random.uniform(0,10,(k,data.shape[1]))
print("初始化质心:{}".format(k))
#创建一个数组用来存储聚类结果
ret=np.zeros((data.shape[0],2))
flag=True
while flag:
flag=False
for i in range(data.shape[0]):
print("数据的每一行