This file is indexed.

/usr/include/shogun/ensemble/WeightedMajorityVote.h is in libshogun-dev 3.2.0-7.5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * Written (W) 2013 Viktor Gal
 * Copyright (C) 2013 Viktor Gal
 */

#ifndef _WEIGHTED_MAJORITY_VOTE_H_
#define _WEIGHTED_MAJORITY_VOTE_H_

#include <shogun/ensemble/CombinationRule.h>
#include <shogun/lib/SGVector.h>

namespace shogun
{
	/**
	 * @brief Weighted Majority Vote implementation.
	 *
	 * For a given feature vector the combined value is going to be:
	 * \f[
	 *	 label = max_{j=0..C} \sum_{i=0}^{N} w_i d_{i,j}
	 * \f]
	 * where \f$N\f$ is the number of Machines in the ensemble
	 * \f$w_i\f$ is the weight of ith Machine
	 * \f$d_{i,j}\f$ decision of the ith Machine for jth class.
	 * \f$C\f$ is the number of classes
	 *
	 */
	class CWeightedMajorityVote : public CCombinationRule
	{
		public:
			/**
			 * Default ctor
			 */
			CWeightedMajorityVote();

			/**
			 * CWeightedMajorityVote constructor
			 *
			 * @param weights a vector of weights, where the nth element is the
			 * weight of the nth Machine in ensemble.
			 */
			CWeightedMajorityVote(SGVector<float64_t>& weights);

			virtual ~CWeightedMajorityVote();

			/**
			 * Combines a matrix of an ensemble of Machines output, where each
			 * column is a given Machine's classification/regression output
			 * for the input Features.
			 *
			 * @param ensemble_result SGMatrix
			 * @return a vector where the nth element is the combined value of the Machines for the nth feature vector
			 */
			virtual SGVector<float64_t> combine(const SGMatrix<float64_t>& ensemble_result) const;

			/**
			 * Combines a vector of Machine ouputs for a given feature vector.
			 * The nth element of the vector is the nth Machine's output in the ensemble.
			 *
			 * @param ensemble_result SGVector<float64_t> with the Machine's output
			 * @return the combined value
			 */
			virtual float64_t combine(const SGVector<float64_t>& ensemble_result) const;

			/**
			 * Set weight vector for the labels
			 *
			 * @param w weights
			 */
			void set_weights(SGVector<float64_t>& w);

			/**
			 * Get weight vector
			 *
			 * @return weight vector
			 */
			SGVector<float64_t> get_weights() const;

			/** name **/
			virtual const char* get_name() const { return "WeightedMajorityVote"; }

		protected:
			/**
			 * Weigthed majority voting implementation
			 *
			 * @param ensemble_result a vector of outputs in the ensemble for a given feature vector.
			 * @return the combined value
			 */
			virtual float64_t weighted_combine(const SGVector<float64_t>& ensemble_result) const;

			/** the weight vector */
			mutable SGVector<float64_t> m_weights;

		private:
			void init();
			void register_parameters();
	};
}

#endif /* _WEIGHTED_MAJORITY_VOTE_H_ */