码迷,mamicode.com
首页 > 其他好文 > 详细

两个向量之间的欧式距离

时间:2018-08-21 20:16:42      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:span   push   向量   size   效率   dea   double   \n   template   

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

从而提高计算效率。

两个向量之间的欧式距离

标签:span   push   向量   size   效率   dea   double   \n   template   

原文地址:https://www.cnblogs.com/donggongdechen/p/9513575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!