xgb 0.3.1 → 0.4.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +10 -4
- data/lib/xgboost/classifier.rb +1 -1
- data/lib/xgboost/dmatrix.rb +16 -5
- data/lib/xgboost/ffi.rb +9 -1
- data/lib/xgboost/regressor.rb +1 -1
- data/lib/xgboost/version.rb +1 -1
- data/vendor/libxgboost.dylib +0 -0
- data/vendor/libxgboost.so +0 -0
- data/vendor/xgboost.dll +0 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d128d5d386edca28045cf55d4cd246f68deee2bb8e4a26254b9549955d2d8d4
|
4
|
+
data.tar.gz: 9e43a00b4b5f5f451ba7744effae622cfb404e67038de3881a6edfc5a776878a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7aaa6dd25ca9987621314b7ccee0b4fb029e0e6b70cce50a7fdaf9517c8896c6ad961b36b45af0ed2e6e2698bfd6d523a0fc623202cc058aa671821d9cec893
|
7
|
+
data.tar.gz: 603488b7920eed380a8eb5ca3576e3d5a1f4b7ba9cdc8afa75c0385558606b7e2865c8ddb9c21db43725b3cf379f75beb8cba35cf92d7d4717c85fedc7bf8ccb
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## 0.4.0 (2020-05-17)
|
2
|
+
|
3
|
+
- Updated XGBoost to 1.1.0
|
4
|
+
- Changed default `learning_rate` and `max_depth` for Scikit-Learn API to match Python
|
5
|
+
- Added support for Rover
|
6
|
+
- Improved performance of Numo datasets
|
7
|
+
- Improved error message when OpenMP not found on Mac
|
8
|
+
|
1
9
|
## 0.3.1 (2020-04-16)
|
2
10
|
|
3
11
|
- Added `feature_names` and `feature_types` to `DMatrix`
|
data/README.md
CHANGED
@@ -137,16 +137,22 @@ Data can be an array of arrays
|
|
137
137
|
[[1, 2, 3], [4, 5, 6]]
|
138
138
|
```
|
139
139
|
|
140
|
-
Or a
|
140
|
+
Or a Numo NArray
|
141
141
|
|
142
142
|
```ruby
|
143
|
-
|
143
|
+
Numo::DFloat.new(3, 2).seq
|
144
144
|
```
|
145
145
|
|
146
|
-
Or a
|
146
|
+
Or a Rover data frame
|
147
147
|
|
148
148
|
```ruby
|
149
|
-
|
149
|
+
Rover.read_csv("houses.csv")
|
150
|
+
```
|
151
|
+
|
152
|
+
Or a Daru data frame
|
153
|
+
|
154
|
+
```ruby
|
155
|
+
Daru::DataFrame.from_csv("houses.csv")
|
150
156
|
```
|
151
157
|
|
152
158
|
## Helpful Resources
|
data/lib/xgboost/classifier.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module XGBoost
|
2
2
|
class Classifier < Model
|
3
|
-
def initialize(
|
3
|
+
def initialize(n_estimators: 100, objective: "binary:logistic", importance_type: "gain", **options)
|
4
4
|
super
|
5
5
|
end
|
6
6
|
|
data/lib/xgboost/dmatrix.rb
CHANGED
@@ -27,18 +27,25 @@ module XGBoost
|
|
27
27
|
raise Error, "Unknown feature type: #{v}"
|
28
28
|
end
|
29
29
|
end
|
30
|
-
elsif
|
30
|
+
elsif numo?(data)
|
31
31
|
nrow, ncol = data.shape
|
32
|
-
|
32
|
+
elsif rover?(data)
|
33
|
+
nrow, ncol = data.shape
|
34
|
+
@feature_names = data.keys
|
35
|
+
data = data.to_numo
|
33
36
|
else
|
34
37
|
nrow = data.count
|
35
38
|
ncol = data.first.count
|
36
39
|
flat_data = data.flatten
|
37
40
|
end
|
38
41
|
|
39
|
-
handle_missing(flat_data, missing)
|
40
42
|
c_data = ::FFI::MemoryPointer.new(:float, nrow * ncol)
|
41
|
-
|
43
|
+
if numo?(data)
|
44
|
+
c_data.write_bytes(data.cast_to(Numo::SFloat).to_string)
|
45
|
+
else
|
46
|
+
handle_missing(flat_data, missing)
|
47
|
+
c_data.write_array_of_float(flat_data)
|
48
|
+
end
|
42
49
|
check_result FFI.XGDMatrixCreateFromMat(c_data, nrow, ncol, missing, @handle)
|
43
50
|
|
44
51
|
ObjectSpace.define_finalizer(self, self.class.finalize(handle_pointer))
|
@@ -134,10 +141,14 @@ module XGBoost
|
|
134
141
|
defined?(Daru::DataFrame) && data.is_a?(Daru::DataFrame)
|
135
142
|
end
|
136
143
|
|
137
|
-
def
|
144
|
+
def numo?(data)
|
138
145
|
defined?(Numo::NArray) && data.is_a?(Numo::NArray)
|
139
146
|
end
|
140
147
|
|
148
|
+
def rover?(data)
|
149
|
+
defined?(Rover::DataFrame) && data.is_a?(Rover::DataFrame)
|
150
|
+
end
|
151
|
+
|
141
152
|
def handle_missing(data, missing)
|
142
153
|
data.map! { |v| v.nil? ? missing : v }
|
143
154
|
end
|
data/lib/xgboost/ffi.rb
CHANGED
@@ -2,7 +2,15 @@ module XGBoost
|
|
2
2
|
module FFI
|
3
3
|
extend ::FFI::Library
|
4
4
|
|
5
|
-
|
5
|
+
begin
|
6
|
+
ffi_lib XGBoost.ffi_lib
|
7
|
+
rescue LoadError => e
|
8
|
+
if e.message.include?("Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib") && e.message.include?("Reason: image not found")
|
9
|
+
raise LoadError, "OpenMP not found. Run `brew install libomp`"
|
10
|
+
else
|
11
|
+
raise e
|
12
|
+
end
|
13
|
+
end
|
6
14
|
|
7
15
|
# https://github.com/dmlc/xgboost/blob/master/include/xgboost/c_api.h
|
8
16
|
# keep same order
|
data/lib/xgboost/regressor.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module XGBoost
|
2
2
|
class Regressor < Model
|
3
|
-
def initialize(
|
3
|
+
def initialize(n_estimators: 100, objective: "reg:squarederror", importance_type: "gain", **options)
|
4
4
|
super
|
5
5
|
end
|
6
6
|
|
data/lib/xgboost/version.rb
CHANGED
data/vendor/libxgboost.dylib
CHANGED
Binary file
|
data/vendor/libxgboost.so
CHANGED
Binary file
|
data/vendor/xgboost.dll
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xgb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rover-df
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
description:
|
98
112
|
email: andrew@chartkick.com
|
99
113
|
executables: []
|