fastout 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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>