diff options
Diffstat (limited to 'ml/dlib/dlib/svm/sparse_kernel.h')
-rw-r--r-- | ml/dlib/dlib/svm/sparse_kernel.h | 384 |
1 files changed, 0 insertions, 384 deletions
diff --git a/ml/dlib/dlib/svm/sparse_kernel.h b/ml/dlib/dlib/svm/sparse_kernel.h deleted file mode 100644 index f571135ec..000000000 --- a/ml/dlib/dlib/svm/sparse_kernel.h +++ /dev/null @@ -1,384 +0,0 @@ -// Copyright (C) 2009 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#ifndef DLIB_SVm_SPARSE_KERNEL -#define DLIB_SVm_SPARSE_KERNEL - -#include "sparse_kernel_abstract.h" -#include <cmath> -#include <limits> -#include "../algs.h" -#include "../serialize.h" -#include "sparse_vector.h" - - -namespace dlib -{ - -// ---------------------------------------------------------------------------------------- - - template < - typename T - > - struct sparse_radial_basis_kernel - { - typedef typename T::value_type::second_type scalar_type; - typedef T sample_type; - typedef default_memory_manager mem_manager_type; - - sparse_radial_basis_kernel(const scalar_type g) : gamma(g) {} - sparse_radial_basis_kernel() : gamma(0.1) {} - sparse_radial_basis_kernel( - const sparse_radial_basis_kernel& k - ) : gamma(k.gamma) {} - - - const scalar_type gamma; - - scalar_type operator() ( - const sample_type& a, - const sample_type& b - ) const - { - const scalar_type d = distance_squared(a,b); - return std::exp(-gamma*d); - } - - sparse_radial_basis_kernel& operator= ( - const sparse_radial_basis_kernel& k - ) - { - const_cast<scalar_type&>(gamma) = k.gamma; - return *this; - } - - bool operator== ( - const sparse_radial_basis_kernel& k - ) const - { - return gamma == k.gamma; - } - }; - - template < - typename T - > - void serialize ( - const sparse_radial_basis_kernel<T>& item, - std::ostream& out - ) - { - try - { - serialize(item.gamma, out); - } - catch (serialization_error& e) - { - throw serialization_error(e.info + "\n while serializing object of type sparse_radial_basis_kernel"); - } - } - - template < - typename T - > - void deserialize ( - sparse_radial_basis_kernel<T>& item, - std::istream& in - ) - { - typedef typename T::value_type::second_type scalar_type; - try - { - deserialize(const_cast<scalar_type&>(item.gamma), in); - } - catch (serialization_error& e) - { - throw serialization_error(e.info + "\n while deserializing object of type sparse_radial_basis_kernel"); - } - } - -// ---------------------------------------------------------------------------------------- - - template < - typename T - > - struct sparse_polynomial_kernel - { - typedef typename T::value_type::second_type scalar_type; - typedef T sample_type; - typedef default_memory_manager mem_manager_type; - - sparse_polynomial_kernel(const scalar_type g, const scalar_type c, const scalar_type d) : gamma(g), coef(c), degree(d) {} - sparse_polynomial_kernel() : gamma(1), coef(0), degree(1) {} - sparse_polynomial_kernel( - const sparse_polynomial_kernel& k - ) : gamma(k.gamma), coef(k.coef), degree(k.degree) {} - - typedef T type; - const scalar_type gamma; - const scalar_type coef; - const scalar_type degree; - - scalar_type operator() ( - const sample_type& a, - const sample_type& b - ) const - { - return std::pow(gamma*(dot(a,b)) + coef, degree); - } - - sparse_polynomial_kernel& operator= ( - const sparse_polynomial_kernel& k - ) - { - const_cast<scalar_type&>(gamma) = k.gamma; - const_cast<scalar_type&>(coef) = k.coef; - const_cast<scalar_type&>(degree) = k.degree; - return *this; - } - - bool operator== ( - const sparse_polynomial_kernel& k - ) const - { - return (gamma == k.gamma) && (coef == k.coef) && (degree == k.degree); - } - }; - - template < - typename T - > - void serialize ( - const sparse_polynomial_kernel<T>& item, - std::ostream& out - ) - { - try - { - serialize(item.gamma, out); - serialize(item.coef, out); - serialize(item.degree, out); - } - catch (serialization_error& e) - { - throw serialization_error(e.info + "\n while serializing object of type sparse_polynomial_kernel"); - } - } - - template < - typename T - > - void deserialize ( - sparse_polynomial_kernel<T>& item, - std::istream& in - ) - { - typedef typename T::value_type::second_type scalar_type; - try - { - deserialize(const_cast<scalar_type&>(item.gamma), in); - deserialize(const_cast<scalar_type&>(item.coef), in); - deserialize(const_cast<scalar_type&>(item.degree), in); - } - catch (serialization_error& e) - { - throw serialization_error(e.info + "\n while deserializing object of type sparse_polynomial_kernel"); - } - } - -// ---------------------------------------------------------------------------------------- - - template < - typename T - > - struct sparse_sigmoid_kernel - { - typedef typename T::value_type::second_type scalar_type; - typedef T sample_type; - typedef default_memory_manager mem_manager_type; - - sparse_sigmoid_kernel(const scalar_type g, const scalar_type c) : gamma(g), coef(c) {} - sparse_sigmoid_kernel() : gamma(0.1), coef(-1.0) {} - sparse_sigmoid_kernel( - const sparse_sigmoid_kernel& k - ) : gamma(k.gamma), coef(k.coef) {} - - typedef T type; - const scalar_type gamma; - const scalar_type coef; - - scalar_type operator() ( - const sample_type& a, - const sample_type& b - ) const - { - return std::tanh(gamma*(dot(a,b)) + coef); - } - - sparse_sigmoid_kernel& operator= ( - const sparse_sigmoid_kernel& k - ) - { - const_cast<scalar_type&>(gamma) = k.gamma; - const_cast<scalar_type&>(coef) = k.coef; - return *this; - } - - bool operator== ( - const sparse_sigmoid_kernel& k - ) const - { - return (gamma == k.gamma) && (coef == k.coef); - } - }; - - template < - typename T - > - void serialize ( - const sparse_sigmoid_kernel<T>& item, - std::ostream& out - ) - { - try - { - serialize(item.gamma, out); - serialize(item.coef, out); - } - catch (serialization_error& e) - { - throw serialization_error(e.info + "\n while serializing object of type sparse_sigmoid_kernel"); - } - } - - template < - typename T - > - void deserialize ( - sparse_sigmoid_kernel<T>& item, - std::istream& in - ) - { - typedef typename T::value_type::second_type scalar_type; - try - { - deserialize(const_cast<scalar_type&>(item.gamma), in); - deserialize(const_cast<scalar_type&>(item.coef), in); - } - catch (serialization_error& e) - { - throw serialization_error(e.info + "\n while deserializing object of type sparse_sigmoid_kernel"); - } - } - -// ---------------------------------------------------------------------------------------- - - template <typename T> - struct sparse_linear_kernel - { - typedef typename T::value_type::second_type scalar_type; - typedef T sample_type; - typedef default_memory_manager mem_manager_type; - - scalar_type operator() ( - const sample_type& a, - const sample_type& b - ) const - { - return dot(a,b); - } - - bool operator== ( - const sparse_linear_kernel& - ) const - { - return true; - } - }; - - template < - typename T - > - void serialize ( - const sparse_linear_kernel<T>& , - std::ostream& - ){} - - template < - typename T - > - void deserialize ( - sparse_linear_kernel<T>& , - std::istream& - ){} - -// ---------------------------------------------------------------------------------------- - - template <typename T> - struct sparse_histogram_intersection_kernel - { - typedef typename T::value_type::second_type scalar_type; - typedef T sample_type; - typedef default_memory_manager mem_manager_type; - - scalar_type operator() ( - const sample_type& a, - const sample_type& b - ) const - { - typename sample_type::const_iterator ai = a.begin(); - typename sample_type::const_iterator bi = b.begin(); - - scalar_type sum = 0; - while (ai != a.end() && bi != b.end()) - { - if (ai->first == bi->first) - { - sum += std::min(ai->second , bi->second); - ++ai; - ++bi; - } - else if (ai->first < bi->first) - { - ++ai; - } - else - { - ++bi; - } - } - - return sum; - } - - bool operator== ( - const sparse_histogram_intersection_kernel& - ) const - { - return true; - } - }; - - template < - typename T - > - void serialize ( - const sparse_histogram_intersection_kernel<T>& , - std::ostream& - ){} - - template < - typename T - > - void deserialize ( - sparse_histogram_intersection_kernel<T>& , - std::istream& - ){} - -// ---------------------------------------------------------------------------------------- - -} - -#endif // DLIB_SVm_SPARSE_KERNEL - - - |