pub struct FPGrowth<T> { /* private fields */ }
Expand description
FPGrowth<T>
represents an algorithm instance, it should include the transactions
input
and minimum support value as the initial config. Once it is created, you could run
FPGrowth::find_frequent_patterns()
to start the frequent pattern mining.
Implementations§
Source§impl<T: ItemType> FPGrowth<T>
impl<T: ItemType> FPGrowth<T>
Sourcepub fn new(transactions: Vec<Vec<T>>, minimum_support: usize) -> FPGrowth<T>
pub fn new(transactions: Vec<Vec<T>>, minimum_support: usize) -> FPGrowth<T>
Create a FP-Growth algorithm instance with the given transactions
and minimum_support
.
Examples found in repository?
examples/example_usage.rs (line 18)
3fn main() {
4 let transactions = vec![
5 vec!["e", "c", "a", "b", "f", "h"],
6 vec!["a", "c", "g"],
7 vec!["e"],
8 vec!["e", "c", "a", "g", "d"],
9 vec!["a", "c", "e", "g"],
10 vec!["e"],
11 vec!["a", "c", "e", "b", "f"],
12 vec!["a", "c", "d"],
13 vec!["g", "c", "e", "a"],
14 vec!["a", "c", "e", "g"],
15 vec!["i"],
16 ];
17 let minimum_support = 2;
18 let fp_growth_str = FPGrowth::<&str>::new(transactions, minimum_support);
19
20 let result = fp_growth_str.find_frequent_patterns();
21 println!("The number of results: {}", result.frequent_patterns_num());
22 for (frequent_pattern, support) in result.frequent_patterns().iter() {
23 println!("{:?} {}", frequent_pattern, support);
24 }
25}
Sourcepub fn find_frequent_patterns(&self) -> FPResult<T>
pub fn find_frequent_patterns(&self) -> FPResult<T>
Find frequent patterns in the given transactions using FP-Growth.
Examples found in repository?
examples/example_usage.rs (line 20)
3fn main() {
4 let transactions = vec![
5 vec!["e", "c", "a", "b", "f", "h"],
6 vec!["a", "c", "g"],
7 vec!["e"],
8 vec!["e", "c", "a", "g", "d"],
9 vec!["a", "c", "e", "g"],
10 vec!["e"],
11 vec!["a", "c", "e", "b", "f"],
12 vec!["a", "c", "d"],
13 vec!["g", "c", "e", "a"],
14 vec!["a", "c", "e", "g"],
15 vec!["i"],
16 ];
17 let minimum_support = 2;
18 let fp_growth_str = FPGrowth::<&str>::new(transactions, minimum_support);
19
20 let result = fp_growth_str.find_frequent_patterns();
21 println!("The number of results: {}", result.frequent_patterns_num());
22 for (frequent_pattern, support) in result.frequent_patterns().iter() {
23 println!("{:?} {}", frequent_pattern, support);
24 }
25}
Auto Trait Implementations§
impl<T> Freeze for FPGrowth<T>
impl<T> RefUnwindSafe for FPGrowth<T>where
T: RefUnwindSafe,
impl<T> Send for FPGrowth<T>where
T: Send,
impl<T> Sync for FPGrowth<T>where
T: Sync,
impl<T> Unpin for FPGrowth<T>where
T: Unpin,
impl<T> UnwindSafe for FPGrowth<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more