如何选择最重要的功能?特色工程

问题描述 投票:-1回答:2

我使用了这个链接的gower距离函数:https://sourceforge.net/projects/gower-distance-4python/files/。我的数据(df)是每行都是交易,每列都是特征。由于它包含大量的分类数据,然后我使用gower距离转换数据以测量“相似性”...我希望这是正确的(如下所示):

D = gower_distances(df)
distArray = ssd.squareform(D)
hierarchal_cluster=scipy.cluster.hierarchy.linkage(distArray, method='ward', metric='euclidean', optimal_ordering=False)

然后我将上面的层次聚类绘制成树状图:

plt.title('Hierarchical Clustering Dendrogram (truncated)')
plt.xlabel('sample index or (cluster size)')
plt.ylabel('distance')

dendrogram(
    hierarchal_cluster,
    truncate_mode='lastp',  # show only the last p merged clusters
    p=15,  # show only the last p merged clusters
    leaf_rotation=90.,
    leaf_font_size=12.,
    show_contracted=True  # to get a distribution impression in truncated branches
)

我无法展示它,因为我没有足够的特权点,但在树形图上我可以看到单独的颜色。 将它们分开的主要鉴别因素是什么? 我怎么能找到这个? 如何使用PCA提取有用的功能? 我将'hierarchal_cluster'传递给PCA功能吗? 像下面的东西..?

pca = PCA().fit(hierarchal_cluster.T)
plt.plot(np.arange(1,len(pca.explained_variance_ratio_)+1,1),pca.explained_variance_ratio_.cumsum())
python-3.x cluster-analysis data-science feature-extraction hierarchical-clustering
2个回答
0
投票

我希望您知道PCA仅适用于连续数据吗?既然你提到过,有许多分类功能。根据您所写的内容,您会得到混合数据。

处理混合数据时的常见做法是分离连续和分类特征/变量。然后找到连续(或数值)特征的数据点与分类特征的汉明距离之间的欧几里德距离[1]。

这将使您能够分别找到连续和分类特征之间的相似性。现在,在此处,在连续变量上应用PCA以提取重要特征。并将Multiple Correspondence Analysis MCA应用于分类特征。此后,您可以将获得的相关要素组合在一起,并应用任何聚类算法。

基本上,我建议在聚类之前进行特征选择/特征提取。

[1] Huang,Z.,1998。用于聚类具有分类值的大数据集的k均值算法的扩展。数据挖掘和知识发现,2(3),pp.283-304。


0
投票

引用关于Ward连接问题的scipy文档:

方法仅在使用欧几里德成对度量时才正确定义“质心”,“中位数”和“区域”。如果y作为预先计算的成对距离传递,则用户有责任确保这些距离实际上是欧几里德,否则产生的结果将是不正确的。

所以你不能使用Ward与Gower的联系!

© www.soinside.com 2019 - 2024. All rights reserved.