对形状不一致的数据执行 UMAP 降维 - python
Performing UMAP dimension reduction on inconsistently shaped data - python
第一个问题,我会尽量说清楚。
如果我可以为 UMAP 提供距离函数,该函数还可以输出梯度或其他一些相关信息,我可以将 UMAP 应用于非传统外观数据吗? (即,具有不一致维度的点的数据集,非均匀大小矩阵的数据点等)我找到的最接近我的问题的东西是在此处的文档中(https://umap-learn.readthedocs.io/en/latest/embedding_space.html), 但这似乎是一种相反的过程,据我所知仍然假设你是从统一维度的基于元组的数据开始的。
我知道解决这个问题的一种方法是提前计算完整的成对距离矩阵并将其提供给 UMAP,但根据我对 UMAP 编码方式的理解,它只执行一个子集所有可能的距离计算,因此对于相同数量的数据比我采用完整的预计算路线要快得多。
我在 python3 工作,但如果在其他一些允许这样做的环境中实施 UMAP 降维,我愿意在我的工作流程中绕道而行以获得更大的灵活性传入的数据类型。
谢谢。
从算法上讲这是很有可能的,但实际上大多数实现不支持固定维度向量以外的任何东西。如果计算所有对的距离不易处理,另一种选择是尝试找到一种方法来对数据进行特征化或矢量化,以允许轻松计算距离。当然,这并不总是可能的。最后一个选择是自己实现,但这需要处理最近邻搜索,这本身可能是一个不平凡的编码项目。
第一个问题,我会尽量说清楚。
如果我可以为 UMAP 提供距离函数,该函数还可以输出梯度或其他一些相关信息,我可以将 UMAP 应用于非传统外观数据吗? (即,具有不一致维度的点的数据集,非均匀大小矩阵的数据点等)我找到的最接近我的问题的东西是在此处的文档中(https://umap-learn.readthedocs.io/en/latest/embedding_space.html), 但这似乎是一种相反的过程,据我所知仍然假设你是从统一维度的基于元组的数据开始的。
我知道解决这个问题的一种方法是提前计算完整的成对距离矩阵并将其提供给 UMAP,但根据我对 UMAP 编码方式的理解,它只执行一个子集所有可能的距离计算,因此对于相同数量的数据比我采用完整的预计算路线要快得多。
我在 python3 工作,但如果在其他一些允许这样做的环境中实施 UMAP 降维,我愿意在我的工作流程中绕道而行以获得更大的灵活性传入的数据类型。
谢谢。
从算法上讲这是很有可能的,但实际上大多数实现不支持固定维度向量以外的任何东西。如果计算所有对的距离不易处理,另一种选择是尝试找到一种方法来对数据进行特征化或矢量化,以允许轻松计算距离。当然,这并不总是可能的。最后一个选择是自己实现,但这需要处理最近邻搜索,这本身可能是一个不平凡的编码项目。