SHOGUN
v2.0.0
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
src
shogun
classifier
LPM.h
Go to the documentation of this file.
1
/*
2
* This program is free software; you can redistribute it and/or modify
3
* it under the terms of the GNU General Public License as published by
4
* the Free Software Foundation; either version 3 of the License, or
5
* (at your option) any later version.
6
*
7
* Written (W) 2007-2009 Soeren Sonnenburg
8
* Copyright (C) 2007-2009 Fraunhofer Institute FIRST and Max-Planck-Society
9
*/
10
11
#ifndef _LPM_H___
12
#define _LPM_H___
13
14
#include <
shogun/lib/config.h
>
15
#ifdef USE_CPLEX
16
17
#include <stdio.h>
18
#include <
shogun/lib/common.h
>
19
#include <
shogun/features/Features.h
>
20
#include <
shogun/machine/LinearMachine.h
>
21
22
namespace
shogun
23
{
43
class
CLPM
:
public
CLinearMachine
44
{
45
public
:
46
MACHINE_PROBLEM_TYPE
(
PT_BINARY
);
47
48
CLPM
();
49
virtual
~CLPM
();
50
51
inline
virtual
EMachineType
get_classifier_type
()
52
{
53
return
CT_LPM
;
54
}
55
60
virtual
inline
void
set_features
(
CDotFeatures
* feat)
61
{
62
if
(feat->
get_feature_class
() !=
C_SPARSE
||
63
feat->
get_feature_type
() !=
F_DREAL
)
64
SG_ERROR
(
"LPM requires SPARSE REAL valued features\n"
);
65
66
CLinearMachine::set_features
(feat);
67
}
68
75
inline
void
set_C
(
float64_t
c_neg,
float64_t
c_pos) {
C1
=c_neg;
C2
=c_pos; }
76
77
inline
float64_t
get_C1
() {
return
C1
; }
78
inline
float64_t
get_C2
() {
return
C2
; }
79
80
inline
void
set_bias_enabled
(
bool
enable_bias) {
use_bias
=enable_bias; }
81
inline
bool
get_bias_enabled
() {
return
use_bias
; }
82
83
inline
void
set_epsilon
(
float64_t
eps) {
epsilon
=eps; }
84
inline
float64_t
get_epsilon
() {
return
epsilon
; }
85
87
inline
virtual
const
char
*
get_name
()
const
{
return
"LPM"
; }
88
89
protected
:
98
virtual
bool
train_machine
(
CFeatures
* data=NULL);
99
100
protected
:
101
float64_t
C1
;
102
float64_t
C2
;
103
bool
use_bias
;
104
float64_t
epsilon
;
105
};
106
}
107
#endif //USE_CPLEX
108
#endif //_LPM_H___
SHOGUN
Machine Learning Toolbox - Documentation