降维 - Pyspark

Dimensionality reduction - Pyspark

我的 objective 是寻找以特定字体书写的各种双字节字符之间的视觉相似性。例如,

我想确定伊看起来更像达还是更像市。此练习必须完成 13,108 个字符。

为了解决这个问题,我们使用 python 中的绘图库将所有这些字符转换为灰度图像。然后我们将所有的字符通过VGG-16(CNN Layer)得到一个 为他们设置的功能。 VGG-16(CNN 层)的特征集输出有 512x7x7 (25088) 个元素。我们将所有这些整理成一个文件。现在我们有大约 13,108 行和 25,088 列,我的目标是 运行 对它们进行聚类以找到所有字符之间的光学相似性。为了做到这一点,我必须减少变量(列)的数量。

执行相同操作的最佳方法应该是什么?我应该为最终模型保留多少变量(列)?

我建议你使用自动编码器神经网络,其目标是在输出中重构输入。该网络具有用于降低维数的编码层、瓶颈层和用于在给定瓶颈层的情况下重建输入的解码层。请参阅下面的自动编码器神经网络图像:

您可以使用瓶颈层作为新变量(列),然后对其进行聚类以查找所有字符之间的光学相似性。这种方法的一大优点是,与 PCA 等其他降维方法不同,自动编码器执行非线性运算,从而获得更好的结果。