我有4个聚类,需要找出每个聚类中最关键的特征集,以便了解聚类的特性,从而理解这些聚类的行为。我该如何做呢?
回答:
解决这个问题的一个初步方法是通过计算聚类中心的特征描述性统计数据。
查找最具影响力的变量的代码片段:
var_influence=cc.describe() #cc包含聚类中心 #聚类中心的描述性统计数据被保存到一个名为var_influence的数据框中。 #按标准差排序将显示出高标准差的变量。var_influence.sort_values(axis=1, by='std', ascending=False).iloc[:,:10]
这种方法相比于箱线图法(随着特征增加可视化变得困难)更快更有效。由于所有变量都已标准化,因此跨特征的比较变得非常容易。
还可以使用最大-最小方法,这将允许我们看到带宽最大的变量。由于所有变量都已标准化,最大-最小方法是验证上述结果的好方法。相关代码如下
pd.Series(var_influence.loc['max']-var_influence.loc['min']).sort_values(ascending=False)[:10]
多类分类
寻找影响特征的更严谨的方法是多类分类:使用聚类标签作为目标变量,在数据上训练一个多类分类模型。由此产生的模型系数可以用来确定特征的重要性。