两个向量之间的欧式距离

Posted 东宫得臣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个向量之间的欧式距离相关的知识,希望对你有一定的参考价值。

template <class DataType>
double EuclideanDistance(std::vector<DataType> &inst1, std::vector<DataType> &inst2) {
  if(inst1.size() != inst2.size()) {
    std::cout<<"the size of the vectors is not the same\n";
    return -1;
  }
  double distance=0.0;
  std::vector<double> temp;
  for(size_t i=0; i<inst1.size(); ++i) {
    temp.push_back(pow(inst1.at(i)-inst2.at(i), 2.0));
  }
  distance=accumulate(temp.begin(), temp.end(), 0.0);
  distance=sqrt(distance);

  return distance;
}

kNN具体的实现可以有很多的优化方式,如可以在计算前先排除掉与预测集数据距离较大的一些噪音点,

从而提高计算效率。

以上是关于两个向量之间的欧式距离的主要内容,如果未能解决你的问题,请参考以下文章

算法:点与点之间欧式距离最小

机器学习距离公式分析

Numpy Broadcast 执行欧式距离矢量化

python:numpy,详解:np.linalg.norm()求范数,计算两向量对应点欧式距离。

统计学基础知识-欧式距离与其他

Python (3) 如何计算欧式距离