Crate oner_quantize

Source
Expand description

The 1R (Holt, 1993) quantization algorithm.

Given an attribute contaning numeric data, this code will compute a set of intervals to quantize the values.

§Examples

use oner_quantize::*;

// Fake data that has three clear splits:
let attribute = vec![  1, 10,   3,   1,  20,  30,  100];
let classes   = vec!["a", "b", "a", "a", "b", "b", "c"];

// Discover the intervals:
let intervals =
   find_intervals(&attribute, &classes, 2);

// We'll find three intervals:
// `< 10`, `>= 10 and < 100`, `>= 100`
assert_eq!(intervals.len(), 3);

// Apply the intervals to an attribute value:
assert_eq!(
    quantize(&intervals, 47),
    Some( &Interval::Range { from: 10, below: 100, class: "b" } )
);

§See also

  • oner_induction crate - a Rust implementation of the rule induction algorithm from the 1R paper.
  • Holte, R.C. (1993) Very Simple Classification Rules Perform Well on Most Commonly Used Datasets. Machine Learning 11: 63. https://doi.org/10.1023/A:1022631118932
  • Nevill-Manning, C. G., Holmes, G. & Witten, I. H.(1995) The development of Holte’s 1R Classifier. (Working paper 95/19). Hamilton, New Zealand: University of Waikato, Department of Computer Science. https://hdl.handle.net/10289/1096

§Licence

Copyright 2020 Richard Dallaway

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

Enums§

Interval
An interval represents a mapping from a range of values of type A, to a class, C.

Functions§

find_intervals
Quantize the given attribute (aka feature, column) into an ordered list of Intervals.
quantize
Find which interval applies to a given attribute value.