哪种机器学习算法用于高维匹配?



比方说,我可以用1000种不同的方式定义一个人,所以我对一个给定的人有1000个特征。

问题:如何运行机器学习算法来确定给定 1,000 个特征的最佳匹配或最接近/最相似的人?

我尝试过Kmeans,但这似乎更多地针对 2 个特征,而不是高维度。

你基本上遵循某种 k 最近邻算法。
由于您的数据具有高维度,因此您应该探索以下内容:

  1. 降维 - 您可能有 1000 个特征,但其中一些可能比其他特征更好。因此,应用某种降维是明智之举。最简单的第一点是主成分分析 (PCA(,它保留了 ~90% 的数据(即使用足够的特征向量,将 90% o 的能量与其匹配的特征值相匹配(。我假设你会看到显着减少。
  2. 加速 K 最近邻 - 有许多方法可以加速高维情况下 K-NN 的搜索。K D 树算法将是一个很好的开始。

距离指标

您可以尝试直接应用距离度量(例如余弦相似性(。

监督

如果您知道这些人有多相似,则可以尝试以下方法:

神经网络,方法 #1

  • 输入:2x 人特征向量(因此 2000 个特征(
  • 输出:1个浮点数(两个人的相似性(
  • 可扩展性:与人数成线性关系

请参阅neuralnetworksanddeeplearning.com 以获取很好的介绍,请参阅 Keras 以获取简单的框架

神经网络,方法 #2

一种更高级的方法称为度量学习。

  • 输入:人特征向量(因此有 2000 个特征(
  • 输出:k 浮点数(您选择 k,但它应该低于 1000(

对于训练,您必须首先给网络一个人,存储结果,然后是第二个人,存储结果,应用您选择的两个结果的距离度量(例如欧几里得距离(,然后反向传播错误。

最新更新