我们可以对 K-Means 集群进行排名或为某些集群分配权重吗?
Can we rank K-Means clusters or assign weights to certain clusters?
我正在处理 K-Means 聚类任务,我想知道是否有某种方法可以对聚类进行某种排序,或者可以为某些特定聚类分配特定权重。有没有办法做到这一点?这是我的代码。
from pylab import plot,show
from numpy import vstack,array
from numpy.random import rand
import numpy as np
from scipy.cluster.vq import kmeans,vq
import pandas as pd
import pandas_datareader as dr
from math import sqrt
from sklearn.cluster import KMeans
from matplotlib import pyplot as plt
df = pd.read_csv('C:\my_path\analytics.csv')
data = np.asarray([np.asarray(dataset['Rating']),np.asarray(dataset['Maturity']),np.asarray(dataset['Score']),np.asarray(dataset['Bin']),np.asarray(dataset['Price1']),np.asarray(dataset['Price2']),np.asarray(dataset['Price3'])]).T
centroids,_ = kmeans(data,1000)
idx,_ = vq(data,centroids)
details = [(name,cluster) for name, cluster in zip(dataset.Cusip,idx)]
所以,我得到了我的 'details',我看了看,此时一切似乎都很好。我最终得到了大约 700 个集群。我只是想知道是否有一种方法可以对这些集群进行排序,假设 'Rating' 是最重要的特征。或者,也许有一种方法可以为 'Rating' 分配更高的权重。我不确定这是否 100% 有意义。我只是在考虑这个概念,想知道是否有一些明显的解决方案,或者这可能只是胡说八道。我可以很容易地计算每个集群中的记录,但我认为这没有任何意义。我用谷歌搜索了这个,但没有找到任何有用的东西。
一个 "cheat" 技巧是使用特征 rating
两次或三次,然后它会自动获得更多权重:
data = np.asarray([np.asarray(dataset['Rating']), np.asarray(dataset['Rating']), np.asarray(dataset['Maturity']),np.asarray(dataset['Score']),np.asarray(dataset['Bin']),np.asarray(dataset['Price1']),np.asarray(dataset['Price2']),np.asarray(dataset['Price3'])]).T
周围也有kmeans的调整,但是python没有实现。
我正在处理 K-Means 聚类任务,我想知道是否有某种方法可以对聚类进行某种排序,或者可以为某些特定聚类分配特定权重。有没有办法做到这一点?这是我的代码。
from pylab import plot,show
from numpy import vstack,array
from numpy.random import rand
import numpy as np
from scipy.cluster.vq import kmeans,vq
import pandas as pd
import pandas_datareader as dr
from math import sqrt
from sklearn.cluster import KMeans
from matplotlib import pyplot as plt
df = pd.read_csv('C:\my_path\analytics.csv')
data = np.asarray([np.asarray(dataset['Rating']),np.asarray(dataset['Maturity']),np.asarray(dataset['Score']),np.asarray(dataset['Bin']),np.asarray(dataset['Price1']),np.asarray(dataset['Price2']),np.asarray(dataset['Price3'])]).T
centroids,_ = kmeans(data,1000)
idx,_ = vq(data,centroids)
details = [(name,cluster) for name, cluster in zip(dataset.Cusip,idx)]
所以,我得到了我的 'details',我看了看,此时一切似乎都很好。我最终得到了大约 700 个集群。我只是想知道是否有一种方法可以对这些集群进行排序,假设 'Rating' 是最重要的特征。或者,也许有一种方法可以为 'Rating' 分配更高的权重。我不确定这是否 100% 有意义。我只是在考虑这个概念,想知道是否有一些明显的解决方案,或者这可能只是胡说八道。我可以很容易地计算每个集群中的记录,但我认为这没有任何意义。我用谷歌搜索了这个,但没有找到任何有用的东西。
一个 "cheat" 技巧是使用特征 rating
两次或三次,然后它会自动获得更多权重:
data = np.asarray([np.asarray(dataset['Rating']), np.asarray(dataset['Rating']), np.asarray(dataset['Maturity']),np.asarray(dataset['Score']),np.asarray(dataset['Bin']),np.asarray(dataset['Price1']),np.asarray(dataset['Price2']),np.asarray(dataset['Price3'])]).T
周围也有kmeans的调整,但是python没有实现。