混合连续变量和二进制变量的t-SNE


10

我目前正在研究使用t-SNE进行高维数据的可视化。我有一些包含二进制和连续变量混合的数据,并且数据似乎很容易将二进制数据聚类。当然,这是按比例缩放(介于0和1之间)数据的预期:二进制变量之间的Euclidian距离将始终最大/最小。如何使用t-SNE处理混合的二进制/连续数据集?我们应该删除二进制列吗?它有一个不同的metric,我们可以使用?

作为示例,请考虑以下python代码:

x1 = np.random.rand(200)
x2 = np.random.rand(200)
x3 = np.r_[np.ones(100), np.zeros(100)]

X = np.c_[x1, x2, x3]

# plot of the original data
plt.scatter(x1, x2, c=x3)
# … format graph

所以我的原始数据是:

原始数据

其中颜色是第三个特征(x3)的值-在3D中,数据点位于两个平面(x3 = 0平面和x3 = 1平面)中。

然后,我执行t-SNE:

tsne = TSNE() # sci-kit learn implementation
X_transformed = StandardScaler().fit_transform(X)
tsne = TSNE(n_components=2, perplexity=5)
X_embedded = tsne.fit_transform(X_transformed)

结果图:

tsne_data

并且数据当然由x3聚类。我的直觉是,由于对二进制特征的距离度量没有很好地定义,我们应该在执行任何t-SNE之前将其删除,这将是一个遗憾,因为这些特征可能包含用于生成聚类的有用信息。


1
注意:我仍然有兴趣听取有关此内容以及UMAP在此领域的适用性的评论。
FChm

感谢您的悬赏,仍然有兴趣,但并没有花很多时间研究这个问题。我今天可能有时间进行一些初步研究,并将在适用时添加更新。
FChm

2
我在实践中遇到了这个问题。我认为它不是特定于tSNE的,但同样会影响任何基于距离的无监督学习算法(包括聚类)。我还认为,适当的解决方案将在很大程度上取决于二进制特征所代表的含义,并取决于专家对其重要性的判断。因此,我正在寻找一个可以讨论各种可能情况的答案。我敢肯定,这里没有一种万能的解决方案。
变形虫

Answers:


8

免责声明:我只对该主题有了解,但是由于没有其他人回答,因此我将尝试一下

距离很重要

任何基于距离的降维技术(tSNE,UMAP,MDS,PCoA以及可能的其他方法)仅与您使用的距离度量一样好。正如@amoeba正确指出的那样,不可能有一个“一刀切”的解决方案,您需要有一个距离度量标准,以捕获您认为在数据中重要的内容,即,您认为相似的行之间的距离很小,而您将考虑不同有很大的距离。

您如何选择良好的距离指标?首先,让我做一些转移:

整理

在现代机器学习的辉煌时代到来之前,社区生态学家(以及很可能是其他人)已经尝试为多维数据的探索性分析绘制漂亮的图。他们称此过程为排序,这是一个至少在70年代至今仍在流行的生态文献中搜索的有用关键字。

重要的是,生态学家拥有非常多样化的数据集,并且处理二进制,整数和实值特征(例如,物种的存在/不存在,观察到的样本数量,pH,温度)的混合。他们花了很多时间思考距离和转换,以使协调工作顺利进行。我对这个领域不太了解,但是例如,勒让德(Legendre)和德卡塞雷斯(DeCáceres)Beta多样性作为社区数据的差异而进行的评论:不相似系数和分区显示了您可能想要检查的大量可能距离。

多维缩放

排序的首选工具是多维缩放(MDS),尤其是非度量变量(NMDS),除了t-SNE,我鼓励您尝试使用它。我不了解Python世界,但是包metaMDS功能中的R实现vegan为您提供了很多技巧(例如,运行多次直到找到两个相似的运行)。

这是有争议的,请参见评论:关于MDS的好处是它还投影了要素(列),因此您可以看到哪些要素驱动了降维。这可以帮助您解释数据。

请记住,t-SNE被批评为一种获得了解的工具,例如对这种陷阱的探索 -我听说过UMAP解决了一些问题,但是我没有使用UMAP的经验。我也不怀疑生态学家使用NMDS的部分原因是文化和惯性,也许UMAP或t-SNE实际上更好。老实说我不知道​​。

展开自己的距离

[0,1] 不管特征的数量如何,而欧几里德距离的大小反映了特征的数量。

注意事项

一直以来,您都应该记住,由于要调节的旋钮太多,因此您很容易陷入调优的陷阱,直到看到想要看到的东西为止。在探索性分析中很难完全避免这种情况,但是您应该谨慎。


1
+1。这里有很多优点,我喜欢参考较旧的“协调”文献。引起我注意的一件事:“关于MDS的优点在于,它还可以投影特征(列),因此您可以看到哪些特征驱动了降维” –您确定吗?据我了解,那是不对的。至少对于MDS而言,它比对t-SNE更不正确。
变形虫

@amoeba这是我有限的知识所在:-)我所知道的是,用于metaMDS绘制样本和特征的默认绘制方法(请参见例如以下插图:cran.r-project.org/web/packages/vegan/vignettes/ intro-vegan.pdf
马丁·莫德拉克

感谢您的回答和见解。我现在将重点更多地放在UMAP上,并且我认为定义一些相似性度量(例如Jaccard距离)可能是处理混合变量类型的好方法。我没有使用过MDS,但是知道这一点。我将花费一些时间来了解它是否有用。
FChm

1
@MartinModrák我不知道确切的vegan封装在这里做什么,但是MDS / NMDS是一种非线性且非参数的方法(恰好是t-SNE),并且没有“内部”方式将原始特征匹配到MDS尺寸。我可以想象他们正在计算原始特征和MDS尺寸之间的相关性;如果是这样,则可以对任何嵌入(包括t-SNE)进行此操作。知道究竟是什么会很有趣vegan
变形虫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.