zoukankan      html  css  js  c++  java
  • 两个向量之间的欧式距离及radial-basis-functions(RBF)

    template <class DataType1, class DataType2>
    double EuclideanDistance(std::vector<DataType1> &inst1, std::vector<DataType2> &inst2) {
      if(inst1.size() != inst2.size()) {
        std::cout<<"the size of the vectors is not the same ";
        return -1;
      }
      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));
      }
      double distance=accumulate(temp.begin(), temp.end(), 0.0);
      distance=sqrt(distance);

      return distance;
    }

    The radial-basis-functions(RBF) technique consists of choosing a function F that has the form

      F(x)=Σwiφ(||x-xi||)

    where {φ(||x-xi||)|i=1,2,...,N} is a set of N arbitrary (generally nonlinear) functions, known as 

    radial-basis functions, and ||•|| denotes a norm that is usually Euclidean.

    Much of the theory developed on RBF networks builds on the Gaussian function, an important member

    of the class of  radial-basis functions. The Gaussian function may also be viewed as a kernel--hence the 

    designation of the two-stage procedure based on the Gaussian function as a kernel method.

  • 相关阅读:
    redis(lettuce)
    Dubbo与SSM整合(认证授权)步骤
    maven常用命令
    Dubbo(RPC框架)
    SpringCache
    mybatis(SSM整合)
    java设计模式-命令模式
    java设计模式-原型模式
    java设计模式-职责链模式
    java设计模式-建造者模式
  • 原文地址:https://www.cnblogs.com/donggongdechen/p/9513575.html
Copyright © 2011-2022 走看看