ml4r 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. data/ext/ml4r/{LinearRegression.h → LinearRegression/LinearRegression.h} +25 -19
  2. data/ext/ml4r/LinearRegression/OLSLinearRegression.h +29 -0
  3. data/ext/ml4r/MachineLearning/DecisionTree/CategoryInfo.h +32 -0
  4. data/ext/ml4r/MachineLearning/DecisionTree/DecisionTreeExperiment.h +30 -0
  5. data/ext/ml4r/MachineLearning/DecisionTree/DecisionTreeNode.h +86 -0
  6. data/ext/ml4r/MachineLearning/DecisionTree/FeatureInteraction.h +31 -0
  7. data/ext/ml4r/MachineLearning/DecisionTree/NodeSplitter.h +45 -0
  8. data/ext/ml4r/MachineLearning/DecisionTree/NodeSplitterCategorical.h +17 -0
  9. data/ext/ml4r/MachineLearning/DecisionTree/NodeSplitterContinuous.h +16 -0
  10. data/ext/ml4r/MachineLearning/DecisionTree/SplitDefinition.h +81 -0
  11. data/ext/ml4r/MachineLearning/GBM/BernoulliCalculator.h +29 -0
  12. data/ext/ml4r/MachineLearning/GBM/GBM.h +50 -0
  13. data/ext/ml4r/MachineLearning/GBM/GBMCalculator.h +31 -0
  14. data/ext/ml4r/MachineLearning/GBM/GBMData.h +0 -0
  15. data/ext/ml4r/MachineLearning/GBM/GBMEstimator.h +79 -0
  16. data/ext/ml4r/MachineLearning/GBM/GBMOutput.h +53 -0
  17. data/ext/ml4r/MachineLearning/GBM/GBMParameters.h +50 -0
  18. data/ext/ml4r/MachineLearning/GBM/GBMRunner.h +35 -0
  19. data/ext/ml4r/MachineLearning/GBM/GaussianCalculator.h +29 -0
  20. data/ext/ml4r/MachineLearning/GBM/ZenithGBM.h +27 -0
  21. data/ext/ml4r/MachineLearning/MLData/MLData.h +77 -0
  22. data/ext/ml4r/MachineLearning/MLData/MLDataFields.h +25 -0
  23. data/ext/ml4r/MachineLearning/MLData/MLDataReader.h +37 -0
  24. data/ext/ml4r/MachineLearning/MLData/ZenithMLData.h +13 -0
  25. data/ext/ml4r/MachineLearning/MLData/ZenithMLDataReader.h +20 -0
  26. data/ext/ml4r/MachineLearning/MLEstimator.h +30 -0
  27. data/ext/ml4r/MachineLearning/MLEstimatorFactory.h +25 -0
  28. data/ext/ml4r/MachineLearning/MLExperiment.h +41 -0
  29. data/ext/ml4r/MachineLearning/MLOutput.h +45 -0
  30. data/ext/ml4r/MachineLearning/MLParameters.h +16 -0
  31. data/ext/ml4r/MachineLearning/MLRunner.h +47 -0
  32. data/ext/ml4r/MachineLearning/MLUtils.h +75 -0
  33. data/ext/ml4r/MachineLearning/RandomForest/RandomForestEstimator.h +47 -0
  34. data/ext/ml4r/MachineLearning/RandomForest/RandomForestOutput.h +33 -0
  35. data/ext/ml4r/MachineLearning/RandomForest/RandomForestParameters.h +32 -0
  36. data/ext/ml4r/MachineLearning/RandomForest/RandomForestRunner.h +34 -0
  37. data/ext/ml4r/extconf.rb +16 -3
  38. data/ext/ml4r/{MathUtils.h → utils/MathUtils.h} +0 -0
  39. data/ext/ml4r/{MatrixInversion.h → utils/MatrixInversion.h} +0 -0
  40. data/ext/ml4r/utils/StochasticUtils.h +33 -0
  41. data/ext/ml4r/utils/Utils.h +147 -0
  42. data/ext/ml4r/utils/VlcMessage.h +44 -0
  43. data/lib/ml4r/linear_regression.rb +7 -0
  44. metadata +45 -13
  45. data/ext/ml4r/LinearRegression/ZenithRegression.h +0 -17
  46. data/ext/ml4r/OLSLinearRegression.h +0 -23
  47. data/ext/ml4r/Utils.h +0 -53
  48. data/ext/ml4r/example.h +0 -18
  49. data/ext/ml4r/swig/example.h +0 -13
  50. data/ext/ml4r/swig/example_wrap.c +0 -2093
  51. data/ext/ml4r/utils/RubyUtils.h +0 -174
@@ -1,174 +0,0 @@
1
- #ifndef RubyUtils_h__
2
- #define RubyUtils_h__
3
-
4
- #include <string>
5
- #include <utility>
6
- using std::pair;
7
- using std::string;
8
-
9
- namespace RubyUtils
10
- {
11
- //template<class T> inline VALUE toValue(const T& v);
12
- //template<class T> inline VALUE toValue(const vector<T>& v);
13
- // template<class T, class U> inline VALUE toValue(const vector<pair<T,U>>& v);
14
- //template<class T, class U, class V> inline VALUE toValue(const map<pair<T,U>,V>& v);
15
- //template<class T, class U> inline VALUE toValue(const map<T,U>& v);
16
- //template<class T, class U> inline VALUE toValue(const pair<T,U>& v);
17
- inline VALUE toValue(const char* v) { return otRuby->ToNum(v); }
18
-
19
- //template<class T> inline T fromValue(VALUE v);
20
- //template<class T> inline void fromValue(VALUE v, T& t);
21
- //template<class T, class U> inline void fromValue(VALUE v, pair<T,U>& t);
22
- //template<class T> inline void fromValue(VALUE v, vector<T>& t);
23
- };
24
-
25
- template<> inline VALUE RubyUtils::toValue(const int& v)
26
- {
27
- return otRuby->ToNum(v);
28
- }
29
-
30
- template<> inline VALUE RubyUtils::toValue(const float& v)
31
- {
32
- return otRuby->ToNum(v);
33
- }
34
-
35
- template<> inline VALUE RubyUtils::toValue(const double& v)
36
- {
37
- return otRuby->ToNum(v);
38
- }
39
-
40
- template<> inline VALUE RubyUtils::toValue(const string& v)
41
- {
42
- return otRuby->ToNum(v.c_str());
43
- }
44
-
45
- template<> inline VALUE RubyUtils::toValue(const VALUE& v)
46
- {
47
- return v;
48
- }
49
-
50
- template<class T> inline VALUE RubyUtils::toValue(const vector<T>& v)
51
- {
52
- VALUE returnValue = otRuby->rb_ary_new();
53
- BOOST_FOREACH(const T& val, v)
54
- otRuby->rb_ary_push(returnValue, toValue(val));
55
- return returnValue;
56
- }
57
-
58
- template<class T, class U> inline VALUE RubyUtils::toValue(const pair<T,U>& v)
59
- {
60
- VALUE returnValue = otRuby->rb_ary_new();
61
- otRuby->rb_ary_push(returnValue, toValue(v.first));
62
- otRuby->rb_ary_push(returnValue, toValue(v.second));
63
- return returnValue;
64
- }
65
-
66
-
67
- template<class T, class U> inline VALUE RubyUtils::toValue(const map<T,U>& v)
68
- {
69
- VALUE returnValue = otRuby->rb_hash_new();
70
- BOOST_FOREACH(auto& keyValue, v)
71
- {
72
- otRuby->rb_hash_aset(returnValue, toValue(keyValue.first), toValue(keyValue.second));
73
- }
74
- return returnValue;
75
- }
76
-
77
- //////////////////////////////////////////////////////////////////////////
78
- // FROM VALUE
79
- //////////////////////////////////////////////////////////////////////////
80
-
81
- template<class T> inline T RubyUtils::fromValue(VALUE v)
82
- {
83
- T t;
84
- fromValue(v,t);
85
- return t;
86
- }
87
-
88
- //////////////////////////////////////////////////////////////////////////
89
- // FROM VALUE Two argument
90
- //////////////////////////////////////////////////////////////////////////
91
-
92
- template<> inline void RubyUtils::fromValue(VALUE v, int& i)
93
- {
94
- otRuby->rb_check_type(v, TOtRubyInterface::T_FIXNUM);
95
- i = otRuby->AsLong(v);
96
- }
97
-
98
- template<> inline void RubyUtils::fromValue(VALUE v, double& d)
99
- {
100
- otRuby->rb_check_type(v, TOtRubyInterface::T_FLOAT);
101
- d = otRuby->AsDouble(v);
102
- }
103
-
104
- template<> inline void RubyUtils::fromValue(VALUE v, float& f)
105
- {
106
- otRuby->rb_check_type(v, TOtRubyInterface::T_FLOAT);
107
- f = (float) otRuby->AsDouble(v);
108
- }
109
-
110
- template<> inline void RubyUtils::fromValue(VALUE v, string& s)
111
- {
112
- otRuby->rb_check_type(v, TOtRubyInterface::T_STRING);
113
- s = otRuby->AsString(v);
114
- }
115
-
116
- template<> inline void RubyUtils::fromValue(VALUE v, bool& b)
117
- {
118
- if (otRuby->rb_obj_is_kind_of(v, otRuby->rb_cTrueClass()))
119
- b = true;
120
- else if (otRuby->rb_obj_is_kind_of(v, otRuby->rb_cFalseClass()))
121
- b = false;
122
- else
123
- {
124
- otRuby->rb_raise(otRuby->rb_eRuntimeError(), "VALUE is not of type bool");
125
- }
126
-
127
- }
128
- template<> inline void RubyUtils::fromValue(VALUE v, TOtSimpleVariable& sv)
129
- {
130
- if (otRuby->rb_obj_is_kind_of(v, otRuby->rb_cString()))
131
- sv = TOtSimpleVariable(fromValue<string>(v));
132
- else if (otRuby->rb_obj_is_instance_of(v, otRuby->rb_cFixnum()))
133
- sv = TOtSimpleVariable(fromValue<int>(v));
134
- else if (otRuby->rb_obj_is_instance_of(v, otRuby->rb_cFloat()))
135
- sv = TOtSimpleVariable(fromValue<float>(v));
136
- else
137
- {
138
- otRuby->rb_raise(otRuby->rb_eRuntimeError(), "Unknown VALUE type");
139
- }
140
- }
141
-
142
-
143
- template<> inline void RubyUtils::fromValue(VALUE v, TOtMatrix& f)
144
- {
145
- //otRuby->rb_check_type(v, TOtRubyInterface::T_FLOAT);
146
- if (!otRuby->rb_obj_is_kind_of(v, rb_cMatrix))
147
- {
148
- throw std::invalid_argument("[RubyUtils::fromValue] expected a matrix");
149
- }
150
- Gclib::TGcMatrix *m = (Gclib::TGcMatrix*)otRuby->GetDataPtr(v);
151
- f.Connect(m);
152
- }
153
-
154
- template<class T, class U> inline void RubyUtils::fromValue(unsigned long v, pair<T,U> &returnValue)
155
- {
156
- otRuby->rb_check_type(v, TOtRubyInterface::T_ARRAY);
157
- VALUE* v_array = otRuby->ToArray(v);
158
- int length = otRuby->ArrayLen(v);
159
- if (length != 2) throw runtime_error("Expected a pair, got an array with length " + ToString(length));
160
- fromValue(v_array[0], returnValue.first);
161
- fromValue(v_array[1], returnValue.second);
162
- }
163
-
164
- template<class T> inline void RubyUtils::fromValue(VALUE v, vector<T>& returnValue)
165
- {
166
- otRuby->rb_check_type(v, TOtRubyInterface::T_ARRAY);
167
- VALUE* v_array = otRuby->ToArray(v);
168
- int length = otRuby->ArrayLen(v);
169
- returnValue.resize(length);
170
- for (int i = 0; i < length; ++i)
171
- fromValue(v_array[i], returnValue.at(i));
172
- }
173
-
174
- #endif // RubyUtils_h__