两个特征向量相似度c++
时间: 2024-01-28 20:03:56 浏览: 59
在C++中,可以使用以下代码计算两个特征向量的相似度:
```c++
#include <iostream>
#include <vector>
#include <cmath>
double cosine_similarity(const std::vector<double>& v1, const std::vector<double>& v2) {
double dot_product = 0.0;
double norm1 = 0.0;
double norm2 = 0.0;
// 计算点积和向量范数
for (size_t i = 0; i < v1.size(); ++i) {
dot_product += v1[i] * v2[i];
norm1 += std::pow(v1[i], 2);
norm2 += std::pow(v2[i], 2);
}
// 计算余弦相似度
return dot_product / (std::sqrt(norm1) * std::sqrt(norm2));
}
int main() {
std::vector<double> v1 = {1.0, 2.0, 3.0};
std::vector<double> v2 = {2.0, 4.0, 6.0};
double similarity = cosine_similarity(v1, v2);
std::cout << "The cosine similarity between v1 and v2 is " << similarity << std::endl;
return 0;
}
```
在上面的代码中,我们计算了两个特征向量的点积和向量范数,并使用这些值计算余弦相似度。在实际应用中,可能需要使用更高效的算法来计算特征向量之间的相似度。
阅读全文