/usr/include/shogun/transfer/multitask/MultitaskLogisticRegression.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 | /*
* 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 MULTITASKLOGISTICREGRESSION_H_
#define MULTITASKLOGISTICREGRESSION_H_
#include <shogun/lib/config.h>
#include <shogun/transfer/multitask/MultitaskLinearMachine.h>
#include <shogun/transfer/multitask/TaskRelation.h>
#include <shogun/transfer/multitask/TaskGroup.h>
#include <shogun/transfer/multitask/TaskTree.h>
#include <shogun/transfer/multitask/Task.h>
#include <vector>
#include <set>
using namespace std;
namespace shogun
{
/** @brief class Multitask Logistic Regression used
* to solve classification problems with a few tasks
* related via group or tree. Based on L1/Lq regression
* for groups and L1/L2 for trees.
*
* The underlying solver is based on the SLEP library.
*
*/
class CMultitaskLogisticRegression : public CMultitaskLinearMachine
{
public:
/** problem type */
MACHINE_PROBLEM_TYPE(PT_BINARY)
/** default constructor */
CMultitaskLogisticRegression();
/** constructor
*
* @param z regularization coefficient
* @param training_data training features
* @param training_labels training labels
* @param task_relation task relation
*/
CMultitaskLogisticRegression(
float64_t z, CDotFeatures* training_data,
CBinaryLabels* training_labels, CTaskRelation* task_relation);
/** destructor */
virtual ~CMultitaskLogisticRegression();
/** get name */
virtual const char* get_name() const
{
return "MultitaskLogisticRegression";
}
/** 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);
/** applies to one vector */
virtual float64_t apply_one(int32_t i);
protected:
/** train machine */
virtual bool train_machine(CFeatures* data=NULL);
/** train locked implementation */
virtual bool train_locked_implementation(SGVector<index_t>* tasks);
private:
/** register parameters */
void register_parameters();
/** initialize parameters */
void initialize_parameters();
protected:
/** 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
|