备注地方只是用来测试,没有其他用处!!!!!!!!
初次编写,有许多不足。。。。。。。。。。。。。。。
未调用第三方模块
-- coding: utf-8 --
“”"
Created on Mon Apr 29 12:14:36 2019
@author: 你是不是在坐飞机
“”"
-- coding: utf-8 --
“”"
Spyder Editor
This is a temporary script file.
“”"
import numpy as np
import random
from sklearn.cluster import KMeans
m = int(input(“请输入样本大小:”))
n = int(input(“请输入特征数:”))
x = int(input(“请输入聚类数:”))
data = np.random.rand(m,n)
classification = []
after = []
feature = []
for i in range(0,x):
feature.append(random.choice(data))
round = 0
mark = 0
while(round == 0):
after = []
classification = []
for o in range(0,x):
after.append([])
classification.append([])
#print(“feature**************************************”)
#print(feature)
for j in range(0,m):
count = 0
distance = []
s = data[j]
for i2 in range(0,x):
sum = 0
for j2 in range(0,n):
dis = (feature[i2][j2] - s[j2])2
sum = sum + dis
distance.append(sum)
min = distance[0]
for i3 in range(0,x):
if(min > distance[i3]):
min = distance[i3]
count = i3
classification[count].append(s)
#print("classification:")
#print(classification)
classname = []
for i4 in range(0,x):
classname = classification[i4]
#print(classname)
for i5 in range(0,n):
sum2 = 0
for i6 in range(0,len(classname)):
sum2 = sum2 + classname[i6][i5]
average = sum2 / len(classname)
#print("average:")
#print(average)
after[i4].append(average)
#print("after***********************")
#print(after)
distance2 = []
for i6 in range(0,x):
sum3 = 0
for i7 in range(0,n):
dis1 = (feature[i6][i7] - after[i6][i7])2
sum3 = sum3 + dis1
distance2.append(sum3)
flag = 0
#print(“distance2”)
#print(distance2)
for i8 in range(0,x):
if(distance2[i8] < 0.000001):
flag = flag + 1
if(flag == x):
round = 1
#print(feature)
#print(round)
for i9 in range(0,x):
for i10 in range(0,n):
feature[i9][i10] = after[i9][i10]
#print("while*****************************************************************************************************************")
print(“未调用第三方模块:”)
print(feature)
调用第三方模块
estimator = KMeans(n_clusters= x)#构造聚类器
estimator.fit(data)#聚类
label_pred = estimator.labels_ #获取聚类标签
centroids = estimator.cluster_centers_ #获取聚类中心
#print(label_pred);
print(“调用第三方模块:”)
print(centroids);