fastout 0.0.1

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.
Files changed (51) hide show
  1. data/.gitignore +4 -0
  2. data/.rspec +2 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +38 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.md +8 -0
  7. data/Rakefile +2 -0
  8. data/doc/classes/Fastout.html +105 -0
  9. data/doc/classes/Ranker.html +468 -0
  10. data/doc/classes/Ranker.src/M000001.html +18 -0
  11. data/doc/classes/Ranker.src/M000002.html +22 -0
  12. data/doc/classes/Ranker.src/M000003.html +42 -0
  13. data/doc/classes/Ranker.src/M000004.html +21 -0
  14. data/doc/classes/Ranker.src/M000005.html +28 -0
  15. data/doc/classes/Ranker.src/M000006.html +35 -0
  16. data/doc/classes/Ranker.src/M000007.html +18 -0
  17. data/doc/classes/Ranker.src/M000008.html +18 -0
  18. data/doc/classes/Ranker.src/M000009.html +33 -0
  19. data/doc/classes/Ranker.src/M000010.html +18 -0
  20. data/doc/classes/Ranker.src/M000011.html +22 -0
  21. data/doc/classes/Ranker.src/M000012.html +24 -0
  22. data/doc/classes/Ranker.src/M000013.html +28 -0
  23. data/doc/classes/Ranker.src/M000014.html +20 -0
  24. data/doc/classes/Ranker.src/M000015.html +19 -0
  25. data/doc/classes/Ranker/Point.html +262 -0
  26. data/doc/classes/Ranker/Point.src/M000016.html +18 -0
  27. data/doc/classes/Ranker/Point.src/M000017.html +24 -0
  28. data/doc/classes/Ranker/Point.src/M000018.html +18 -0
  29. data/doc/classes/Ranker/Point.src/M000019.html +18 -0
  30. data/doc/classes/Ranker/Point.src/M000020.html +18 -0
  31. data/doc/classes/Ranker/Point.src/M000021.html +26 -0
  32. data/doc/classes/Ranker/Point.src/M000022.html +18 -0
  33. data/doc/created.rid +1 -0
  34. data/doc/files/lib/fastout/ranker_rb.html +121 -0
  35. data/doc/files/lib/fastout/version_rb.html +101 -0
  36. data/doc/files/lib/fastout_rb.html +108 -0
  37. data/doc/files/spec/fastout/ranker_spec_rb.html +109 -0
  38. data/doc/files/spec/spec_helper_rb.html +110 -0
  39. data/doc/fr_class_index.html +29 -0
  40. data/doc/fr_file_index.html +28 -0
  41. data/doc/fr_method_index.html +48 -0
  42. data/doc/index.html +24 -0
  43. data/doc/rdoc-style.css +208 -0
  44. data/fastout.gemspec +29 -0
  45. data/lib/fastout.rb +1 -0
  46. data/lib/fastout/ranker.rb +243 -0
  47. data/lib/fastout/version.rb +3 -0
  48. data/spec/fastout/ranker_spec.rb +252 -0
  49. data/spec/parkinsons.csv +1 -0
  50. data/spec/spec_helper.rb +9 -0
  51. metadata +217 -0
@@ -0,0 +1,4 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
4
+ *.swp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format nested
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in fastout.gemspec
4
+ gemspec
@@ -0,0 +1,38 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ fastout (0.0.1)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ autotest (4.4.5)
10
+ autotest-fsevent (0.2.3)
11
+ sys-uname
12
+ autotest-growl (0.2.6)
13
+ diff-lcs (1.1.2)
14
+ fastercsv (1.5.3)
15
+ redgreen (1.2.2)
16
+ rr (1.0.2)
17
+ rspec (2.1.0)
18
+ rspec-core (~> 2.1.0)
19
+ rspec-expectations (~> 2.1.0)
20
+ rspec-mocks (~> 2.1.0)
21
+ rspec-core (2.1.0)
22
+ rspec-expectations (2.1.0)
23
+ diff-lcs (~> 1.1.2)
24
+ rspec-mocks (2.1.0)
25
+ sys-uname (0.8.4)
26
+
27
+ PLATFORMS
28
+ ruby
29
+
30
+ DEPENDENCIES
31
+ autotest
32
+ autotest-fsevent
33
+ autotest-growl
34
+ fastercsv
35
+ fastout!
36
+ redgreen
37
+ rr
38
+ rspec (~> 2.0)
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2004-2010 David Heinemeier Hansson
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,8 @@
1
+ FastOut
2
+ =======
3
+
4
+ Outlier detection using the FASTOUT algorithm by Foss et al. [FZ10] in Ruby!
5
+
6
+ References
7
+ ==========
8
+ [FZ10] Andrew Foss and Osmar R. Zaıäne. Class separation through variance: a new application of outlier detection. Knowledge and Information Systems, 2010.
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,105 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Fastout</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Fastout</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/spec/fastout/ranker_spec_rb.html">
59
+ spec/fastout/ranker_spec.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+
76
+
77
+ </div>
78
+
79
+
80
+ </div>
81
+
82
+
83
+ <!-- if includes -->
84
+
85
+ <div id="section">
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+ <!-- if method_list -->
95
+
96
+
97
+ </div>
98
+
99
+
100
+ <div id="validator-badges">
101
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
102
+ </div>
103
+
104
+ </body>
105
+ </html>
@@ -0,0 +1,468 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Ranker</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Ranker</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/fastout/ranker_rb.html">
59
+ lib/fastout/ranker.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+ <div id="description">
82
+ <p>
83
+ Takes a data set and determines the outliers using the FASTOUT algorithm
84
+ from Foss et al., &quot;Class Separation through Variance: a <a
85
+ href="Ranker.html#M000002">new</a> application of outlier detection&quot;,
86
+ Knowledge and Information Systems, 2010.
87
+ </p>
88
+ <table>
89
+ <tr><td valign="top">Author:</td><td>Jason Dew (<a href="mailto:jason.dew@gmail.com">jason.dew@gmail.com</a>)
90
+
91
+ </td></tr>
92
+ <tr><td valign="top">Copyright:</td><td>Copyright (c) 2010 Jason Dew
93
+
94
+ </td></tr>
95
+ <tr><td valign="top">License:</td><td>MIT
96
+
97
+ </td></tr>
98
+ </table>
99
+
100
+ </div>
101
+
102
+
103
+ </div>
104
+
105
+ <div id="method-list">
106
+ <h3 class="section-bar">Methods</h3>
107
+
108
+ <div class="name-list">
109
+ <a href="#M000011">assign_points_to_bins!</a>&nbsp;&nbsp;
110
+ <a href="#M000012">bin_index</a>&nbsp;&nbsp;
111
+ <a href="#M000004">calculate_theta</a>&nbsp;&nbsp;
112
+ <a href="#M000008">cluster_neighbors</a>&nbsp;&nbsp;
113
+ <a href="#M000015">compute_bin_count</a>&nbsp;&nbsp;
114
+ <a href="#M000014">compute_bin_widths</a>&nbsp;&nbsp;
115
+ <a href="#M000013">compute_minimums_and_maximums</a>&nbsp;&nbsp;
116
+ <a href="#M000002">new</a>&nbsp;&nbsp;
117
+ <a href="#M000003">optimized_ranking</a>&nbsp;&nbsp;
118
+ <a href="#M000001">pointify</a>&nbsp;&nbsp;
119
+ <a href="#M000007">random_attribute_indexes</a>&nbsp;&nbsp;
120
+ <a href="#M000005">ranked_outliers</a>&nbsp;&nbsp;
121
+ <a href="#M000009">recursively_cluster_neighbors</a>&nbsp;&nbsp;
122
+ <a href="#M000006">score_points_from_a_random_set_of_attributes!</a>&nbsp;&nbsp;
123
+ <a href="#M000010">unclustered_points</a>&nbsp;&nbsp;
124
+ </div>
125
+ </div>
126
+
127
+ </div>
128
+
129
+
130
+ <!-- if includes -->
131
+
132
+ <div id="section">
133
+
134
+ <div id="class-list">
135
+ <h3 class="section-bar">Classes and Modules</h3>
136
+
137
+ Class <a href="Ranker/Point.html" class="link">Ranker::Point</a><br />
138
+
139
+ </div>
140
+
141
+
142
+
143
+
144
+ <div id="attribute-list">
145
+ <h3 class="section-bar">Attributes</h3>
146
+
147
+ <div class="name-list">
148
+ <table>
149
+ <tr class="top-aligned-row context-row">
150
+ <td class="context-item-name">data</td>
151
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
152
+ <td class="context-item-desc"></td>
153
+ </tr>
154
+ <tr class="top-aligned-row context-row">
155
+ <td class="context-item-name">maximums</td>
156
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
157
+ <td class="context-item-desc"></td>
158
+ </tr>
159
+ <tr class="top-aligned-row context-row">
160
+ <td class="context-item-name">minimums</td>
161
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
162
+ <td class="context-item-desc"></td>
163
+ </tr>
164
+ <tr class="top-aligned-row context-row">
165
+ <td class="context-item-name">points</td>
166
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
167
+ <td class="context-item-desc"></td>
168
+ </tr>
169
+ </table>
170
+ </div>
171
+ </div>
172
+
173
+
174
+
175
+ <!-- if method_list -->
176
+ <div id="methods">
177
+ <h3 class="section-bar">Public Class methods</h3>
178
+
179
+ <div id="method-M000002" class="method-detail">
180
+ <a name="M000002"></a>
181
+
182
+ <div class="method-heading">
183
+ <a href="Ranker.src/M000002.html" target="Code" class="method-signature"
184
+ onclick="popupCode('Ranker.src/M000002.html');return false;">
185
+ <span class="method-name">new</span><span class="method-args">(data)</span>
186
+ </a>
187
+ </div>
188
+
189
+ <div class="method-description">
190
+ <p>
191
+ takes a 2-d array, <tt>data</tt>, where the rows are data points and the
192
+ columns are the attributes, values should all be numerical
193
+ </p>
194
+ <ul>
195
+ <li><tt>data</tt> should not be empty or nil will be returned
196
+
197
+ </li>
198
+ <li>also generates minimum and maximum values for each attribute for later use
199
+
200
+ </li>
201
+ </ul>
202
+ </div>
203
+ </div>
204
+
205
+ <div id="method-M000001" class="method-detail">
206
+ <a name="M000001"></a>
207
+
208
+ <div class="method-heading">
209
+ <a href="Ranker.src/M000001.html" target="Code" class="method-signature"
210
+ onclick="popupCode('Ranker.src/M000001.html');return false;">
211
+ <span class="method-name">pointify</span><span class="method-args">(data)</span>
212
+ </a>
213
+ </div>
214
+
215
+ <div class="method-description">
216
+ </div>
217
+ </div>
218
+
219
+ <h3 class="section-bar">Public Instance methods</h3>
220
+
221
+ <div id="method-M000011" class="method-detail">
222
+ <a name="M000011"></a>
223
+
224
+ <div class="method-heading">
225
+ <a href="Ranker.src/M000011.html" target="Code" class="method-signature"
226
+ onclick="popupCode('Ranker.src/M000011.html');return false;">
227
+ <span class="method-name">assign_points_to_bins!</span><span class="method-args">(bin_widths, bin_count)</span>
228
+ </a>
229
+ </div>
230
+
231
+ <div class="method-description">
232
+ <p>
233
+ assign each of the data points to a bin based on the given
234
+ <tt>bin_widths</tt>, returns a 2-d array in attribute-major order
235
+ </p>
236
+ </div>
237
+ </div>
238
+
239
+ <div id="method-M000012" class="method-detail">
240
+ <a name="M000012"></a>
241
+
242
+ <div class="method-heading">
243
+ <a href="Ranker.src/M000012.html" target="Code" class="method-signature"
244
+ onclick="popupCode('Ranker.src/M000012.html');return false;">
245
+ <span class="method-name">bin_index</span><span class="method-args">(point, attribute_index, bin_width)</span>
246
+ </a>
247
+ </div>
248
+
249
+ <div class="method-description">
250
+ </div>
251
+ </div>
252
+
253
+ <div id="method-M000004" class="method-detail">
254
+ <a name="M000004"></a>
255
+
256
+ <div class="method-heading">
257
+ <a href="Ranker.src/M000004.html" target="Code" class="method-signature"
258
+ onclick="popupCode('Ranker.src/M000004.html');return false;">
259
+ <span class="method-name">calculate_theta</span><span class="method-args">(sample, k, n, q)</span>
260
+ </a>
261
+ </div>
262
+
263
+ <div class="method-description">
264
+ <p>
265
+ find and rank the points by their outlier score and determine theta (the
266
+ number of points with an outlier score of <tt>n</tt>)
267
+ </p>
268
+ </div>
269
+ </div>
270
+
271
+ <div id="method-M000008" class="method-detail">
272
+ <a name="M000008"></a>
273
+
274
+ <div class="method-heading">
275
+ <a href="Ranker.src/M000008.html" target="Code" class="method-signature"
276
+ onclick="popupCode('Ranker.src/M000008.html');return false;">
277
+ <span class="method-name">cluster_neighbors</span><span class="method-args">(point, cluster, attribute_indexes, bin_widths)</span>
278
+ </a>
279
+ </div>
280
+
281
+ <div class="method-description">
282
+ <p>
283
+ find all unclustered points that are neighbors of <tt>point</tt> on
284
+ <b>all</b> selected attributes or neighbors in the neighborhood of
285
+ <tt>point</tt>; find recursively until no additions can be made
286
+ </p>
287
+ </div>
288
+ </div>
289
+
290
+ <div id="method-M000015" class="method-detail">
291
+ <a name="M000015"></a>
292
+
293
+ <div class="method-heading">
294
+ <a href="Ranker.src/M000015.html" target="Code" class="method-signature"
295
+ onclick="popupCode('Ranker.src/M000015.html');return false;">
296
+ <span class="method-name">compute_bin_count</span><span class="method-args">(q)</span>
297
+ </a>
298
+ </div>
299
+
300
+ <div class="method-description">
301
+ <p>
302
+ compute the number of bins for a given <tt>q</tt>
303
+ </p>
304
+ </div>
305
+ </div>
306
+
307
+ <div id="method-M000014" class="method-detail">
308
+ <a name="M000014"></a>
309
+
310
+ <div class="method-heading">
311
+ <a href="Ranker.src/M000014.html" target="Code" class="method-signature"
312
+ onclick="popupCode('Ranker.src/M000014.html');return false;">
313
+ <span class="method-name">compute_bin_widths</span><span class="method-args">(q, bin_count)</span>
314
+ </a>
315
+ </div>
316
+
317
+ <div class="method-description">
318
+ <p>
319
+ determine the widths of the bins based on <tt>q</tt>
320
+ </p>
321
+ </div>
322
+ </div>
323
+
324
+ <div id="method-M000013" class="method-detail">
325
+ <a name="M000013"></a>
326
+
327
+ <div class="method-heading">
328
+ <a href="Ranker.src/M000013.html" target="Code" class="method-signature"
329
+ onclick="popupCode('Ranker.src/M000013.html');return false;">
330
+ <span class="method-name">compute_minimums_and_maximums</span><span class="method-args">()</span>
331
+ </a>
332
+ </div>
333
+
334
+ <div class="method-description">
335
+ </div>
336
+ </div>
337
+
338
+ <div id="method-M000003" class="method-detail">
339
+ <a name="M000003"></a>
340
+
341
+ <div class="method-heading">
342
+ <a href="Ranker.src/M000003.html" target="Code" class="method-signature"
343
+ onclick="popupCode('Ranker.src/M000003.html');return false;">
344
+ <span class="method-name">optimized_ranking</span><span class="method-args">(sample, n, theta_target=1)</span>
345
+ </a>
346
+ </div>
347
+
348
+ <div class="method-description">
349
+ <p>
350
+ searches the parameter space to find the optimized values of <tt>k</tt> and
351
+ <tt>q</tt>
352
+ </p>
353
+ <ul>
354
+ <li><tt>theta_target</tt> is the maximum acceptable value of theta, default is
355
+ 1
356
+
357
+ </li>
358
+ <li><tt>sample</tt> is the number of iterations to perform in estimating the
359
+ parameters
360
+
361
+ </li>
362
+ <li><tt>n</tt> is the number of points to rank
363
+
364
+ </li>
365
+ </ul>
366
+ </div>
367
+ </div>
368
+
369
+ <div id="method-M000007" class="method-detail">
370
+ <a name="M000007"></a>
371
+
372
+ <div class="method-heading">
373
+ <a href="Ranker.src/M000007.html" target="Code" class="method-signature"
374
+ onclick="popupCode('Ranker.src/M000007.html');return false;">
375
+ <span class="method-name">random_attribute_indexes</span><span class="method-args">(number)</span>
376
+ </a>
377
+ </div>
378
+
379
+ <div class="method-description">
380
+ <p>
381
+ randomly choose <tt>number</tt> of attribute indexes
382
+ </p>
383
+ </div>
384
+ </div>
385
+
386
+ <div id="method-M000005" class="method-detail">
387
+ <a name="M000005"></a>
388
+
389
+ <div class="method-heading">
390
+ <a href="Ranker.src/M000005.html" target="Code" class="method-signature"
391
+ onclick="popupCode('Ranker.src/M000005.html');return false;">
392
+ <span class="method-name">ranked_outliers</span><span class="method-args">(sample_size, k, q)</span>
393
+ </a>
394
+ </div>
395
+
396
+ <div class="method-description">
397
+ <p>
398
+ chooses <tt>k</tt> random attributes with an average of <tt>q</tt> data
399
+ points in each bin <tt>sample</tt> times to determine outliers
400
+ </p>
401
+ </div>
402
+ </div>
403
+
404
+ <div id="method-M000009" class="method-detail">
405
+ <a name="M000009"></a>
406
+
407
+ <div class="method-heading">
408
+ <a href="Ranker.src/M000009.html" target="Code" class="method-signature"
409
+ onclick="popupCode('Ranker.src/M000009.html');return false;">
410
+ <span class="method-name">recursively_cluster_neighbors</span><span class="method-args">(point, cluster, attribute_indexes, bin_widths, neighbors)</span>
411
+ </a>
412
+ </div>
413
+
414
+ <div class="method-description">
415
+ <p>
416
+ recursive step of <a href="Ranker.html#M000008">cluster_neighbors</a>
417
+ </p>
418
+ </div>
419
+ </div>
420
+
421
+ <div id="method-M000006" class="method-detail">
422
+ <a name="M000006"></a>
423
+
424
+ <div class="method-heading">
425
+ <a href="Ranker.src/M000006.html" target="Code" class="method-signature"
426
+ onclick="popupCode('Ranker.src/M000006.html');return false;">
427
+ <span class="method-name">score_points_from_a_random_set_of_attributes!</span><span class="method-args">(number_of_attributes_to_choose, all_bin_widths)</span>
428
+ </a>
429
+ </div>
430
+
431
+ <div class="method-description">
432
+ <p>
433
+ pick a random set of attributes and compute the outlier score for each of
434
+ the points
435
+ </p>
436
+ </div>
437
+ </div>
438
+
439
+ <div id="method-M000010" class="method-detail">
440
+ <a name="M000010"></a>
441
+
442
+ <div class="method-heading">
443
+ <a href="Ranker.src/M000010.html" target="Code" class="method-signature"
444
+ onclick="popupCode('Ranker.src/M000010.html');return false;">
445
+ <span class="method-name">unclustered_points</span><span class="method-args">()</span>
446
+ </a>
447
+ </div>
448
+
449
+ <div class="method-description">
450
+ <p>
451
+ find all of the points that don&#8216;t already belong to a cluster
452
+ </p>
453
+ </div>
454
+ </div>
455
+
456
+
457
+ </div>
458
+
459
+
460
+ </div>
461
+
462
+
463
+ <div id="validator-badges">
464
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
465
+ </div>
466
+
467
+ </body>
468
+ </html>