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

时间:2019-03-22 09:39:59

标签: python-3.x cluster-analysis data-science feature-extraction hierarchical-clustering

我使用此功能从以下链接获得距离:https://sourceforge.net/projects/gower-distance-4python/files/。我的数据(df)使得每一行都是一笔交易,每一列都是要素。由于它包含大量分类数据,因此我使用行距转换了数据以测量“相似性” ...我希望这是正确的(如下所示):

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

然后我从上方将hierarchical_cluster绘制成树状图:

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())

2 个答案:

答案 0 :(得分:0)

我希望您知道PCA仅适用于连续数据吗?自从您提到以来,有许多分类功能。从您编写的内容来看,可能会出现混合数据。

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

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

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

[1] Huang,Z.,1998。k-means算法的扩展,用于使用分类值对大型数据集进行聚类。数据挖掘和知识发现,第2卷第3期,第283-304页。

答案 1 :(得分:0)

引用scipy有关Ward关联的文档:

  

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

所以您不能将Ward链接与Gower一起使用!