我的数据帧(df)由一个布尔值、连续变量和一个名为wt\u cnt的字段组成,该字段表示记录的权重。你知道吗
在我进行聚类之前,MinMaxScaler将应用于我的数据:
mms = MinMaxScaler()
mms.fit(data)
data_transformed = mms.transform(data)
KMeans程序如下:
sum_of_squared_distances = []
K = range(1,15)
for k in K:
km = KMeans(n_clusters=k) #init model
km = km.fit(data_transformed, sample_weight=None) #fit model
sum_of_squared_distances.append(km.inertia_) #overall SSE
但是我想保留我的第一个df(wt\u cnt)的初始字段,它指定了我的聚类分析的权重。这对我来说很难做到,因为转换的数据只是一个矩阵而不是df。关于如何最有效地做到这一点有什么建议吗?你知道吗
示例如下:
data = [[2,12669,5]
,[2,7057,1]
,[2,6353,1]
,[1,13265,3]
,[2,22615,1]
,[2,9413,1]
,[2,12126,2]
,[2,7579,1]
,[1,5963,1]]
df = pd.DataFrame(data,columns=['Nm','Frsh','wt_cnt'])
mms = MinMaxScaler()
mms.fit(df)
data_transformed = mms.transform(df)
sum_of_squared_distances = []
K = range(1,5)
for k in K:
km = KMeans(n_clusters=k)
km = km.fit(data_transformed, sample_weight=None)
sum_of_squared_distances.append(km.inertia_)
plt.plot(K, sum_of_squared_distances, 'bx-')
plt.xlabel('k')
plt.ylabel('SS dists')
plt.show()
目前没有回答
相关问题 更多 >
编程相关推荐