# -*- coding: utf-8 -*-
"""
Created on Mon Feb 5 11:58:12 2018
@author: Administrator
"""
# -*- coding: utf-8 -*-
"""
Created on Sat Feb 3 13:51:03 2018
@author: Administrator
"""
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
import random
import numpy as np
#该函数用来计算两个数组直接的距离
def get_distance(x,y):
d=sum([(x[i]-y[i])*(x[i]-y[i]) for i in range(len(x))])
return d
#k代表类别值,X代表输入,K代表簇的个数
def get_center(X,k,center):
#定义数组distance用来存放距离值
#数组y_pred用来储存最小距离所对应的类别值.
y_pred=[]
for i in range(len(X)):
distance=[]
for j in range(len(center)):
#print(center[j])
distance.append(get_distance(X[i],center[j]))
y_pred.append(distance.index(min(distance)))#最小距离对应的下标
#求每个类别值的所在数组的中心点
for i in range(k):
t=[]
for j in range(len(X)):
手写kmeans算法实现聚类
最新推荐文章于 2024-06-04 22:11:29 发布