vowpalwabbit 0.1.3 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 81b4580c00f05d79fc6a5ace4d0ef37158985033f6136b55c067d08084554b8f
4
- data.tar.gz: 8e6fa92f10a340ece273799dd6a83680ea358ed0f0ee4f0d12a79da26e972f84
3
+ metadata.gz: 75746e7efe8fd978814c5b22deff8bb496e45f43dbc05e23d54b120396fd271c
4
+ data.tar.gz: 8d69b63c36598da996bdd9753ea7b693cedc709da0fb35603e24ad7ecd60d0ba
5
5
  SHA512:
6
- metadata.gz: 0d83ce2adb642d6dabdf2fbe7fb087b6adc869e175712bcfd7916e6343b88f43fcccd045cabeae89a22e4319e86a91e238b7e4b17f3d1ae7def14affb73e3fd8
7
- data.tar.gz: 7a85762de630a058b88ca462099a7fd1536de44a4264f4bc65f17c6aa7c33cb38eccdb582f3b25e110d82fedacfc62352a08130cae646b5b20cb8406a2ef5707
6
+ metadata.gz: 6b82a3d0f584466db539656c2e987fe40721b5cb9e7a6c10d4fcd3ff5350475a4d4d22ce0192efe15f6737a8d5526de61c5a85ff142eea31b32ec7129302371e
7
+ data.tar.gz: eab978e6734ff3e53f48ad8beb3435ef74c24e1c8615c9ec10863fc03e3b33e0dbf88a673cc578dc1f8b7389f84d7e21528625dd9188cd35b38ad2b5f586f8a3
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 0.3.0 (2024-10-23)
2
+
3
+ - Dropped support for Ruby < 3.1
4
+
5
+ ## 0.2.0 (2022-09-02)
6
+
7
+ - Prefer `save` over `save_model`
8
+ - Prefer `load` over `load_model`
9
+ - Dropped support for Ruby < 2.7
10
+
1
11
  ## 0.1.3 (2022-02-02)
2
12
 
3
13
  - Added support for Ubuntu package
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [Vowpal Wabbit](https://vowpalwabbit.org) - fast online machine learning - for Ruby
4
4
 
5
- [![Build Status](https://github.com/ankane/vowpalwabbit-ruby/workflows/build/badge.svg?branch=master)](https://github.com/ankane/vowpalwabbit-ruby/actions)
5
+ [![Build Status](https://github.com/ankane/vowpalwabbit-ruby/actions/workflows/build.yml/badge.svg)](https://github.com/ankane/vowpalwabbit-ruby/actions)
6
6
 
7
7
  ## Installation
8
8
 
@@ -51,13 +51,13 @@ model.predict(x)
51
51
  Save the model to a file
52
52
 
53
53
  ```ruby
54
- model.save_model("model.bin")
54
+ model.save("model.bin")
55
55
  ```
56
56
 
57
57
  Load the model from a file
58
58
 
59
59
  ```ruby
60
- model.load_model("model.bin")
60
+ model = VowpalWabbit::Regressor.load("model.bin")
61
61
  ```
62
62
 
63
63
  Train online
@@ -12,7 +12,7 @@ module VowpalWabbit
12
12
  def score(x, y = nil)
13
13
  y_pred, y = predict_for_score(x, y)
14
14
  y_pred.map! { |v| v >= 0 ? 1 : -1 }
15
- y_pred.zip(y).select { |yp, yt| yp == yt }.count / y.count.to_f
15
+ y_pred.zip(y).count { |yp, yt| yp == yt } / y.count.to_f
16
16
  end
17
17
  end
18
18
  end
@@ -9,7 +9,7 @@ module VowpalWabbit
9
9
  raise LoadError, "Could not find Vowpal Wabbit"
10
10
  end
11
11
 
12
- # https://github.com/VowpalWabbit/vowpal_wabbit/blob/master/vowpalwabbit/vwdll.h
12
+ # https://github.com/VowpalWabbit/vowpal_wabbit/blob/master/vowpalwabbit/c_wrapper/include/vw/c_wrapper/vwdll.h
13
13
  # keep same order
14
14
 
15
15
  attach_function :VW_InitializeA, %i[string], :pointer
@@ -46,6 +46,7 @@ module VowpalWabbit
46
46
  File.binwrite(filename, bin_str)
47
47
  nil
48
48
  end
49
+ alias_method :save, :save_model
49
50
 
50
51
  def load_model(filename)
51
52
  bin_str = File.binread(filename)
@@ -55,6 +56,12 @@ module VowpalWabbit
55
56
  nil
56
57
  end
57
58
 
59
+ def self.load(filename)
60
+ model = new
61
+ model.load_model(filename)
62
+ model
63
+ end
64
+
58
65
  private
59
66
 
60
67
  # TODO clean-up handle
@@ -82,7 +89,7 @@ module VowpalWabbit
82
89
  end
83
90
 
84
91
  def check_param(v)
85
- raise ArgumentError, "Invalid parameter" if /[[:space:]]/.match(v)
92
+ raise ArgumentError, "Invalid parameter" if /[[:space:]]/.match?(v)
86
93
  end
87
94
 
88
95
  def predict_example(example)
@@ -1,3 +1,3 @@
1
1
  module VowpalWabbit
2
- VERSION = "0.1.3"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/vowpalwabbit.rb CHANGED
@@ -2,10 +2,10 @@
2
2
  require "ffi"
3
3
 
4
4
  # modules
5
- require "vowpalwabbit/model"
6
- require "vowpalwabbit/classifier"
7
- require "vowpalwabbit/regressor"
8
- require "vowpalwabbit/version"
5
+ require_relative "vowpalwabbit/model"
6
+ require_relative "vowpalwabbit/classifier"
7
+ require_relative "vowpalwabbit/regressor"
8
+ require_relative "vowpalwabbit/version"
9
9
 
10
10
  module VowpalWabbit
11
11
  class Error < StandardError; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vowpalwabbit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.3.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: 2022-02-03 00:00:00.000000000 Z
11
+ date: 2024-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -51,14 +51,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '2.4'
54
+ version: '3.1'
55
55
  required_rubygems_version: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  requirements: []
61
- rubygems_version: 3.3.3
61
+ rubygems_version: 3.5.16
62
62
  signing_key:
63
63
  specification_version: 4
64
64
  summary: Fast online machine learning for Ruby