dgaff 0.1.2 → 0.1.3

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZjE4ODI2ZjkwNDgwZTQ1ZjhlNzc5NDQzOGQxZGI3MTQ0YTk1OTVjOA==
4
+ MjAzMDVlNTg3Y2Y2MDUzMjU5OGY5ZmUyZmFhNDc2ZWZlNmIxY2RjNQ==
5
5
  data.tar.gz: !binary |-
6
- ZjZkOTBhMTg3NTM0ZDhjYmQ4MjA1OWVmNzQzMDZiM2ViYzk5OWYwYw==
6
+ YzZiNWUxNzQ3NDNhMGE2ODM5ZTg2ZTEzNTY5NzkxMjlmOTcyNDAzNA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OGZjOTY3ZTk4Yjc4YWY5MGNmMGI4ZTYyZWQxMzU0ZTM3YTA0Y2UzNDFlNDAy
10
- NWEwOTZlM2Q2YWE5NWQ4NzYyMjhjZGY5Y2RiNzQ0YTljMTFhMDQ0MGQ3ZWM3
11
- YTA3MTM2ZmJlMWZmYjE0MDAxZTg2ODA3YzY3OGFlYTcyZTA5MWI=
9
+ OWI3ODExNGQ1OWExOWRmYzlmZWU1ZmFmYjlkNzMyMDAxMjE3NWMwNTkyMDgy
10
+ NjZmMzA3ZDlkYmYyOTkxNzUyNTE3OTI0MzM4MzcwNjIwMmM0ZTMzZTQ5MzAy
11
+ NDU0OWFhZjI0ZjcwZjU3M2VhMDRlMjU2ZmI0OWYyZTlkOGVjZWQ=
12
12
  data.tar.gz: !binary |-
13
- MjM4ZjRiZjQ5YTA3Njc3Y2QwODA0NDg2NmIxZjliYWZhNjM4YjQ3NjFhZmQz
14
- NDMwNjZhY2E3NGJiYmE0ZTdhMDFmZTQ2OTVkMmJlZjZkOTQ5YjIwOGJiMzA4
15
- NWNmYzdiYTM4ZmJjMzk4MmEyOWEwNDNlMTE3NWRkODE3MDQxZjA=
13
+ YzMzN2E0MjUxNTI0NDRkZTQzNWZhNDU0YjUwYzBlMjE2MjBiZTY2ZWFhOGFi
14
+ MWY5OGU4NDU3MTBmYzQ4MTY4MTVkODdhYjI4OTgxNWU2OTFmZDEwMjZjNzc2
15
+ NTg3ZDljZWJjODVjMmQ2MDhjZjBkZWU0MmE4NDgxZmJjMTc0NDY=
@@ -234,4 +234,29 @@ class Array
234
234
  end
235
235
  averaged
236
236
  end
237
+
238
+ def elbow
239
+ elbow_cutoff
240
+ end
241
+
242
+ def elbow_cutoff
243
+ frequencies = self.counts
244
+ distances = {}
245
+ frequencies.each_pair do |insider_score, count|
246
+ translated_x = insider_score/frequencies.keys.max.to_f
247
+ translated_y = 1-insider_score/frequencies.keys.max.to_f
248
+ index = frequencies.keys.sort.index(insider_score)
249
+ expected_x = index/frequencies.length.to_f
250
+ expected_y = 1-index/frequencies.length.to_f
251
+ distances[insider_score] = Math.sqrt((translated_x-expected_x)**2+(translated_y-expected_y)**2)
252
+ end
253
+ elbow = distances.sort_by{|k,v| v}.last
254
+ return 0 if elbow.nil?
255
+ return elbow.first
256
+ end
257
+
258
+ def pareto_cutoff
259
+ #our world is a bit more unfair. 0.8 moved to 0.9.
260
+ self.percentile(0.9)
261
+ end
237
262
  end
@@ -1,3 +1,3 @@
1
1
  module Dgaff
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dgaff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Devin Gaffney