Skip to content

Releases: JaredSchwartz/RuleMiner.jl

v0.7.0

15 Mar 22:38
Compare
Choose a tag to compare

RuleMiner v0.7.0

Diff since v0.6.3

Breaking Changes

The breaking changes this release largely have to do with the pretty-printing of Txns objects. There is also a new package dependency. There were no breaking changes to mining functions.

  • Changed truncation behavior of Txns pretty-printing to truncate horizontally at item boundaries instead of potentially in the middle of an item name
  • Set default Base.show(::IO, Txns) method to be Base.show(::IO, MIME("text/plain"), Txns). This matches the behavior of DataFrames and means that println(Txns) will now display the pretty-printed output
  • Added OhMyThreads package dependency

Internal/Non-breaking changes

  • Optimized Txns file-reading constructor helper functions.
  • Use OhMyThreads channels for thread-local data storage to keep in line with best practices and prepare for Julia 1.12
    • This affected the internal implementation of the apriori function
    • This affected the fast_convert helper function that underpins all of the tabular mining functions
    • This affected the FPTree constructor which underpins all of the FP mining functions
    • In my testing, I saw no significant performance differences between the old and new implementations.

Other updates

New docs site made with DocumenterVitepress.jl is now live! This means a big visual refresh, and I also took the time to reorganize and rewrite a bunch of the information as well. There's now an extensive quick start guide, as well as reference pages with a little more information about association rule and itemset mining themselves. Highly encourage you to check it out!

Merged pull requests:

Closed issues:

  • Likely erroneous use of Threads.nthreads and Threads.threadid (#56)

v0.6.3

25 Jan 01:00
Compare
Choose a tag to compare

RuleMiner v0.6.3

Diff since v0.6.2

Optimized Txns file-reading constructor to be ~ 2x faster and use ~50% less memory.

Merged pull requests:

v0.6.2

30 Oct 00:28
Compare
Choose a tag to compare

RuleMiner v0.6.2

Performance improvements

Diff since v0.6.1

v0.6.1

27 Oct 22:51
Compare
Choose a tag to compare

RuleMiner v0.6.1

Diff since v0.6.0

Merged pull requests:

v0.6.0

19 Oct 19:53
Compare
Choose a tag to compare

RuleMiner v0.6.0

Diff since v0.5.0

Merged pull requests:

Closed issues:

  • Add confidence filtering to apriori (#46)

v0.5.0

29 Sep 01:10
Compare
Choose a tag to compare

RuleMiner v0.5.0

  • Minimum supported version of Julia is now 1.10
  • New direct dependency on PrettyTables.jl (though it was already an indirect dependency)
  • Reworked Transactions objects
    • Renamed to Txns. The Transactions label is now an abstract type which will include other, future, transactions-type objects.
    • Moved load_transactions to just being a constructor for the struct
    • Reading files is now ~45% faster and uses ~70% less memory
    • Added validation checks to the constructors with meaningful error messages
    • Added pretty printing through a Base.Show method
    • Added other utility methods, including for:
      • Base.getindex
      • Base.first
      • Base.last
      • Base.length
  • Exposed and documented FPTree objects for the public API
    • FPTree objects can now be created from Txns and assigned to variables outside of FP functions, allowing for re-use.
    • All FP functions (fpgrowth, fpclose, and fpmax) now accept FPTree objects in the data argument. This significantly speeds up execution time if a pre-made tree is provided
    • Added pretty printing through a Base.Show method
  • Added recover_maximal function to recover frequent itemsets from maximal itemsets

Diff since v0.4.1

Merged pull requests:

Closed issues:

  • Add function to recover frequent itemsets from maximal itemset results (#34)
  • Expand Transactions Objects (#35)
  • Expose FPTree struct (#39)
  • Enable pretty printing for exported data structures (#41)

v0.4.1

17 Aug 23:20
Compare
Choose a tag to compare

RuleMiner v0.4.1

Patched bug with FP tree creation that was causing race conditions and Undef Ref errors.

This had the added benefit of increasing the speed of FP tree creation by 2-3x and reducing RAM usage by 98%.

Diff since v0.4.0

v0.4.0

09 Aug 02:50
Compare
Choose a tag to compare

RuleMiner v0.4.0

Diff since v0.3.1

Merged pull requests:

Closed issues:

  • Implement FPMax Algorithm (#27)
  • Implement GenMax Algorithm (#28)

v0.3.1

26 Jul 23:55
Compare
Choose a tag to compare

RuleMiner v0.3.1

Patch release to fix inconsistencies in the conversion between integer and float support in the apriori algorithm

Diff since v0.3.0

v0.3.0

20 Jul 21:50
Compare
Choose a tag to compare

RuleMiner v0.3.0

Diff since v0.2.0

Merged pull requests:

Closed issues:

  • Implement FP-Close Algorithm (#15)
  • Implement CHARM Algorithm (#16)
  • Implement LCM Algorithm (#17)
  • Implement Carpenter Algorithm (#18)
  • Implement function to derive frequent itemsets from closed itemsets (#19)