我正在使用KMeans群集将数据拆分为2个群集,如下所示。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import cluster
##################################################
# load data
clm = np.genfromtxt('data.csv',delimiter=',', skiprows=1)
X = clm[:,(1,12)].astype(float)
# define kmeans learner, then fit with data
kmeans = cluster.KMeans(n_clusters=2)
kmeans.fit(X)
# define centroids
centroids = kmeans.cluster_centers_
labels = kmeans.labels_
#print(centroids)
#print(labels)
#set color
colors = ["g.", "r."]
for i in range(len(X)):
print("coordinate:",X[i], "label:", labels[i])
plt.plot(X[i][0], X[i][1], colors[labels[i]], markersize= 10)
# plot
plt.scatter(centroids[:,0], centroids[:,1], marker = "x", s=150, linewidth = 5, zorder=10)
plt.xlabel('Read proportion')
plt.ylabel('Memory_used_Read')
plt.xlim(0,100)
plt.ylim(ymin=0)
plt.show()
在KMeans聚类中,对于集合S =(x,y),没有标记数据,而对于集合S输入x和目标数据y,在SVM中没有。我要做的是在SVM中单独使用创建的集群。我不知道如何为每个群集获取X,y。如果您有任何建议,请告诉我。
感谢。
答案 0 :(得分:0)
这并不是100%清楚你要做的事情。如果要将群集分配用作类标签,则可以从y = kmeans.predict(X)
获得y。特征X是相同的。像这样在SVM中使用它们:
y = kmeans.predict(X)
svm = SVM()
svm.fit(X, y)