eps 0.3.1 → 0.3.2
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 +5 -0
- data/README.md +5 -1
- data/lib/eps/linear_regression.rb +27 -5
- data/lib/eps/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 50f5a4273111ebc5ba1265d07d4e925d770006fce330b01cfbe4fe97221548d9
|
4
|
+
data.tar.gz: a785ca5533618243b933248ef2f418c5d0d048d8ff1051c9a2e7fae5f8c87ba3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3adffd0fbb0d16163a06720adfd97a83c6bf4bf2554e30b3a6f3599828511834826477a8296f93720c3efd52d19ca412e8b7695b013a4e7361073e3c5bcf5ee5
|
7
|
+
data.tar.gz: 69847d6d49742f61b3b4fac6e9298e5c954d4cc22e5302b716f258e6190f71df4eee1820e844c4159e1fdf99385a36c2cb697065e78d5f6557c6d1dbca70f9de
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,12 @@
|
|
1
|
+
## 0.3.2 (2019-12-08)
|
2
|
+
|
3
|
+
- Added support for GSLR
|
4
|
+
|
1
5
|
## 0.3.1 (2019-12-06)
|
2
6
|
|
3
7
|
- Added `weight` option for LightGBM and linear regression
|
4
8
|
- Added `intercept` option for linear regression
|
9
|
+
- Added LightGBM evaluator safety check
|
5
10
|
- Fixed `Unknown label` error for LightGBM
|
6
11
|
- Fixed error message for unstable solutions with linear regression
|
7
12
|
|
data/README.md
CHANGED
@@ -355,6 +355,8 @@ Eps supports:
|
|
355
355
|
|
356
356
|
### Linear Regression
|
357
357
|
|
358
|
+
#### Performance
|
359
|
+
|
358
360
|
To speed up training on large datasets with linear regression, [install GSL](https://www.gnu.org/software/gsl/). With Homebrew, you can use:
|
359
361
|
|
360
362
|
```sh
|
@@ -364,11 +366,13 @@ brew install gsl
|
|
364
366
|
Then, add this line to your application’s Gemfile:
|
365
367
|
|
366
368
|
```ruby
|
367
|
-
gem '
|
369
|
+
gem 'gslr', group: :development
|
368
370
|
```
|
369
371
|
|
370
372
|
It only needs to be available in environments used to build the model.
|
371
373
|
|
374
|
+
#### Options
|
375
|
+
|
372
376
|
By default, an intercept is included. Disable this with:
|
373
377
|
|
374
378
|
```ruby
|
@@ -50,17 +50,35 @@ module Eps
|
|
50
50
|
|
51
51
|
x = data.map_rows(&:to_a)
|
52
52
|
|
53
|
+
gsl =
|
54
|
+
if options.key?(:gsl)
|
55
|
+
options[:gsl]
|
56
|
+
elsif defined?(GSL)
|
57
|
+
true
|
58
|
+
elsif defined?(GSLR)
|
59
|
+
:gslr
|
60
|
+
else
|
61
|
+
false
|
62
|
+
end
|
63
|
+
|
53
64
|
intercept = @options.key?(:intercept) ? @options[:intercept] : true
|
54
|
-
if intercept
|
65
|
+
if intercept && gsl != :gslr
|
55
66
|
data.size.times do |i|
|
56
67
|
x[i].unshift(1)
|
57
68
|
end
|
58
69
|
end
|
59
70
|
|
60
|
-
gsl = options.key?(:gsl) ? options[:gsl] : defined?(GSL)
|
61
|
-
|
62
71
|
v3 =
|
63
|
-
if gsl
|
72
|
+
if gsl == :gslr
|
73
|
+
model = GSLR::OLS.new(intercept: intercept)
|
74
|
+
model.fit(x, data.label, weight: data.weight)
|
75
|
+
|
76
|
+
@covariance = model.covariance
|
77
|
+
|
78
|
+
coefficients = model.coefficients.dup
|
79
|
+
coefficients.unshift(model.intercept) if intercept
|
80
|
+
coefficients
|
81
|
+
elsif gsl
|
64
82
|
x = GSL::Matrix.alloc(*x)
|
65
83
|
y = GSL::Vector.alloc(data.label)
|
66
84
|
w = GSL::Vector.alloc(data.weight) if data.weight
|
@@ -196,7 +214,11 @@ module Eps
|
|
196
214
|
|
197
215
|
def diagonal
|
198
216
|
@diagonal ||= begin
|
199
|
-
if covariance.
|
217
|
+
if covariance.is_a?(Array)
|
218
|
+
covariance.size.times.map do |i|
|
219
|
+
covariance[i][i]
|
220
|
+
end
|
221
|
+
elsif covariance.respond_to?(:each)
|
200
222
|
d = covariance.each(:diagonal).to_a
|
201
223
|
@removed.each do |i|
|
202
224
|
d.insert(i, 0)
|
data/lib/eps/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lightgbm
|