/usr/include/shogun/classifier/FeatureBlockLogisticRegression.h is in libshogun-dev 3.2.0-7.3build4.
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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | /*
* 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.
*
* Copyright (C) 2012 Sergey Lisitsyn
*/
#ifndef FEATUREBLOCKLOGISTICREGRESSION_H_
#define FEATUREBLOCKLOGISTICREGRESSION_H_
#include <shogun/lib/config.h>
#include <shogun/lib/IndexBlockRelation.h>
#include <shogun/machine/LinearMachine.h>
namespace shogun
{
/** @brief class FeatureBlockLogisticRegression, a linear
* binary logistic loss classifier for problems with complex feature relations.
* Currently two feature relations are supported - feature group
* (done via CIndexBlockGroup) and feature tree (done via CIndexTree).
* Handling of feature relations is done via L1/Lq (for groups) and L1/L2
* (for trees) regularization.
*
* The underlying solver is based on the SLEP library.
*
* @see CIndexBlock
* @see CIndexBlockGroup
* @see CIndexBlockTree
*/
class CFeatureBlockLogisticRegression : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY)
/** default constructor */
CFeatureBlockLogisticRegression();
/** constructor
*
* @param z regularization coefficient
* @param training_data training features
* @param training_labels training labels
* @param task_relation task relation
*/
CFeatureBlockLogisticRegression(
float64_t z, CDotFeatures* training_data,
CBinaryLabels* training_labels, CIndexBlockRelation* task_relation);
/** destructor */
virtual ~CFeatureBlockLogisticRegression();
/** get name */
virtual const char* get_name() const
{
return "FeatureBlockLogisticRegression";
}
/** getter for feature relation
* @return feature relation
*/
CIndexBlockRelation* get_feature_relation() const;
/** setter for feature relation
* @param feature_relation feature relation
*/
void set_feature_relation(CIndexBlockRelation* feature_relation);
virtual float64_t apply_one(int32_t vec_idx);
/** get max iter */
int32_t get_max_iter() const;
/** get q */
float64_t get_q() const;
/** get regularization */
int32_t get_regularization() const;
/** get termination */
int32_t get_termination() const;
/** get tolerance */
float64_t get_tolerance() const;
/** get z */
float64_t get_z() const;
/** set max iter */
void set_max_iter(int32_t max_iter);
/** set q */
void set_q(float64_t q);
/** set regularization */
void set_regularization(int32_t regularization);
/** set termination */
void set_termination(int32_t termination);
/** set tolerance */
void set_tolerance(float64_t tolerance);
/** set z */
void set_z(float64_t z);
protected:
virtual SGVector<float64_t> apply_get_outputs(CFeatures* data);
/** train machine */
virtual bool train_machine(CFeatures* data=NULL);
private:
/** register parameters */
void register_parameters();
/** Initializes Parameters to std values */
void init();
protected:
/** feature tree */
CIndexBlockRelation* m_feature_relation;
/** regularization type */
int32_t m_regularization;
/** termination criteria */
int32_t m_termination;
/** max iteration */
int32_t m_max_iter;
/** tolerance */
float64_t m_tolerance;
/** q of L1/Lq */
float64_t m_q;
/** regularization coefficient */
float64_t m_z;
};
}
#endif
|