Machine learning 如何将一对向量提供给分类器以分类相似/不相似
我试图将文档向量对(Doc2Vec,每个文档300个特征)分类为相似/不相似。我尝试了距离测量(余弦等)和其他功能,如文档大小等,但没有达到完美的效果,特别是因为我怀疑,只有一些功能对我的问题有意义 将两个向量输入分类器(逻辑回归、SVM等)的简单但有效的方法是什么Machine learning 如何将一对向量提供给分类器以分类相似/不相似,machine-learning,svm,logistic-regression,similarity,doc2vec,Machine Learning,Svm,Logistic Regression,Similarity,Doc2vec,我试图将文档向量对(Doc2Vec,每个文档300个特征)分类为相似/不相似。我尝试了距离测量(余弦等)和其他功能,如文档大小等,但没有达到完美的效果,特别是因为我怀疑,只有一些功能对我的问题有意义 将两个向量输入分类器(逻辑回归、SVM等)的简单但有效的方法是什么 我已经测试了一个向量与另一个向量的减法,并将绝对结果用作特征向量:abs(vec1-vec2),但这比距离测量更糟糕 我还尝试了两个向量的串联,结果也更糟。我怀疑维数加倍会增加训练样本的需求,至少对于某些分类器是这样的 是否有最
- 我已经测试了一个向量与另一个向量的减法,并将绝对结果用作特征向量:
,但这比距离测量更糟糕abs(vec1-vec2)
- 我还尝试了两个向量的串联,结果也更糟。我怀疑维数加倍会增加训练样本的需求,至少对于某些分类器是这样的
是否有最先进的方法来分类特征向量之间的相似性或关系?或者,如果有一致的方法,哪种方法更适合哪个问题/分类器?通常,您的目标是对文档进行矢量化(例如通过
Doc2Vec
),以给出向量,其中向量之间的相似性是有用的连续相似性度量。(通常这是余弦相似性,但在某些情况下,欧几里德距离也值得尝试。)
如果来自Doc2Vec
阶段的向量还没有表现出这一点,那么首先要做的就是调试和优化该过程。这可能涉及:
- 仔细检查所有内容(包括进程的记录输出)是否存在错误
- 调整文档预处理,以确保保留显著的文档特征并消除噪声
- 调整
元参数和模式,以确保生成的向量对最终目标中重要的相似性类型敏感Doc2Vec
Doc2Vec
choices/code到目前为止,以及最终目标的更多细节,就很难进一步说明如何改进这一步骤
您如何判断两个文档是否“足够相似”?您需要多少这样的评估数据来帮助以可重复、定量的方式对不同的Doc2Vec
模型进行评分。(能够进行这种自动评分可以让你测试更多的Doc2Vec
permutations。)有没有简单的doc向量余弦相似性工作正常或不正常的doc对示例
到目前为止,我在您选择的单词中看到两个危险信号:
- “没有达到完美的结果”——获得“完美”的结果是一个不切实际的目标。考虑到项目的资源和复杂性,您希望找到接近最新技术的产品
- “每个文档有300个功能”-
实际上找不到独立的“300个功能”。它是一个单一的300维“密集”“嵌入”向量。每个方向——不仅仅是300个轴——都可能有意义。因此,即使某些“方向”对您的需求更为重要,它们也不可能与精确的尺寸轴完全相关李>Doc2Vec
(v1-v2)
差异或(v1 | | v2)
串联的分类器可能有助于细化“足够相似或不够相似”的决策,但您需要大量的训练数据,可能还需要非常复杂的分类器