使用Weka Java API进行协同过滤的最有效距离函数

我正在使用Weka的机器学习库JAVA API构建一个协同过滤系统…

我基本上使用StringToWordVector过滤器将字符串对象转换为其单词出现的分解形式…

现在我使用kNN算法来查找目标对象的最近邻…

我的问题是,我应该使用什么距离函数来计算经过StringToWordVector过滤器处理的两个对象之间的距离…在这种情况下,哪个最有效?

Weka中可用的选项有:

AbstractStringDistanceFunction, ChebyshevDistance, EditDistance, EuclideanDistance, ManhattanDistance, NormalizableDistance

回答:

是的,相似性度量确实很有趣。简短的回答是,你应该尝试所有这些,并根据均方根误差(RMSE)、平均绝对误差(MAE)、返回集的广度等进行优化。

编辑距离与其他度量之间似乎有所区别,因为我期望编辑距离算法直接作用于字符串本身。

你的StringToWordVector是如何工作的?首先回答这个问题,然后用这个答案来激发思考,比如:在我的应用中,两个单词之间的相似性意味着什么(例如,语义意义是否比单词长度更重要)。

只要你在使用StringVectorizer,似乎你可以自由考虑更多主流的相似性度量,如对数似然度(LogLikelihood)、皮尔逊相关系数(Pearson)和余弦相似度(Cosine)。我认为这是值得做的,因为据我所知,你列出的相似性度量在文献中并没有被广泛使用或认真研究过。

愿相似性与你同在!

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注