SHOGUN  v3.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LinearMachine.cpp
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) 1999-2009 Soeren Sonnenburg
8  * Copyright (C) 1999-2009 Fraunhofer Institute FIRST and Max-Planck-Society
9  */
10 
13 #include <shogun/base/Parameter.h>
14 
15 using namespace shogun;
16 
18 : CMachine(), bias(0), features(NULL)
19 {
20  init();
21 }
22 
24  bias(0), features(NULL)
25 {
26  set_w(machine->get_w().clone());
27  set_bias(machine->get_bias());
28 
29  init();
30 }
31 
32 void CLinearMachine::init()
33 {
34  SG_ADD(&w, "w", "Parameter vector w.", MS_NOT_AVAILABLE);
35  SG_ADD(&bias, "bias", "Bias b.", MS_NOT_AVAILABLE);
36  SG_ADD((CSGObject**) &features, "features", "Feature object.",
38 }
39 
40 
42 {
44 }
45 
47 {
48  return features->dense_dot(vec_idx, w.vector, w.vlen) + bias;
49 }
50 
52 {
53  SGVector<float64_t> outputs = apply_get_outputs(data);
54  return new CRegressionLabels(outputs);
55 }
56 
58 {
59  SGVector<float64_t> outputs = apply_get_outputs(data);
60  return new CBinaryLabels(outputs);
61 }
62 
64 {
65  if (data)
66  {
67  if (!data->has_property(FP_DOT))
68  SG_ERROR("Specified features are not of type CDotFeatures\n")
69 
70  set_features((CDotFeatures*) data);
71  }
72 
73  if (!features)
74  return SGVector<float64_t>();
75 
76  int32_t num=features->get_num_vectors();
77  ASSERT(num>0)
79 
80  float64_t* out=SG_MALLOC(float64_t, num);
81  features->dense_dot_range(out, 0, num, NULL, w.vector, w.vlen, bias);
82  return SGVector<float64_t>(out,num);
83 }
84 
86 {
87  return w;
88 }
89 
91 {
92  w=src_w;
93 }
94 
96 {
97  bias=b;
98 }
99 
101 {
102  return bias;
103 }
104 
106 {
107  SG_REF(feat);
109  features=feat;
110 }
111 
113 {
114  SG_REF(features);
115  return features;
116 }
117 
119 {
120 }
121 

SHOGUN Machine Learning Toolbox - Documentation