scoruby 0.2.11 → 0.2.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 00aa54edc46f55d9595e7f972b2983be9389c269
4
- data.tar.gz: 3a191d0e24aa19310106d6eb99b67541e7edd4ed
3
+ metadata.gz: 93c138affde68fe560e717bfae175c9d09482a60
4
+ data.tar.gz: bc5bc484924d557dd0eda09b85100203c2fb3ffd
5
5
  SHA512:
6
- metadata.gz: 192cb38df033c13c9dbda5871dd9e88222638912fd1a86cdb1ad530174a1da2c92d94217cab2063579836acdbfb3c0fdd5e28768580484fe0b3d247a1063c11e
7
- data.tar.gz: 1f7560f9d42563feea72eaa11e380a30df1e6d02443eda182e2fb4853650da879605ccbb8726936bb00919581244b7ce129c50a354f8098e4b8cc9bb5385eb57
6
+ metadata.gz: 0cebad971eb0b272d45d8ca789e3cf93319066d7f0510ab6bc4798e09ee3d045513e1c2121106204adce8d7060e2d268f60cff748f88a3d248634a1577753089
7
+ data.tar.gz: 74a38b0428e889e3896a5c0942f11e20415861590354fede7cd0ffc2b76245af2627babfdfeea406bb5c2f8f92edc2e9c708607b88f9d4184059ad73e1152959
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- scoruby (0.2.11)
4
+ scoruby (0.2.12)
5
5
  nokogiri (~> 1.7)
6
6
 
7
7
  GEM
@@ -6,9 +6,10 @@ require 'scoruby/models/random_forest/model'
6
6
  require 'scoruby/models/naive_bayes/model'
7
7
 
8
8
  module Scoruby
9
- class ModelsFactory
9
+ class ModelFactory
10
10
  RANDOM_FOREST_MODEL = 'randomForest_Model'
11
- GBM_INDICATION = '//OutputField[@name="scaledGbmValue"]'
11
+ GBM_INDICATION_4_2 = '//OutputField[@name="scaledGbmValue"]'
12
+ GBM_INDICATION_4_3 = '//OutputField[@name="gbmValue"]'
12
13
  MODEL_NOT_SUPPORTED_ERROR = 'model not supported'
13
14
 
14
15
  def self.factory_for(xml)
@@ -33,7 +34,15 @@ module Scoruby
33
34
  end
34
35
 
35
36
  def self.gbm?(xml)
36
- !xml.xpath(GBM_INDICATION).empty?
37
+ gbm_4_2?(xml) || gbm_4_3?(xml)
38
+ end
39
+
40
+ def self.gbm_4_2?(xml)
41
+ !xml.xpath(GBM_INDICATION_4_2).empty?
42
+ end
43
+
44
+ def self.gbm_4_3?(xml)
45
+ !xml.xpath(GBM_INDICATION_4_3).empty?
37
46
  end
38
47
  end
39
48
  end
@@ -8,12 +8,13 @@ module Scoruby
8
8
  class Gbm
9
9
  GBM_FOREST_XPATH = '//Segmentation[@multipleModelMethod="sum"]/Segment'
10
10
  CONST_XPATH = '//Target/@rescaleConstant'
11
+ CONST_XPATH_4_2 = '//Constant'
11
12
 
12
13
  def initialize(xml)
13
14
  @decision_trees = xml.xpath(GBM_FOREST_XPATH).map do |xml_tree|
14
15
  DecisionTree.new(xml_tree)
15
16
  end
16
- @const = Float(xml.xpath(CONST_XPATH).to_s)
17
+ @const = const(xml)
17
18
  end
18
19
 
19
20
  def tree_count
@@ -28,6 +29,13 @@ module Scoruby
28
29
  sum = scores.reduce(:+) + @const
29
30
  Math.exp(sum) / (1 + Math.exp(sum))
30
31
  end
32
+
33
+ private
34
+
35
+ def const(xml)
36
+ return Float(xml.xpath(CONST_XPATH).to_s) if ModelFactory.gbm_4_3?(xml)
37
+ Float(xml.xpath(CONST_XPATH_4_2).first.content)
38
+ end
31
39
  end
32
40
  end
33
41
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Scoruby
4
- VERSION = '0.2.11'
4
+ VERSION = '0.2.12'
5
5
  end
data/lib/scoruby.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'scoruby/version'
4
- require 'scoruby/models_factory'
4
+ require 'scoruby/model_factory'
5
5
  require 'nokogiri'
6
6
  require 'logger'
7
7
 
@@ -18,7 +18,7 @@ module Scoruby
18
18
 
19
19
  def self.load_model(pmml_file_name)
20
20
  xml = xml_from_file_path(pmml_file_name)
21
- ModelsFactory.factory_for(xml)
21
+ ModelFactory.factory_for(xml)
22
22
  end
23
23
 
24
24
  def self.xml_from_file_path(pmml_file_name)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scoruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.11
4
+ version: 0.2.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asaf Schers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-09 00:00:00.000000000 Z
11
+ date: 2018-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -130,13 +130,13 @@ files:
130
130
  - lib/scoruby.rb
131
131
  - lib/scoruby/decision.rb
132
132
  - lib/scoruby/features.rb
133
+ - lib/scoruby/model_factory.rb
133
134
  - lib/scoruby/models/decision_tree.rb
134
135
  - lib/scoruby/models/gbm.rb
135
136
  - lib/scoruby/models/naive_bayes/model.rb
136
137
  - lib/scoruby/models/naive_bayes/model_data.rb
137
138
  - lib/scoruby/models/random_forest/data.rb
138
139
  - lib/scoruby/models/random_forest/model.rb
139
- - lib/scoruby/models_factory.rb
140
140
  - lib/scoruby/node.rb
141
141
  - lib/scoruby/predicate_factory.rb
142
142
  - lib/scoruby/predicates/compound_predicate.rb
@@ -169,9 +169,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  version: '0'
170
170
  requirements: []
171
171
  rubyforge_project:
172
- rubygems_version: 2.2.2
172
+ rubygems_version: 2.6.13
173
173
  signing_key:
174
174
  specification_version: 4
175
175
  summary: Ruby Scoring API for PMML.
176
176
  test_files: []
177
- has_rdoc: