⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svm_08.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
字号:
// file: $isip/class/stat/SupportVectorModel/svm_08.cc// version: $Id: svm_08.cc,v 1.1 2002/10/26 19:45:56 jelinek Exp $//// isip include files//#include "SupportVectorModel.h"// method: getLogLikelihood//// arguments://  const VectorFloat& input: (input) test vector//// return: float value giving the log-likelihood of the data given the model//// this method gives the log likelihood of the test vector.// log-likelihood will be computed as base 10 logarithm of distance.//float SupportVectorModel::getLogLikelihood(const VectorFloat& input_a) {  // check for initialization  //  if ((!is_valid_d) && (!init())) {    Error::handle(name(), L"getLogLikelihood", Error::ARG,		  __FILE__, __LINE__);  }  double distance = getDistance(input_a);  double prob = 0;  sigmoid_d.compute(prob, distance);  return log(prob);}// method: getDistance//// arguments://  const VectorFloat& input: (input) test vector//// return: double value of distance from the test vector, computed// according to:////                     N//                   ----                      // distance = bias + \    [ alpha(i) * kernel (x, sv[i]) ]//                   /___                    i//                     i////  'sv' is the support vector//  'N' is the number of support vectors//  'alpha(i)' is the weight for i-th support vector//  'bias' is the distance of hyperplane from the origin//double SupportVectorModel::getDistance(const VectorFloat& input_a) {  double distance = 0;  float kernel_function = 0;    for (long i = 0; i < support_vectors_d.length(); i++) {    // compute dot product using the kernel    //    if (algorithm_d == MULTIPLE_KERNEL) {      kernels_d(i).compute(kernel_function, input_a, support_vectors_d(i));    }    else if (algorithm_d == SINGLE_KERNEL) {      kernels_d(0).compute(kernel_function, input_a, support_vectors_d(i));    }    else {      return Error::handle(name(), L"getDistance",			   Error::NOT_IMPLEM, __FILE__, __LINE__);    }        distance += alphas_d(i) * (double)kernel_function;  }    distance -= bias_d;    // exit gracefully  //  return distance;}// method: accumulate//// arguments://  VectorFloat& data: (input) feature vector//// return: boolean value indicating status//// this method accumulates the model parameters using the input features//boolean SupportVectorModel::accumulate(VectorFloat& data_a) {  return Error::handle(name(), L"accumulate", Error::NOT_IMPLEM,		       __FILE__, __LINE__);}// method: initialize//// arguments://  VectorFloat& param: (input) initialization parameters//// return: boolean value indicating status//// this method initializes the model parameters using the accumulated features//boolean SupportVectorModel::initialize(VectorFloat& param_a) {  return Error::handle(name(), L"initialize", Error::NOT_IMPLEM,		       __FILE__, __LINE__);}// method: update//// arguments://  VectorFloat& varfloor: (input) variance floor//  long min_count: (input) minimum model count//// return: a boolean value indicating status//// this method updates the statistical model parameters using the// accumulated statistics during training//boolean SupportVectorModel::update(VectorFloat& varfloor_a, long min_count_a) {  return Error::handle(name(), L"update", Error::NOT_IMPLEM,		       __FILE__, __LINE__);}// method: accumulate//// arguments://  VectorDouble& param: (input) training parameters//  VectorFloat& data: (input) observations//  boolean precomp: (input) flag that indicate if data is precomputed//// return: a boolean value indicating status//// this method accumulates the statistics for the model which are// needed to update the model parameters during training//boolean SupportVectorModel::accumulate(VectorDouble& param_a,				  VectorFloat& data_a,				  boolean precomp_a) {  return Error::handle(name(), L"accumulate", Error::NOT_IMPLEM,		       __FILE__, __LINE__);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -