余弦距离的公式?

1) 我正在使用以下方法来测量两个向量(假设为A和B)之间的余弦距离。

假设我们有两个向量,例如向量A和向量B,

A与B之间的余弦距离 = (dot(A, B) / (Magnitude (A) * Magnitude (B)))

这个公式正确吗?如果不正确,请建议正确的公式?

2) K-NN在准确性上是否总是优于Rocchio,还是有某些情况下Rocchio的表现会优于K-NN?K-NN看起来像是Rocchio的增强版,理论概念表明K-NN的表现会远优于Rocchio,但在实际应用中我发现情况相反,Rocchio的表现远优于K-NN?


回答:

(1) 余弦距离是一种相似性度量方法。其他的度量方法可能包括欧几里得距离或加权欧几里得距离。你的实现是正确的。

(2) KNN与Rocchio的主要区别在于前者没有训练过程,而后者在训练过程中会生成原型向量。在测试过程中,KNN使用所有训练实例,而Rocchio仅使用原型向量(通常每个类别一个向量)。因此,Rocchio在训练和测试过程中效率更高。然而,它缺乏足够的理论依据来证明Rocchio的稳定性和鲁棒性。并且已显示,如果类别不是线性可分的,Rocchio的表现不佳。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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