RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏

技术支持

使用Python中的K-Means聚类分析测试数据
  • 作者:成都软件开发
  • 发表时间:2019-03-24 19:55
  • 来源:未知
 
先决条件: Numpy,OpenCV,matplot-lib
让我们首先使用matplot-lib工具使用多个功能可视化测试数据。
 
filter_none
编辑
play_arrow
 
brightness_4
# importing required tools 
import numpy as np 
from matplotlib import pyplot as plt 
  
# creating two test data 
X = np.random.randint(10,35,(25,2)) 
Y = np.random.randint(55,70,(25,2)) 
Z = np.vstack((X,Y)) 
Z = Z.reshape((50,2)) 
  
# convert to np.float32 
Z = np.float32(Z) 
  
plt.xlabel('Test Data') 
plt.ylabel('Z samples') 
  
plt.hist(Z,256,[0,256]) 
  
plt.show() 
这里'Z'是一个大小为100的数组,值范围从0到255.现在,将'z'重新整形为列向量。当存在多个特征时,它将更有用。然后将数据更改为np.float32类型。
 
输出:
 
 
现在,将k-Means聚类算法应用于与上述测试数据相同的示例,并查看其行为。
涉及的步骤:
1)首先我们需要设置测试数据。
2)定义标准并应用kmeans()。
3)现在分开数据。
4)最后绘制数据。
 
filter_none
编辑
play_arrow
 
brightness_4
import numpy as np 
import cv2 
from matplotlib import pyplot as plt 
  
X = np.random.randint(10,45,(25,2)) 
Y = np.random.randint(55,70,(25,2)) 
Z = np.vstack((X,Y)) 
  
# convert to np.float32 
Z = np.float32(Z) 
  
# define criteria and apply kmeans() 
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0) 
ret,label,center = cv2.kmeans(Z,2,None,criteria,10,cv2.KMEANS_RANDOM_CENTERS) 
  
# Now separate the data 
A = Z[label.ravel()==0] 
B = Z[label.ravel()==1] 
  
# Plot the data 
plt.scatter(A[:,0],A[:,1]) 
plt.scatter(B[:,0],B[:,1],c = 'r') 
plt.scatter(center[:,0],center[:,1],s = 80,c = 'y', marker = 's') 
plt.xlabel('Test Data'),plt.ylabel('Z samples') 
plt.show() 
输出:
 
 
此示例旨在说明k-means将在何处生成直观可能的集群。
 
应用:
1)识别癌症数据。
2)学生学业成绩预测。
3)药物活性预测。